Introduction
The TON Blockchain achieves consensus through a layered Byzantine Fault Tolerant (BFT) protocol designed for high throughput, low latency, and security against up to one-third malicious validators. The system combines two protocols:- Catchain Protocol – a reliable broadcast mechanism that ensures consistent message delivery and fork detection.
- Block Consensus Protocol (BCP) – a three-phase commit protocol built on top of Catchain that finalizes blocks.
Consensus Model
Byzantine Fault Tolerance
Let:n
= number of validators,f
= number of faulty or malicious validators,q
= quorum size.
- Safety – no two conflicting blocks can both be finalized.
- Liveness – as long as ≥
2n/3
validators are responsive, some block is always finalized.
Catchain Protocol
Catchain provides the secure communication foundation for BCP.Validator messages
Each validatorv
generates a sequence of signed messages:
height
: strictly increasing local counter.deps[]
: references to previous messages (DAG edges).sig
: cryptographic signature binding the message.
DAG structure
The global state of Catchain is a Directed Acyclic Graph (DAG) where:- Vertices are messages.
- Edges represent dependencies.
- Every message must reference known predecessors.
Fork detection
Forking occurs when:A fork proof =
{m1, m2}
can be submitted to the Elector contract, leading to validator slashing.
Guarantees
- Consistency – all honest validators eventually converge on the same DAG.
- Integrity – equivocation is always detectable.
- Foundation – BCP builds on this consistent DAG to safely finalize blocks.
Block Consensus Protocol (BCP)
With Catchain providing reliable messaging, BCP ensures validators agree on block finalization.Phases
BCP is structured as a three-phase commit:- Proposal – a leader proposes a block candidate.
- Validation – validators verify correctness (transaction validity, state consistency).
- Voting – validators vote for approved candidates.
- PreCommit – once ≥
q
votes are collected, validators broadcast PreCommit. - Commit – once ≥
q
PreCommits are observed, validators issue CommitSign and the block is finalized.
Safety proof
Suppose two conflicting blocksB1
and B2
are both finalized.
- Each requires ≥
q ≥ 2n/3
signatures. - Their signer sets intersect in ≥
2q – n ≥ n/3
validators. - Since
f < n/3
, at least one honest validator signed both, which is impossible.
Liveness
As long as ≥2n/3
validators are online and responsive, some block or null block always gathers enough signatures, ensuring bounded progress.
Rounds and Attempts
Consensus is organized into rounds and attempts:- Each round lasts one election cycle (~18h on mainnet, ~2h on testnet).
- Each round is subdivided into attempts of fixed duration (
K ≈ 8s
). - Fast attempts – optimistic, finalize quickly if leader is honest and network healthy.
- Slow attempts – coordinator-driven, ensure progress under failures.
Validator Elections
Validators are selected by the Elector contract using an on-chain election.Process
- Validators submit stake transactions.
- Elector sorts candidates by stake.
- Up to
maxValidators
are selected. - Effective stake is capped to ensure fairness.
Effective stake formula
minStake
= minimum stake among selected validators,stakeFactor
≈ 3.
Example
If the smallest validator stakes 100k TON, then:- The largest counted stake = 300k TON.
- A validator staking 1M TON still only contributes 300k TON effectively.
Set sizes
- Masterchain – ~100 validators.
- Shardchains – ~23 validators each.
Incentives and Penalties
Rewards
Validators are compensated with:- Transaction fees (gas costs).
- Block subsidies:
- ~1.7 TON per masterchain block.
- ~1 TON per shardchain block.
Inflation and burn
- Inflation rate: ~0.3–0.6% annually.
- Since June 2023, part of the subsidy is burned, introducing deflationary pressure as usage grows.
Penalties
Validators may be fined for:- Inactivity – not producing or signing enough blocks (lower than 90% efficiency).
- Malicious behavior – forks, equivocation, invalid approvals.
- Standard fine – ~101 TON per round of misbehavior.
Slashing mechanism
- Evidence is submitted as fork proofs or efficiency complaints.
- Validators verify collectively; ≥
2n/3
agreement required. - Elector contract enforces slashing automatically.
Validator Guidelines
Operating a validator reliably is critical. Recommended practices:- Run on high-performance, redundant servers.
- Ensure stable, low-latency network connections.
- Use monitoring systems (Prometheus, Grafana, Datadog) to track CPU, memory, disk, and validator efficiency.
- Keep validator software updated to the latest stable release.
- React quickly to alerts about downtime or forks.
Extended Fault Tolerance Analysis
-
Fault tolerance:
- With
n
validators, up tof < n/3
may behave arbitrarily (Byzantine). - Finalization requires ≥
2n/3
CommitSigns.
- With
-
Intersection property:
- Any two quorums of size ≥
2n/3
intersect in at leastn/3
. - Since
f < n/3
, intersection always includes an honest validator. - This guarantees that conflicting blocks cannot both finalize.
- Any two quorums of size ≥
-
Efficiency requirement:
- A validator’s efficiency =
signedBlocks / expectedBlocks
. - If efficiency is lower than 90% in a round, fines are applied.
- A validator’s efficiency =
-
Liveness bound:
- Consensus always finalizes within a bounded number of attempts.
- Null blocks prevent deadlock even under heavy network partitions.
Summary
- Catchain Protocol – consistent broadcast of validator messages with DAG structure and fork proofs.
- Block Consensus Protocol – three-phase commit finalizing blocks with ≥
2n/3
quorum. - Elections – validator selection via the Elector contract, with fairness enforced by stake caps.
- Rewards and penalties – align incentives with network security.
- Fault tolerance – safety holds with
f < n/3
, liveness guaranteed with ≥2n/3
honest validators.