Orca Crypto
Menu
Start Here
Learn
Chains
Exchanges
Markets
Tools
Safety
Glossary
More
Our tokens Book a session
Expert · Consensus and cryptography

Consensus from first principles: safety, liveness and finality

Every chain answers the same question, how strangers agree on one history. The answers differ in what they give up.

Loading live prices
By the Orca Crypto teamUpdated 2026-09-28How we check this16 min readExpert
The short answer

Consensus is state machine replication among nodes that may crash, lie or be cut off. Safety means honest nodes never finalize conflicting histories; liveness means valid transactions keep getting in. No protocol keeps both under every network condition, so each design chooses: Nakamoto chains always make progress with probabilistic finality, classical BFT finalizes deterministically and halts when more than a third is missing, and Ethereum runs one of each at the same time.

The problem: one log, many strangers

A blockchain is a replicated state machine. Every node starts from the same genesis state and applies the same deterministic transition function to the same ordered list of transactions, so agreeing on the state reduces to agreeing on the order of the log. Consensus is the protocol that produces that order while some nodes crash, some lie, messages arrive late or never, and anyone may join. The last condition is what separates public chains from the replicated databases the theory was built for. Identities are free, so voting power has to be tied to something scarce: hash power or stake (see proof of work versus proof of stake).

PropertyDefinitionWhat failure looks like
SafetyHonest nodes never finalize conflicting histories. Nothing bad ever happens.Two histories that both claim to be final, and a double spend that cannot be undone
LivenessValid transactions are eventually included and finalized. Something good eventually happens.A halted chain, or censorship that never ends
FinalityThe point after which a block cannot be reverted without breaking a stated assumptionComes in three strengths: probabilistic, economic and deterministic

Three results that bound every design

FLP (Fischer, Lynch and Paterson, 1985). In a fully asynchronous network, where any message can be delayed by any finite amount, no deterministic protocol can ensure consensus terminates if even one process may crash. The adversary can always delay the one message that would have decided the outcome. Real protocols escape with randomness or, far more often, with timing assumptions.

Partial synchrony (Dwork, Lynch and Stockmeyer, 1988). The network may behave arbitrarily badly until an unknown global stabilization time (GST), after which messages arrive within a bound Δ. Protocols built for this model keep safety at all times and regain liveness after GST. Almost every BFT protocol in production, including Ethereum’s finality gadget, is designed against this model.

The one third bound. Under partial synchrony, tolerating f Byzantine participants needs n ≥ 3f + 1. The argument is quorum intersection. A protocol must be able to move on with n − f responses, since the faulty ones may stay silent, and any two such quorums must share an honest member or two parts of the network could be told different stories:

|Q1 ∩ Q2| ≥ 2(2f + 1) − (3f + 1) = f + 1Two quorums of 2f + 1 out of 3f + 1 overlap in at least f + 1 members, so at least one is honest. With stake, read f as a share of total stake.

The consequence is a choice every chain makes, sometimes without saying so: when the network partitions or more than a third of participants vanish, do you keep producing blocks (liveness, at the risk of reorgs) or stop until a supermajority returns (safety)? Neu, Tas and Tse formalized this in 2020 as the availability and finality dilemma and showed that one protocol can serve both, as two ledgers, one available and one final. Ethereum follows this two ledger pattern, although its fork choice needed later patches, notably proposer boost, against attacks the same authors found.

Nakamoto consensus: the heaviest chain wins

Bitcoin’s rule fits in a sentence: extend the valid chain with the most cumulative work. There is no voting and no membership list. Miners come and go and the chain always progresses, a property called dynamic availability. The price is that no block is ever final in the deterministic sense. A block is buried under work, and reversing it means out-mining the rest of the network from that point on.

Section 11 of the Bitcoin whitepaper models the attacker as a random walk. With attacker hash share q and honest share p = 1 − q, the chance of ever catching up from z blocks behind falls exponentially in z:

P(z) = 1 − ∑k=0..z ( λk e−λ ÷ k! ) · ( 1 − (q ÷ p)z−k ),   λ = z · q ÷ pAssumes the attacker starts mining a private chain when the payment is sent. Figures below computed from this formula.
Attacker hash share qConfirmations for P under 0.1%P after 6 confirmations
10%50.024%
20%111.4%
30%2413.2%
40%8950.4%

