-
Notifications
You must be signed in to change notification settings - Fork 0
Closed
Description
Summary
The Narwhal-Tusk showcase spec (specl/examples/showcase/narwhal_tusk.specl) models the structural DAG construction and Tusk commit rule but omits Byzantine behavior, making it a partial rather than complete BFT verification.
What's modeled
- DAG construction with quorum-based certificates (round advancement requires 2f+1 certs from previous round)
- Signature collection with quorum requirement
- Tusk deterministic leader election and commit rule (strong path: 2f+1 certs at round r+1)
- No-equivocation invariant (one cert per validator per round)
- Commit agreement (only the deterministic leader commits)
What's missing
- Byzantine behavior: No equivocating validators, no signature withholding, no invalid certificates. The current model only verifies the happy path.
- Explicit references: References are implicit (round r certs reference ALL certs from round r-1). The real protocol has explicit reference sets, which matters for causal ordering under Byzantine behavior.
- Causal commitment: The
MarkAncestorCommittedaction is commented out to reduce state space. Without it, we can't verify that committing a leader cert correctly commits its entire causal history.
Impact
The spec is fine as a structural reference for how Narwhal-Tusk works, and it does verify the DAG validity and commit agreement properties. But it doesn't provide the full BFT verification that the protocol claims (safety under f Byzantine validators out of 3f+1).
Suggested improvements
- Add
GoFaultyaction (similar to the CometBFT spec) allowing up to F validators to go Byzantine - Add Byzantine actions: equivocating certificates, arbitrary signing
- Make references explicit (
Dict[Seq[Int], Set[Seq[Int]]]or similar) to properly model causal ordering - Re-enable
MarkAncestorCommittedwith explicit references - Verify Agreement holds even with F Byzantine validators
This would bring it to the same level of faithfulness as the CometBFT spec, which models Byzantine prevotes, precommits, and proposals.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels