Finality model

Syntarie uses checkpointed finality with bounded reorg depth.

The basics

  • Block production: round-robin Proof-of-Authority across the validator set. Block cadence ~1–2 blocks/sec.
  • A block becomes finalized when it has FINALITY_K descendants — currently 5 blocks deep.
  • Finalized blocks cannot be reorged out. The chain reorg depth is bounded by FINALITY_K.

What "checkpointed" means

Every CHECKPOINT_INTERVAL blocks (currently 256), validators sign a checkpoint commitment. The checkpoint pins the canonical chain at that height. Re-orgs past a signed checkpoint are protocol-rejected.

This is different from probabilistic finality (Bitcoin, Ethereum PoW): once Syntarie commits a checkpoint, the chain past it is provably canonical. There is no "wait 6 blocks for confidence" — wait for the next checkpoint.

Bridge admission gate

The bridge consumes finality. A cross-domain message from Base is admitted only when the Base block referenced has domain_required_finality_depth descendants (configured per-domain, default 12 for Base mainnet).

Conversely, a withdrawal from Syntarie to Base requires the Syntarie block to be finalized (≥ FINALITY_K descendants) before the proof is generated.

What's verified about it

  • 60-min sustained baseline (HETZNER-1 closure 2026-04-25): no reorgs observed under load, validator set held quorum throughout.
  • Foundry tests pin signature-quorum + replay protection on the Base side (ProofVerifier.t.sol, BridgeVault.replayProtection.t.sol).
  • Crucible regression tests pin RecoveryFsm and chain-store recovery behavior at finality boundaries.

What's NOT in scope

  • No fork-choice rule beyond round-robin. There's no GHOST, LMD-GHOST, or Casper FFG.
  • No PoS slashing.
  • No light-client bridge — finality on the Base side is observed via a trusted-prover quorum, not verified on-chain.
  • No state proofs to other chains — finality is observable only via the bridge's admission/proof path.

Source pointers

  • interface/src/core/params.rsFINALITY_K, CHECKPOINT_INTERVAL constants
  • interface/src/core/chain.rs — finality state machine
  • interface/src/core/checkpoint.rs — checkpoint commitment
  • interface/src/core/bridge.rs — domain finality gate (search for domain_required_finality_depth)
  • ops/bridge-base/contracts/ProofVerifier.sol — Base-side proof verification