Six confirmations is a convention, not a law of nature: it holds a 10% attacker to about 0.02%, but a 30% attacker still succeeds about 13% of the time. Two more results matter. Eyal and Sirer showed in 2013 that honest mining is not incentive compatible: a selfish miner who withholds blocks profits above (1 − γ) ÷ (3 − 2γ) of hash power, where γ is the share of honest miners who build on the attacker’s block during a tie. That is one third at γ = 0 and one quarter at γ = 1/2. And the whole safety argument assumes blocks propagate much faster than they are found, which is why Bitcoin keeps a 10 minute target, retuned every 2,016 blocks by the difficulty adjustment.

Classical BFT: vote, lock, commit

The other lineage starts from a known validator set and explicit votes. PBFT (Castro and Liskov, 1999) runs three phases per decision, pre-prepare, prepare and commit, plus a view change protocol to replace a faulty leader. Every replica talks to every other, so message complexity is quadratic, which is why classical BFT was long assumed to stop at a few dozen nodes.

Tendermint, maintained today as CometBFT and used across the Cosmos ecosystem, adapted the idea to blockchains. Each height runs rounds of propose, prevote and precommit. A validator that sees prevotes from more than two thirds of voting power for a block (a "polka") locks on it and precommits. Precommits from more than two thirds commit the block, and the commit is final the moment it happens. The lock is what carries safety across rounds: a validator may only release it after seeing a newer polka for something else. HotStuff (2019) later made leader replacement linear and pipelined the phases so each block advances its predecessors, shaping many of the protocols that followed.

Nakamoto style

Heaviest chain, open participation

  • Always makes progress, even with most participants offline
  • No membership list: anyone can join or leave at any time
  • Finality is probabilistic and depends on the attacker share you assume
  • Short reorgs are part of normal operation

Classical BFT

Known validator set, explicit votes

  • Deterministic finality, usually within one block
  • A safety failure needs at least a third of stake to sign conflicting votes, which leaves evidence
  • Halts when more than a third of voting power is offline or partitioned
  • All to all voting limits the practical validator count

Ethereum Gasper: a fork choice plus a finality gadget

Ethereum runs both lineages at once. LMD GHOST is a fork choice that picks a head every slot and keeps the chain available. Casper FFG is a finality gadget on top that finalizes checkpoints BFT style, and the fork choice is never allowed to revert them. The combination was specified as Gasper in 2020. The values below are the mainnet parameters in the consensus specs as of September 2026.

ParameterMainnet valueWhy it matters
Slot12 seconds (SLOT_DURATION_MS = 12,000)One proposer per slot, sampled in proportion to effective balance
Epoch32 slots, 6.4 minutesEvery active validator attests exactly once per epoch
CommitteesUp to 64 per slot, target size 128, maximum 2,048Splits each epoch’s votes so they can be aggregated slot by slot
Attestation deadlineOne third into the slot, 4 secondsValidators vote after the block should have arrived
Proposer boost40% of one slot’s committee weightBlunts balancing and ex ante reorg attacks on the fork choice
Justification threshold2/3 of total active effective balanceThe supermajority that Casper FFG counts
Effective balance32 ETH to activate (MIN_ACTIVATION_BALANCE), 2,048 ETH maximum since Pectra (EIP-7251)Voting weight is stake, not validator count

LMD GHOST

Latest Message Driven Greedy Heaviest Observed SubTree. Start at the latest justified checkpoint, walk down the block tree, and at every fork take the child whose subtree carries the most weight, counting only each validator’s most recent attestation. The proposer boost temporarily adds 40% of a committee’s weight to a timely block in its own slot, which stops an attacker from splitting honest votes evenly between two siblings.

Casper FFG

Every attestation also carries an FFG vote: a source, the latest justified checkpoint the validator knows, and a target, the first block of the current epoch. When links with the same source and target carry 2/3 of stake, the target is justified. A justified checkpoint is finalized when the next epoch’s checkpoint is justified with it as the source. Normally checkpoint N is justified at the end of epoch N and finalized at the end of epoch N + 1, two epochs or 12.8 minutes. A transaction in the middle of an epoch waits for the next checkpoint, so real waits run from about 13 to 19 minutes, which is why ethereum.org rounds it to about 15. Two rules make a finalized checkpoint expensive to contradict:

python
# ethereum/consensus-specs, phase0: the two Casper FFG slashing conditions
def is_slashable_attestation_data(data_1, data_2) -> bool:
    return (
        # Double vote: two different votes for the same target epoch
        (data_1 != data_2 and data_1.target.epoch == data_2.target.epoch)
        or
        # Surround vote: one vote's source..target span strictly contains the other's
        (data_1.source.epoch < data_2.source.epoch and data_2.target.epoch < data_1.target.epoch)
    )

