Source

Consensus Implementation

Y Protocol implements a Simplified Proof-of-Stake (SPoS) consensus mechanism with Byzantine fault tolerance and validator slashing.

2/3+ Majority
BFT
Slashing

Core Implementation

SimplePOSConsensus Structure
Core consensus engine implementation
pub struct SimplePOSConsensus {
    pub validator_votes: HashMap<String, ValidatorVote>,
    pub block_proposals: HashMap<u64, Block>,
    pub consensus_threshold: f64,  // 0.67 (2/3 majority)
    pub current_height: u64,
    pub active_validators: Vec<ValidatorInfo>,
    pub vote_history: HashMap<u64, HashMap<String, ValidatorVote>>,
    pub slashing_manager: Option<Arc<Mutex<SlashingManager>>>,
}
Source: /crates/consensus/src/consensus/pos.rs
Voting Mechanism
Consensus Threshold:
67% (2/3+ majority)
Voting Window:
2 seconds
Block Finality:
Single Slot

Validators vote on proposed blocks. Blocks are finalized when 2/3+ majority is reached.

Network Timing
Block Time Target:
4 seconds
Proposal Phase:
1.33 seconds
Voting Phase:
1.33 seconds
Finalization Phase:
1.33 seconds

Network phases: Proposal → Voting → Finalization → Broadcast

Validator Management

Requirements
Minimum Stake:
10,000 YPC
Selection Weight Cap:
1M YPC
Uptime Requirement:
95%+
Slashing Conditions
Double Signing:
5% slash
Invalid Block:
2% slash
Extended Downtime:
1% slash
Selection Algorithm

Stake-weighted random selection

Validators are selected based on their stake proportion, with a maximum weight cap for decentralization.

Consensus Process

Block Consensus Flow
Step-by-step consensus mechanism
1

Validator Selection

Stake-weighted random selection chooses block proposer

2

Block Proposal

Selected validator proposes new block with transactions

3

Voting Phase

Validators vote on the proposed block (3-second window)

4

Block Finalization

Block finalized when 2/3+ majority votes received

5

Reward Distribution

Block rewards and fees distributed to participants

Security Features

Byzantine Fault Tolerance
  • Tolerates up to 33% malicious validators
  • Double-spend protection
  • Long-range attack mitigation
  • Nothing-at-stake prevention
Implementation Details
  • No chain reorganizations
  • Finality achieved once 2/3+ validators reach consensus
  • Slashing for misbehavior
  • Vote history tracking