Cardano entropy

Cardano's evolution towards a fully decentralized entity

The Cardano blockchain has transitioned from a federated system run only by 8 nodes in July 2020, to its present state where block production is fully decentralized. The final part of this transition happened on March 31st, 2021 (D=0 Day), a major milestone in Cardano's journey. As of that date, 100% of block production is the responsibility of stake pool operators (SPOs).

The entropy parameter

A truly decentralized state means that we can neither predict nor influence blockchain events going forward. In other words, all future on-chain events must be completely unpredictable. To ensure this, Cardano provides an additional entropy mechanism that can be used to ensure the true randomness of the system. True randomness lies at the core of any complex cryptographic system. For a cryptographic environment such as the Cardano blockchain to work, and to be trusted by the community as truly decentralized and fair, there needs to exist a source of true, unpredictable randomness that ensures that the chain's future direction cannot be manipulated by anyone with knowledge of the past.

Cardano's source of randomness is given through the entropy parameter. This represents something unpredictable outside the Cardano ecosystem and ensures that nobody could “rig” the randomness of the blockchain. The value of this parameter was calculated based on events that could not have been known in advance, or that anyone could have had insider information about.

The parameter will be updated during the epoch starting on April 5, 2021, and determined by the hash of the last block prior to Wednesday, April 7, 15:44:51 UTC = slot 151200 of epoch 258; with this hash value appearing in the first block of slot 151200 or later.

Cardano's entropy addition mechanism

To understand how the entropy addition mechanism works it is vital to first understand how fully decentralized block production works and how the new transition nonce will affect this process.

The Ouroboros protocol determines which pools are elected as block producers via an evolving sequence of leadership nonces (cryptographic seeds used to generate a sequence of values using a repeatable random number generation algorithm). These nonces set the schedule for block production. Each leader nonce determines this schedule for a complete 120-hour epoch, during which the nonce governs the choice of stake pools to lead the creation of each block. The leadership nonces and stake distributions evolve in unison to provide the fundamental ledger properties required.

The transition nonce

Just after March 31st, we added a transition nonce to the running leadership nonce. The transition nonce must rely on random values (which are introduced via on-chain transactions) that cannot be accurately predicted when the stake distribution for the April 10 epoch is settled. This places special emphasis on transactions appearing in the blockchain between the 12-hour mark — when the stake distribution is firmly settled — and the 42-hour mark, when the hash value will be lifted.

The transition nonce reflects entropy from a variety of external, unpredictable sources. Specifically, all transactions posted to the blockchain before Wednesday, April 7 at 15:44:51 UTC (slot 151200 of epoch 258) will play a notable and privileged role in Cardano's history: the transactions' accumulated hash value (reflected in the ‘previous-block hash’ from the first block created on-chain on or after this point in time) will determine the transition nonce, and hence contribute directly to Ouroboros’ perpetual cycle of randomness generation.

The entropy addition mechanism

In Cardano, the entropy addition mechanism works as follows: the system adds specific bitstrings on the blockchain to subsequent leadership nonces (which are the intended targets of the transition nonce). This requires public declaration of the bitstring, and explicit, cryptographically secure approval. More specifically, only a handful of digitally signed votes from genesis delegates can complete the process, and have a specific time limit to do so: votes must appear before the 48-hour mark in the epoch.

The epoch beginning on Monday, April 5 at 21:44:51 UTC (epoch 258) invoked the mechanism: in particular, the previous block hash appearing in the first block on or after Wednesday, April 7 at 15:44:51 UTC (slot 151200 of epoch 258) will determine the transition nonce; this will take place roughly 42 hours after the epoch has begun and thus leave six hours for the genesis delegates to cast their votes. Recalling the hash chain structure of the Ouroboros blockchain, this hash value depends on the entire blockchain up to that point.

The --extra-entropy argument looks different from the _extraEntropy field displayed after a transaction is created. This difference is explained in the nonce explanation page.