Together they give accountable safety. For two conflicting checkpoints to both be finalized, two sets holding 2/3 of stake must have voted for them, so at least 2/3 + 2/3 − 1 = 1/3 of stake signed votes that break a rule (for a fixed validator set), and the evidence can be submitted onchain. Since Electra a slashed validator loses 1/4,096 of its effective balance at once, is forced to exit, and about 18 days later pays a correlation penalty that scales with everything slashed in the surrounding 36 days:

correlation penalty = effective balance × min( 3S, T ) ÷ TS is stake slashed within the last 8,192 epochs, T is total active stake. The multiplier has been 3 since Bellatrix.

An isolated mistake costs a small fraction of one ETH. A coordinated attack by a third of stake costs all of it. That is what economic finality means: reverting a finalized checkpoint is possible, but only by burning at least a third of everything staked (see slashing and what validators do).

The inactivity leak: how finality comes back

If more than a third of stake goes offline, no checkpoint can be justified, yet LMD GHOST keeps producing blocks. Once the finality delay passes 4 epochs, the chain enters an inactivity leak. Each validator has an inactivity score that rises by 4 for every epoch it misses a timely target vote, and each epoch it is charged:

leak penalty per epoch = effective balance × score ÷ (4 × 224)INACTIVITY_SCORE_BIAS = 4, INACTIVITY_PENALTY_QUOTIENT_BELLATRIX = 2^24. A participating validator’s score falls by 1 per epoch, and by 16 more once the leak ends.

After t epochs offline the score is about 4t, so the per epoch charge is about balance × t ÷ 224 and the cumulative loss grows with t². Participants lose nothing to the leak, though they earn no attestation rewards while it lasts. The offline share of stake shrinks until the online validators hold 2/3 again and finality resumes. Simulating the rule for 32 ETH validators, and ignoring the much smaller ordinary penalties for missed votes:

Offline shareEach offline validator must fall toEpochs of leakRoughly
40%24 ETH effective balanceabout 2,95013 days
50%16 ETH, the ejection balanceabout 4,69021 days

Mainnet has seen the early stages. On May 11 and 12, 2023, a client resource exhaustion bug delayed finality for 4 and then 9 epochs while blocks kept coming, and the second episode triggered the leak, costing inactive validators roughly 28 ETH in total according to the Prysm team’s post-mortem. The design has an uncomfortable corollary: in a true network split, each side leaks the other side’s validators, and after a few weeks both sides could in principle finalize. A long partition is therefore resolved socially, by the community choosing a chain, not by the protocol alone.

Solana: a clock, Tower BFT and Alpenglow

Solana chased latency by a different route. Proof of history is a sequential SHA-256 hash chain the leader runs continuously and mixes transactions into, so anyone can verify ordering and approximate elapsed time without trusting timestamps. It is a clock, not a consensus protocol: validators still vote on which fork to follow. Leaders are scheduled in advance for windows of four consecutive slots.

Tower BFT

Validators vote with onchain vote transactions, and every vote carries a lockout. After voting for slot s, a validator may not vote on a conflicting fork until slot s + 2c, where c is the vote’s confirmation count, 1 when cast and rising as later votes stack on top, so each new vote doubles the lockouts beneath it. When 32 votes are stacked, the oldest reaches maximum lockout, leaves the tower and its slot is rooted. Two checks sit on top: a validator will not vote if the vote 8 deep in its tower lacks support from 2/3 of stake, and it may only switch forks after seeing more than 38% of stake on the other side.

RPC commitment levels map onto this. confirmed is optimistic confirmation, a supermajority has voted on the block; finalized means rooted. The Alpenglow proposal puts Tower BFT finality at 12.8 seconds, which is 32 slots of 400 ms. Slot times have since moved: under SIMD-0525, mainnet stepped its target from 400 ms to 350, 300 and then 250 ms between August and mid September 2026, with a 200 ms step still pending, so the same 32 slot depth now takes about 8 seconds. The proposal also notes that Tower BFT has no published security proof.

Alpenglow

SIMD-0326 (Kniep, Sliwinski and Wattenhofer) replaces Tower BFT with Votor. Votes leave the chain: validators send them to each other directly and aggregate them into BLS12-381 certificates.

OutcomeCertificate neededVoting rounds
Fast finalizationNotarize votes from 80% of stakeOne
Slow finalizationNotarize votes from 60% of stake, then finalize votes from 60%Two
Skip the slotSkip votes from 60% of stake when no valid block arrived in timeOne

