Consensus
Trayon uses a modified Practical Byzantine Fault Tolerance (PBFT) protocol, requiring a 2/3 + 1 quorum among 1,000+ staked validators, with BLS signature aggregation for compact, efficient proofs of agreement.
Consensus round (12 seconds)
T+0s Block Proposal
Sequencer proposes a batch (txs, state root, timestamp)
and broadcasts it to all validators.
T+4s Validation Phase
Validators independently execute the batch, compute a
local state root, and vote APPROVE / REJECT.
T+8s Quorum Check
Sequencer collects votes, requires 2/3 + 1 validators,
aggregates signatures with BLS, and broadcasts commit.
T+12s Finality
Block is finalized. State update becomes immutable.
Validator reputations are updated.BLS signature aggregation
Rather than storing every individual validator signature on-chain, Trayon aggregates BLS signatures into a single 48-byte proof — regardless of how many validators signed. This keeps on-chain verification cheap while still cryptographically proving that a 2/3 + 1 quorum approved the block.
Slashing conditions
| Condition | Penalty |
|---|---|
| Voted REJECT on a block that was ultimately approved | -5% of stake (false positive) |
| Did not vote within the round window | -10% of stake (downtime) |
| Double-signed conflicting blocks | -100% of stake (Byzantine slash) |
| Committed provably false data | -50% of stake (data integrity slash) |
Slashed TRAY is burned rather than redistributed, reinforcing the network's deflationary token model. See TRAY Tokenomics for details.
Validator reputation
Each validator carries a reputation score (0–100) that increases with consistent, correct participation and decreases after slashing events. Reputation influences validator selection weight in future rounds but does not replace stake-based security.
Staking mechanics
Locking TRAY as a validator serves three purposes: earning block rewards (~8% APY), collecting a share of data-query fees, and gaining voting weight in DAO governance.
Validator stake model
Initial stake: 32,000 TRAY (minimum)
Annual rewards: ~2,560 TRAY (≈8% APY)
Lock period: 3–12 months, variable by commitment tier
Unstake delay: 3 days (security window against rapid exits)A worked slashing example — a validator caught submitting provably false data loses 50% of stake:
Validator stake: 32,000 TRAY
Infraction: False data (data integrity slash)
Slashing rate: 50%
Penalty: 16,000 TRAY burned
Remaining stake: 16,000 TRAY
Result: Removed from the active set (below 32,000 minimum)ZK-proof generation & L1 settlement
Once a batch is finalized on Layer 2, the sequencer generates a succinct ZK-SNARK proof attesting that the state transition is valid, then submits it to a settlement contract on Ethereum L1:
Trayon L2 block
├─ State root (Merkle)
├─ Transaction batch
├─ Data commitments
└─ Validator signatures (BLS-aggregated)
│
▼
ZK-Prover (off-chain)
├─ Generates SNARK circuit
├─ Proves "valid state transition"
├─ ~5–10 minutes per batch
└─ Output: π proof (288 bytes)
│
▼
Settlement contract (Ethereum L1)
├─ Verifies π proof in ~200ms
├─ Updates the L1 merkle root
└─ Emits StateCommitted event// Ethereum L1 settlement contract (simplified)
contract TrayonSettlement {
bytes32 public latestStateRoot;
uint256 public batchHeight;
function submitBatch(
bytes32 stateRoot,
bytes calldata zkProof,
uint256 height
) external {
require(msg.sender == sequencer, "unauthorized");
require(verifyZKProof(zkProof, stateRoot), "invalid proof");
latestStateRoot = stateRoot;
batchHeight = height;
emit BatchSettled(height, stateRoot);
}
}Settlement schedule
| Parameter | Value |
|---|---|
| Batch size | Up to 2,000 transactions |
| Submission interval | Every 2 hours, or when a batch fills |
| L1 finality | ~30 minutes after Ethereum confirmation |
| Cost per batch | ~$50–200, shared across all transactions in the batch |
Once finalized on L1, a batch is irreversible — this is the point at which Trayon's data commitments inherit Ethereum's full security guarantees.