freecoding.school100% FREE · NO SIGNUP
Proof PeaksISSUE #36 of 38

algorand · pure pos · vrf committees

ZeekaVSThe Collision
Zeeka saysAlgorand uses VRF sortition to pick a fresh, secret committee for every block — no chains, no forks, instant finality on each block.

Algorand takes a radically different path: per-block, every account independently self-selects via a VRF for one of three roles (proposer, committee member, or voter). The committee is unpredictable until members reveal — making targeted attacks infeasible — and Byzantine Agreement Star (BA*) decides the block in a few rounds.

Block finality is immediate; there is no longest-chain rule and no forks. The expected committee size is proportional to stake share, so a 20% holder expects ~200 of a 1000-seat committee. The demo computes expected seats for three stakers given a target committee of 1000 and total stake of 1M.

Power-ups you unlock

The Collision attacks — common mistakes

Boss battleCompute expected committee seats for three stakers given total committee size 1000 and total stake 1,000,000.

Example code

<!doctype html><html><head><meta charset="utf-8"></head>
<body style="background:#06040d;color:#e6e0ff;font-family:monospace;padding:20px"><pre id="o"></pre>
<script>
// Algorand sortition: expected seats = stake_fraction × target_committee.
const targetCommittee = 1000;
const totalStake = 1000000;
const stakers = [
  { id:'large', stake: 200000 },
  { id:'med',   stake:  50000 },
  { id:'small', stake:   1000 }
];
document.getElementById('o').textContent = [
  'target committee size: ' + targetCommittee + ' seats   total stake: ' + totalStake.toLocaleString(),
  ...stakers.map(s => '  ' + s.id.padEnd(6) + ' stake=' + s.stake.toLocaleString().padStart(9) + ' → expected seats ≈ ' + ((s.stake/totalStake)*targetCommittee).toFixed(2)),
  'each account learns privately if selected → unpredictable to attackers',
  'BA* runs across the committee → immediate finality, no forks'
].join('\n');
</script></body></html>
▶ Open the interactive comic issue
‹ Ouroboros · Provably Secure PosLong-Range Attacks · Weak Subjectivity ›