The result is a deliberate "20+20" trade: safety against up to 20% Byzantine stake instead of the classical 33%, in exchange for one round finality in the common case and liveness with a further 20% of stake simply offline. Alpenglow also caps the active set at the 2,000 highest staked validators, replaces vote fees with a burned validator admission ticket of 1.6 SOL per epoch in the proposal (about 0.8 SOL a day at the original 400 ms slots), and keeps Turbine for block propagation until a separate Rotor proposal. Public testing targets finality of roughly 150 milliseconds.

Status as of September 2026
Alpenglow was approved by a stake weighted validator vote that closed in early September 2025, with about 98% of votes cast in favor. As of late September 2026 its feature gate was active on testnet and devnet and still pending on mainnet. The Agave release schedule listed September 28 for resuming mainnet feature activations, which some reports read as an Alpenglow date; it was not, and Alpenglow did not activate then. Treat the mainnet date as unannounced until Anza confirms one.

The designs side by side

DesignFinalityIf over a third goes offlineSafe whileTime to finality
Bitcoin (Nakamoto)ProbabilisticKeeps going; blocks slow until difficulty adjustsHonest majority of hash power, fast propagationConvention of 6 blocks, about an hour
CometBFT (Tendermint)Deterministic, every blockHalts until two thirds returnUnder a third of voting power is ByzantineOne block, seconds
Ethereum (Gasper)Economic, per checkpointBlocks continue, finality stops, inactivity leakUnder a third equivocates, or it is slashedAbout 13 to 19 minutes
Solana (Tower BFT)Rooted after 32 stacked votesRoots stop advancing without 2/3Two thirds honest; no published proofAbout 8 seconds at 250 ms slots
Solana (Alpenglow, planned)Certificate basedLive with 20% Byzantine plus 20% offlineUnder 20% ByzantineTarget about 150 ms

Open questions

  • Faster Ethereum finality. ethereum.org (updated July 2026) describes single slot finality as research that is not expected to ship for several years. The Ethereum Foundation’s lean Ethereum vision (July 2025) aims at finality in seconds, with hash based aggregate signatures eventually replacing BLS.
  • Is 20% the right bound? Alpenglow bets that crash tolerance and one round latency matter more in practice than the last 13 points of Byzantine tolerance. Whether stake concentration makes that bet safe is an open argument.
  • Timing games. Proposers who delay blocks to capture more MEV eat into the timing assumptions the fork choice relies on. See the MEV supply chain.
  • Long range attacks. Keys that have exited can cheaply sign an alternative history. Proof of stake answers with weak subjectivity: new nodes start from a recent trusted checkpoint rather than from genesis.
  • Validator count versus message cost. Signature aggregation is what lets Ethereum count votes from a very large set; Alpenglow instead caps its set at 2,000. The scheme choices behind both are in signature schemes.

Common questions

What is the difference between probabilistic and deterministic finality?

Probabilistic finality, as in Bitcoin, means reversal becomes exponentially unlikely as blocks accumulate, but never impossible. Deterministic finality, as in CometBFT, means a committed block cannot be reverted unless more than the protocol’s fault bound misbehaves. Ethereum sits in between with economic finality: reverting a finalized checkpoint requires at least a third of all stake to be slashed.

Why do BFT protocols need more than two thirds of participants to be honest?

Because a protocol must proceed without hearing from the f participants who may be silent, yet any two groups it proceeds with must overlap in an honest member. With n = 3f + 1 and quorums of 2f + 1, any two quorums share at least f + 1 members, so at least one of them is honest. With fewer participants that overlap cannot be ensured.

How long does Ethereum take to finalize a transaction?

In the normal case a checkpoint finalizes two epochs after it is proposed, which is 12.8 minutes. A transaction that lands mid epoch waits for the next checkpoint, so expect roughly 13 to 19 minutes, usually quoted as about 15. Many applications act on a block well before finality and accept a small reorg risk.

Can a finalized Ethereum block be reverted?

Only if at least a third of staked ETH signs conflicting votes, which is provable and slashable, and with the correlation penalty those validators lose their entire stake. A client bug could also cause nodes to disagree, which is one reason client diversity matters. In any case, a reversal would be a visible, costly event rather than a quiet reorg.

Is Solana’s Alpenglow upgrade live?

Not on mainnet as of late September 2026. It was approved by validator governance in September 2025 and its feature gate had been activated on testnet and devnet, but mainnet activation was still pending with no confirmed date. Mainnet still ran Tower BFT, with slot times cut to 250 ms by a separate change.

Kept on this device only. Nothing is sent anywhere.

Where to go next

Next: Signature schemes: ECDSA, Schnorr, EdDSA and BLS

Guide 2 of 16 in the Expert level. Your place is kept on this device, so you can pick up exactly here next time.

Share this page

Was this page useful?