<p>Nothing at stake usually means, a block producer may produce multiple blocks simultaneously and either send those to different nodes, or keep some for later in order to perform a long-range attack.</p>
<p>Now in Ouroboros PoS the slot leaders are pre-compiled and determined by VRF mechanism. Each participating node can easily verify if the produced block was actually built by a valid slot leader.</p>
<p>Also in Cardano's PoS the node does not submit/broadcast his new block, but just announce his current block-height. The remote node then decides if he want/need to fetch this block or not (i.e. a pull mechanism instead of a broadcast/push mechanism)</p>
<p>Also micro forks based on multiple valid blocks for the same slot - which can even happen naturally without bad intentions, based on the random slot leader election - are quickly solved by always choosing the block with the lowest VRF dice result.</p>

CC BY-SA 4.0
2021-08-20T07:59:36.760Z
just noted I forgot to answer your last question:
I'm not sure what you exactly mean by "selected twice" because of the huge stake. 
Every pool will have exactly one VRF dice result for every slot. 
So I guess you mean a pool operator controlling two or more large pools, who may are elected for the exact same slot. 

It effectively seems possible in very rare random cases: limited to who actually has multiple huge amounts of stake on his pools, and a non-enforceable point in time when these pools dice for the exact same slot.
Markus - CLIO1
CC BY-SA 4.0
2021-08-20T08:01:47.953Z
There are 86400 slots per day and 432000 each 5-day lasting epoch.
Due to the saturation limit (total staked supply / k pools) it is almost impossible to attract  delegations going above the saturation point, especially for a long time (currently with k=500 and ~72% active stake it is ~65M ADA)
Markus - CLIO1
CC BY-SA 4.0
2021-08-20T08:06:33.047Z
A fully saturated (large) pool will be elected for ~55 slots each epoch, out of the 432000
The probability that your second large pool is elected for the exact same slot is very low. 
And in the case it will happen, the block including the double-spend TX will be quickly removed from chain, even before the first following confirmation/block. some degree of confirmed blocks on top is always recommended
Markus - CLIO1
CC BY-SA 4.0
2021-08-20T15:11:41.150Z
>"And in the case it will happen, the block including the double-spend TX will be quickly removed from chain, even before the first following confirmation/block."

This doesn't make sense to me. You cannot "remove" a block, all you can do is not build on it. If the double spend block was already confirmed and built upon, and the attacker only then (after some blocks built on the other block) releases the lower VRF, aren't the nodes bound by the rules to build on that new block instead?
divinesleeper
CC BY-SA 4.0
2021-08-20T19:08:41.793Z
sorry, with removed I meant "solving the micro-fork by discarding the higher VRF block, choosing the lower-VRF one, and then wait for and build on the next block." 

a lower-VRF block released some blocks later does not kick the whole chain of already build blocks. lower-VRF decision only plays out when two concurrent blocks are available to become th new tip.
Markus - CLIO1
CC BY-SA 4.0
2021-08-20T05:18:12.407Z
2021-11-16T14:55:53.163Z
2021-11-16T14:55:53.163Z
Markus - CLIO1
<p>It's not.</p>
<p>The Ourobouros protocol takes care of &quot;Nothing at Stake&quot; using game theory with mathematically verified algorithms that Prof. Aggelos Kiayias explains by laying out the parts of Ouroboros.</p>
<p>This is part of why Staking on Cardano is the best, no lock-up, 100% liquid, and your ADA never leaves your wallet.  ETH 2.0 needs slashing to cover for this and to stake, you need to SEND your ETH to the node and hope it doesn't do something to get slashed, or worse, the node is compromised by a dishonest admin or poor security.</p>
<p><a href="https://www.youtube.com/watch?v=ur1lttBXAGM" rel="nofollow noreferrer">https://www.youtube.com/watch?v=ur1lttBXAGM</a></p>
<p>Ouroboros has multiple papers that explain each of the parts. When putting it together nothing tops it.
Just type in Ourobouros in the search for Library.</p>
<p><a href="https://iohk.io/en/research/library/" rel="nofollow noreferrer">https://iohk.io/en/research/library/</a></p>

CC BY-SA 4.0
2021-09-17T06:26:56.497Z
What about https://github.com/input-output-hk/cardano-node/issues/1132? This seems to be a nothing at stake issue.
robertwb
CC BY-SA 4.0
2021-08-20T02:55:47.943Z
2021-11-17T11:55:14.533Z
2021-11-17T11:55:14.533Z
jnprogrammer
<p>I read somewhere that there is no risk of forks because ADA has a built in way of deciding who gets to propose the next block if multiple stakers get selected in 1 round:</p>
<p>The one who rolls the <em>lowest</em> number that satisfies the requirement gets to propose a block.</p>
<p>But if you control a lot of stake, couldn't it happen that you get selected twice? In that case you can first publish the first VRF, purchase a product in that block, then reveal your <em>lower</em> VRF and make a fork where you keep your funds (ie a double spend).</p>
<p>Anything that stops this?</p>

