This 2D companion drives the exact same Nakamoto race as the 3D version — a merchant accepts a payment once it is buried under k confirmations on the honest chain; a dishonest miner controlling a share q of total hashrate secretly mines a rival fork from one block earlier, and if that fork ever overtakes the honest chain it is broadcast, reorganizing the network and reversing the payment — but reads it as two flat racing lanes plus a live probability chart instead of an orbiting 3D scene.
each block: honest wins w.p. p = 1−q, attacker wins w.p. q
attacker must be ≥ honest length once honest reaches k blocks
P(success) ≈ (q / p)^k for q < p (Nakamoto race)
P(success) = 1 for q ≥ p (true 51% attack)
- Attacker hashrate — the fraction of total mining power the attacker secretly controls; above 50% the attacker eventually wins every race no matter how many confirmations are required.
- Confirmations required — how many blocks the merchant waits before releasing goods; each extra confirmation multiplies the attacker's odds down by roughly q/p.
- Mining pace — how fast the animation plays out block discovery; it does not change the odds, only how quickly the statistics converge.
The bottom strip chart plots the running "actual success rate" (orange) against the closed-form "theoretical P(success)" (white dashed) race by race, and the curve card on the far right shows the theoretical success probability across every hashrate share from 5% to 95% at once, with the current setting marked — so you can see at a glance where today's attacker sits on the whole risk curve, not just at one point.