Dusk Succinct Attestation (SA) Consensus Protocol

Overview $DUSK

Succinct Attestation is a permissionless, committee-based proof-of-stake consensus protocol designed specifically for financial applications requiring fast, deterministic finality. The protocol is run by all stakers (called "provisioners") who are responsible for generating, validating, and ratifying new blocks.

Key Components

Provisioners: Participants who have staked DUSK tokens. To be eligible:

Must have a pre-configured amount of DUSK locked as stake

Stake must have maturity of at least two epochs

Deterministic Sortition: An algorithm that extracts provisioners non-interactively based on their stakes—the higher the stake, the more likely they are to be selected for consensus participation.

Voting Credits: A fixed number (64 credits) assigned among provisioners to form committees for each consensus phase.

Consensus Process

Each consensus operates in rounds, with each round adding a new block. Rounds proceed through iterations (maximum 255), with each iteration attempting to generate and reach agreement on a candidate block.

Three Main Phases per Iteration:

Proposal Phase: A pseudo-randomly selected provisioner generates a candidate block

Validation Phase (two rounds): Committees vote on the block's validity

Ratification Phase: Final committee votes to accept or reject the block

How It Works

Committee Selection: For each phase, the deterministic sortition algorithm extracts provisioners to form committees. Each committee is assigned 64 voting credits distributed among selected provisioners.

Voting Process:

Committee members cast digitally-signed votes

A supermajority of votes is required for consensus

All nodes collect votes from the network until supermajority is reached

Iteration Outcomes:

If supermajority is reached, the block is added to the blockchain

Results are certified with an attestation containing all committee votes

If iteration fails, a new iteration begins with different provisioners

The last iteration (255) produces an emergency empty block to ensure the round completes

Block Finality States

Accepted: Block reached consensus but at iteration higher than 0, and not all previous iterations have Failed Attestation. Can potentially be replaced by a lower-iteration block.

Attested: Block has Valid quorum AND all previous iterations have Failed Attestation. Cannot be replaced. Blocks reaching quorum at iteration 0 are automatically Attested.

Fork Resolution

Due to network asynchrony, multiple blocks can reach consensus in the same round (different iterations), creating forks. The protocol handles this through the attestation system and finality rules.

Network Infrastructure

The protocol uses Kadcast, a structured peer-to-peer protocol that optimizes message exchange between nodes. Unlike traditional Gossip protocols, Kadcast uses structured overlay for directed message flow, drastically reducing bandwidth and improving latency predictability.

Economic Incentives

Reward Distribution:

70% to Block Generator (proposal step)

Extra 10% based on credits included in certificate

Undistributed rewards are burned

This structure incentivizes all consensus steps while focusing rewards on the Block Generator role.

Technical Implementation

The SA implementation consists of two main tokio-rs tasks:

Main_Loop: Executes contract storage calls, stores/retrieves candidate blocks, performs all three reduction steps, produces and broadcasts Agreement Messages

Agreement_Loop: Retrieves candidate blocks when winner hash is selected, verifies and accumulates Agreement messages, processes Aggregated Agreement

Advantages

Fast finality: Near-instant settlement suitable for financial markets

Permissionless: Any eligible participant can join

Scalable: Can scale to millions of nodes without compromising finality

Deterministic: Provides statistical finality guarantees

Efficient: Reduced network overhead through Kadcast protocol

For the most detailed technical specifications, you can reference Section 3 "Consensus mechanism" of the Dusk Whitepaper (2024) or visit their GitHub repository at github.com/dusk-network/dusk-protocol.#dusk @Dusk