<staking><attacks>
Is "nothing at stake" still a problem?
# Is "nothing at stake" still a problem?

(Asked by: username_0 on 2021-08-18)

I read somewhere that there is no risk of forks because ADA has a built in way of deciding who gets to propose the next block if multiple stakers get selected in 1 round:

The one who rolls the *lowest* number that satisfies the requirement gets to propose a block.

But if you control a lot of stake, couldn't it happen that you get selected twice? In that case you can first publish the first VRF, purchase a product in that block, then reveal your *lower* VRF and make a fork where you keep your funds (ie a double spend).

Anything that stops this?

**Tags:** staking, attacks

---

## 2 answers

### Answer by username_1 on 2021-08-20. Score: 5

Nothing at stake usually means, a block producer may produce multiple blocks simultaneously and either send those to different nodes, or keep some for later in order to perform a long-range attack.

Now in Ouroboros PoS the slot leaders are pre-compiled and determined by VRF mechanism. Each participating node can easily verify if the produced block was actually built by a valid slot leader.

Also in Cardano's PoS the node does not submit/broadcast his new block, but just announce his current block-height. The remote node then decides if he want/need to fetch this block or not (i.e. a pull mechanism instead of a broadcast/push mechanism)

Also micro forks based on multiple valid blocks for the same slot - which can even happen naturally without bad intentions, based on the random slot leader election - are quickly solved by always choosing the block with the lowest VRF dice result.

> **Comments:**
> **username_1**: just noted I forgot to answer your last question: I'm not sure what you exactly mean by "selected twice" because of the huge stake.  Every pool will have exactly one VRF dice result for every slot.  So I guess you mean a pool operator controlling two or more large pools, who may are elected for the exact same slot.   It effectively seems possible in very rare random cases: limited to who actually has multiple huge amounts of stake on his pools, and a non-enforceable point in time when these pools dice for the exact same slot.  
> **username_1**: There are 86400 slots per day and 432000 each 5-day lasting epoch. Due to the saturation limit (total staked supply / k pools) it is almost impossible to attract  delegations going above the saturation point, especially for a long time (currently with k=500 and ~72% active stake it is ~65M ADA)  
> **username_1**: A fully saturated (large) pool will be elected for ~55 slots each epoch, out of the 432000 The probability that your second large pool is elected for the exact same slot is very low.  And in the case it will happen, the block including the double-spend TX will be quickly removed from chain, even before the first following confirmation/block. some degree of confirmed blocks on top is always recommended  
> **username_0**: >"And in the case it will happen, the block including the double-spend TX will be quickly removed from chain, even before the first following confirmation/block."  This doesn't make sense to me. You cannot "remove" a block, all you can do is not build on it. If the double spend block was already confirmed and built upon, and the attacker only then (after some blocks built on the other block) releases the lower VRF, aren't the nodes bound by the rules to build on that new block instead?  
> **username_1**: sorry, with removed I meant "solving the micro-fork by discarding the higher VRF block, choosing the lower-VRF one, and then wait for and build on the next block."   a lower-VRF block released some blocks later does not kick the whole chain of already build blocks. lower-VRF decision only plays out when two concurrent blocks are available to become th new tip.  

---

### Answer by username_2 on 2021-08-20. Score: 0

It's not.

The Ourobouros protocol takes care of "Nothing at Stake" using game theory with mathematically verified algorithms that Prof. Aggelos Kiayias explains by laying out the parts of Ouroboros.

This is part of why Staking on Cardano is the best, no lock-up, 100% liquid, and your ADA never leaves your wallet. ETH 2.0 needs slashing to cover for this and to stake, you need to SEND your ETH to the node and hope it doesn't do something to get slashed, or worse, the node is compromised by a dishonest admin or poor security.

<https://www.youtube.com/watch?v=ur1lttBXAGM>

Ouroboros has multiple papers that explain each of the parts. When putting it together nothing tops it.
Just type in Ourobouros in the search for Library.

<https://iohk.io/en/research/library/>

> **Comments:**
> **username_3**: What about https://github.com/input-output-hk/cardano-node/issues/1132? This seems to be a nothing at stake issue.  

---

