Skip to content

Commit faa9e5b

Browse files
Update src/content/developers/docs/consensus-mechanisms/pos/block-proposal/index.md
Co-authored-by: Joshua <62268199+minimalsm@users.noreply.github.com>
1 parent f88f374 commit faa9e5b

File tree

1 file changed

+2
-0
lines changed
  • src/content/developers/docs/consensus-mechanisms/pos/block-proposal

1 file changed

+2
-0
lines changed

src/content/developers/docs/consensus-mechanisms/pos/block-proposal/index.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@ Block proposal is part of the proof-of-stake protocol. To help understand this p
1414

1515
Validator accounts propose blocks. Validator accounts are managed by node operators who run validator software as part of their execution and consensus clients and have deposited at least 32 ETH into the deposit contract. However, each validator is only occasionally responsible for proposing a block. Ethereum measures time in slots and epochs. Each slot is twelve seconds, and 32 slots (6.4 minutes) make up an epoch. Every slot is an opportunity to add a new block on Ethereum.
1616

17+
### Random selection {#random-selection}
18+
1719
A single validator is pseudo-randomly chosen to propose a block in each slot. There is no such thing as true randomness in a blockchain because if each node generated genuinely random numbers, they couldn't come to consensus. Instead, the aim is to make the validator selection process unpredictable. The randomness is achieved on Ethereum using an algorithm called RANDAO that mixes a hash from the block proposer with a seed that gets updated every block. This value is used to select a specific validator from the total validator set. The validator selection is fixed four epochs in advance as a way to protect against certain kinds of seed manipulation.
1820

1921
Although validators add to RANDAO in each slot, the global RANDAO value is only updated once per epoch. To compute the index of the next block proposer, the RANDAO value is mixed with the slot number to give a unique value in each slot. The probability of an individual validator being selected is not simply `1/N` (where `N` = total active validators). Instead, it is weighted by the effective ETH balance of each validator. The maximum effective balance is 32 ETH (this means that `balance < 32 ETH` leads to a lower weight than `balance == 32 ETH`, but `balance > 32 ETH` does not lead to higher weighting than `balance == 32 ETH`).

0 commit comments

Comments
 (0)