How does Ouroboros disincentivize bad behavior? For example, in ETH 2, poorly behaving nodes have their stake slashed. Does Ouroboros have a similar mechanism?
3 Answers
Here are three great videos on Ouroboros and Ouroboros Genesis that go into detail. They all give high-level dive into The Base Protocol and some of its upgrades.
Basically, they use game theory and math-based models on ensuring that honest SPOs flourish while dishonest ones have no incentive to be so.
When it comes to delegating on Cardano, A non-custodial form of delegation, ADA doesn't leave the delegator's wallet. They register a stake key with the network for ₳2 and the fee of the tx. Then they can pick any pool, usually a high performer to delegate.
This way no ADA is ever at risk of anything, even if the pool goes down. They can just delegate elsewhere without needing to reregister the staking key.
With that delegation system, Pools that are bad actors/performers can be abandoned and good pools can be chosen by ADA holders while never being at the mercy of stake pool operators.
This is why Education in the Cardano community is critical since informed delegators will pick the best pools as it's in their financial interest to do so.
As for ETH 2.0, Slashing isn't the only risk. Locking your ETH in for an indefinite period till the system is up is a risk. If an admin of an ETH pool goes rouge or loses the private keys to the node, all ETH holders lose their coins.
-
How will a user be able to tell when a pool is misbehaving? I'd guess that the rewards for the delegators to that pool will lower which lowers the rewards of the users, is that right? If so, how does the system decide which pools are "bad" and thus should have their rewards lowered? Commented Aug 28, 2021 at 18:21
-
With a tool like pooltool.io A user would be looking out for performance more so behavior since the protocol accounts for the behavior of would-be attackers. The less stake a pool has, the less they are likely to be selected to mint a block. So to be viable, a pool wants as much ADA as possible, and to attract it they need good fees and a pledge to the pool. Commented Aug 28, 2021 at 18:42
-
Pledge is an amount of ADA the SPO themselves decided on staking with the Pool and leaving it there so they also have skin in the game. Pools with pledges are financially incentivized to maintain the pools uptime and its security, or they could lose their own ADA by losing their private keys. The Delegators are never at risk of this. Pools that underperform just don't get picked to mint blocks at often or at all. Commented Aug 28, 2021 at 18:43
Great question! Ada is given as a reward to those nodes that dutifully complete their job as slot leaders.
Two epochs in advance, slot leaders are selected for a given epoch. The probability that a given stake pool will be selected is related to that pool's stake minus the difference between 1 and f
, where f
is a value determined by how good that node's behavior has been.
Every time a pool validates a transaction, it sends a verifiable random function (VRF) that takes as inputs its current state to the rest of the network. Each time this happens, the FVRF functionality is utilized. If a stake pool's node's VRF output is incorrect, the f
parameter above is set to 1 for that round. Thus, if a node is adversarial, it will have no chance to participate as a slot leader and produce a block for the network. Failing to validate or "missing" blocks will have the same effect, and they will decreases the probability that a node will be selected to be the next slot leader. Thus, adversaries are unable to gain control over the network, and adversarial stake pools are punished because they will receive no rewards from staking.
Source: Ouroboros Praos
In Cardano, you cannot lose your stake. Instead, bad behavior is disincentivized by opportunity costs: if you misbehave (or if your delegated pool does), you will get lower rewards or none at all. It's better as it makes staking more secure from the viewpoint of the user, as the worst thing that could happen is that you get no reward.
-
How does the system "know" when a pool is misbehaving and thus lower it's rewards? Commented Aug 28, 2021 at 18:20
-
1@PaymahnMaghadasian It depends how the SPO is misbehaving. For example, if it is just producing invalid blocks, those blocks are rejected as they are invalid, and thus the SPO gets no reward.– DisticCommented Aug 29, 2021 at 2:37