This is the second dialogue in a series of dialogues about Proof of Stake. I recommend reading Motivating Proof of Stake, a dialogue first, if you haven’t yet.
Like the last dialogue, “D” will represent me, Danny, and “F” will represent the friend with which I am having the conversation. F has a bit of a technical background and is well versed in Proof of Work and related blockchain jargon.
Last we saw these two characters, they were riding bikes through the streets of New Orleans, yelling about the motivations of Proof of Stake. This dialogue is set immediately after the bike ride with the two characters lounging next to Bayou St. John.
While catching a breeze next to the bayou…
D and F lounge next to Bayou St John. F has been quietly contemplating the motivations behind Proof of Stake
F: Let me see if I have this right… We can generalize Proof of Work as proof of some scarce resource, motivating us to try to find other scarce resources that we can demonstrate to a blockchain protocol. There exists a scarce resource in public blockchains, the crypto-economic token it’s all built on. Proof of Stake is an attempt to use the in-protocol token as the rate limiter on an individual’s influence in the consensus algorithm.
D: Couldn’t have said it better myself.
F: I’ve been chewing on it, and I like it! Why burn up CPU and GPU time as an economic indicator when you have an economic indicator native to the blockchain?
D: Because the problem is harder than it seems on the surface.
F: Right, you said there are a couple of issues. “Nothing at Stake” and what?
D: “Long-Range Attacks”.
F: Oh yeah. Nothing at stake… that doesn’t sound right.. seems counter to the whole concept. Proof of Stake: I have a stake. That’s the point, isn’t it?
D: This comes down to semantics. What does it mean to have a stake in something vs. to put something at stake? The first is having a piece of the pie. “I have a stake in this business” means I own part of the business. The latter means to put something at risk on some outcome. “I’ve staked my fortune on black” means I’ve bet all of my money on the roulette wheel landing on black. Passive Ownership vs. Risk of Loss.
F: Right, makes sense.
D: This comes naturally in Proof of Work. What exactly you are staking your processing power on in Proof of Work is very clear. You can dedicate your resources to one fork or another — one blockchain or another — , but you can’t dedicate your resources to two at once. You have to make a judgement call on where to place your bet. By mining on top of a particular block, you are saying “I stake my computational power on the block with hash 0xFFFF”.
F: But you don’t have to make that decision in Proof of Stake because you have coins on both forks if a fork occurs?
D: Exactly. Because the economic resource is in the protocol, you get a ‘duplicate’ of the resource if there are two instances of the protocol running like in a fork.
F: So you might as well bet on both forks!
D: Yep, if there is any fork at all, the rational economic decision is to validate on both to increase your chances of contributing to the winning fork. If validators were economically incentivized to validate all forks and even incentivized to create forks, you can see how it’d be tough to come to a consensus.
F: Absolutely. So let me see if I have it — in naive Proof of Stake, there’s nothing actually at risk when making consensus decisions so optimal behavior from an individual’s perspective is to participate in as many forks as possible which is not optimal from the global chain’s perspective.
D: Exactly! This is key to designing crypto-economic protocols in general. We need to make it so that when an individual participant optimizes personal gain, they optimize the collective outcome of the system as a byproduct. The simplicity of Proof of Work manages to do this, but a naive Proof of Stake does not as we’ve seen with “Nothing at Stake”.
A: So how do we align the incentives to fix “nothing at stake”?
D: Great question! This isn’t entirely solved one way or another. It’s an emerging area of research. The solutions that make the most sense all generally involve locking up your stake as a security deposit. If someone proves you are a bad actor, you can then be penalized. For example, if someone proves that you are staking on two sides of a chain split, you could lose some or all of your stake. With added penalties, you now have to make an economic decision as to which side of the fork to participate on. Like in Proof of Work where you couldn’t use your computational resources on two chains, adding penalties ensures that if you do use your tokens on two chains, you’ll lose them!
A: Wait. You can lose money if you make a bad decision?
D: For a “bad decision” you might just make less money, but for a provably malicious decision you can and should be penalized.
A: Hmm. Seems risky.
D: That’s the point! That’s exactly what these “slashing conditions” are for. We’ve added risk to the process so that validators have to make ratioal decisions on what to validate.
A: “Slashing conditions”?
D: Yeah, those are the conditions specific to a protocol that if a validator violates, their funds get “slashed”, or burned, or destroyed forever. In general slashing conditions are a set of conditions that, if not violated, provide guarantees about which chain will be followed, or “finalized”. And, if they are violated, we know that at least a bunch of validators will lose a bunch of money.
A: Interesting… Wait, what is “finalized”.
D: Eh… you hungry? Let’s go grab a po’boy. We can’t discuss finalization and “long-range attacks” on an empty stomach.
D and F grab their bikes and ride to a local po’boy shop to continue their discussion over some fried seafood.
Stay tuned for the next article in this series: “Long-Range Attacks, a dialogue”.