Alpenglow Formal Verification
Link to open source: https://github.com/iamaanahmad/alpenglow-verifier
Link to Live Project: https://iamaanahmad.github.io/alpenglow-verifier/
Machine-Verified Correctness of Solana's Next-Generation Consensus Protocol
This project provides machine-checkable formal verification of Solana's Alpenglow consensus protocol using TLA+ and the TLC model checker. We transform mathematical theorems from the Alpenglow whitepaper into mechanically-verified proofs, providing stronger security guarantees than paper proofs alone.
Alpenglow will secure billions of dollars in value on Solana. Traditional testing can only check specific scenarios, but formal verification mathematically proves correctness across all possible executions, including:
- Byzantine adversaries with up to 20% stake
- Network partitions and delays
- Concurrent operations and race conditions
- Edge cases impossible to test manually
- 1,967 lines of formal specification modeling:
- Votor's dual voting paths (fast 80% vs slow 60%)
- Rotor's erasure-coded block propagation
- Certificate generation and aggregation
- Timeout mechanisms and skip certificates
- Leader rotation and window management
- Byzantine fault injection
Safety Properties (Nothing bad happens):
- ✅
NoConflictingBlocksFinalized- No two different blocks finalized at same slot - ✅
CertificateUniqueness- Each slot has at most one valid certificate - ✅
NoEquivocation- Honest nodes never double-vote - ✅
SlotBounds- Slot numbers stay within valid range - ✅
ValidByzantineStake- Byzantine stake never exceeds 20%
Liveness Properties (Something good eventually happens):
- ✅
ProgressWithHonestSupermajority- System makes progress with >60% honest stake - ✅
FastPathCompletion- Fast finalization with 80% responsive stake - ⚠️ Currently being tested with fairness constraints
Resilience Properties:
- ✅ Byzantine fault tolerance with ≤20% malicious stake
- ✅ Network partition recovery
- ⚠️ Comprehensive resilience testing in progress
- Model Checking: Exhaustive state space exploration for small configurations
- Fairness Constraints: Prevents trivial counterexamples from stuttering
- Type Safety: Consistent variable types throughout specification
- Comprehensive Testing: Multiple test configurations (2-10 nodes)

.png)
.png)