feat: add modular authentication and single-DAG Starfish-RBC - #134
feat: add modular authentication and single-DAG Starfish-RBC#134NaitsabesMue wants to merge 62 commits into
Conversation
|
| const _: () = assert_constants(); | ||
|
|
||
| #[allow(dead_code)] | ||
| #[allow(clippy::manual_is_multiple_of)] |
There was a problem hiding this comment.
I don't understand why many unrelated parts were modified
There was a problem hiding this comment.
Thanks, made changes, now hopefully removed all unnecessary changes.
There was a problem hiding this comment.
Also
- Removed the committed benchmark-result reports; results can instead be shown as a graph or short summary in the PR.
- Decoupled digital-signature selection from the consensus protocol.
block_authenticationnow selects Ed25519 (default), ML-DSA-44, or ML-DSA-65 for every protocol. - Removed the separate
*-ml-dsa-*protocol variants. - Kept the MAC variants separate and clearly marked them as experimental lower-bound benchmarks. MAC vectors are not a drop-in signature replacement and currently provide no protocol safety/liveness guarantee without an additional quorum-authentication/RBC mechanism.
- Removed unrelated changes and kept the modular block-authentication plumbing needed for these experiments.
|
I would not add the experiment results as they will need to be reevaluated after every small modification of a protocol, which sometimes happens (e.g. starfish-speed is very sensitive to the soft_timeout constant). In addition, I would not make standalone protocols with just different identification fields. So, my recommendation:
|
c59523a to
9483be3
Compare
|
Latency checkpoint pushed in This simplifies and accelerates the existing no-extra-communication carrier path:
Fresh matched 20 s / 1,000 offered tx/s results:
The n=10 AWS run reaches the preliminary sub-1 s objective without additional protocol communication, synchronization, relaxed thresholds, or extra parents. The n=40 result remains dominated by committee-scale RBC phase/projection work rather than Core application. Validation: 54 service tests, 30 shadow/recovery tests, 44 RBC model tests, 15 bridge/mailbox tests, strict Clippy Correction to the earlier PR description: the application callback/cache bound is no longer fixed at 64 for n=40; it is committee-scaled and remains explicitly capped at 128. |
This reverts commit 3ad9bff.
This reverts commit 37379aa.
This reverts commit f0ec145.
This reverts commit 9cdbc16.
This reverts commit 63d0bc2.
This reverts commit 65dd57e.
This reverts commit 2275c06.
This reverts commit 57d660a.
This reverts commit d6f11cd.
This reverts commit 68a0a68.
This reverts commit 445736b.
This reverts commit e296479.
This reverts commit 2bb7ae8.
Summary
This PR now contains only three related pieces:
starfish-rbc-single-dag, which embeds typed ECHO/READY references in ordinary Starfish blocks so consensus and RBC use one block identity and one DAG.The superseded standalone carrier/shadow RBC-DAG has been removed completely, including its second clock, reducer/projection planes, WAL/receipt recovery, synchronization transport, vote-QC experiment, metrics, tests, and design document. This reduces the PR from 53 files and 57,396 added lines to 35 files and 12,688 added lines.
Signature-free single-DAG lower bound
Finite benchmarks can enable
--starfish-rbc-single-dag-echo-qc-fast-path. A receiver then delivers an exact header after locally authenticating quorum ordinary DAG blocks carrying ECHO, while still emitting the normal READY reference. It adds no public signature, portable QC object, full MAC witness vector, standalone phase message, or extra fast-path communication.This flag has an explicit Byzantine-totality caveat. Pairwise-MAC testimony is receiver-local: quorum intersection and per-sender slot locks preserve integrity and uniqueness, but Byzantine ECHO senders may selectively reveal testimony so one honest receiver obtains quorum while another never does. The flag is therefore restricted to bounded testbed runs and must not be presented as production-safe RBC. The default V3 path continues to require quorum READY.
Two attempted portable-certificate variants were removed: aggregate BLS evidence violated the signature-free requirement, while complete per-recipient MAC witness vectors grew with the committee and overloaded the 40-validator local testbed.
Why the retained files are needed
Validation
starfish_rbc::tests: 46/46 passed.starfish_rbc_service::tests: 9/9 passed.starfish-corelibrary suite excluding the separately exercised validator smoke matrix: 250/250 passed.starfishCLI tests: 4/4 passed.starfish-core,starfish, andorchestratorwith-D warnings.Matched single-DAG measurements
The retained implementation previously produced the following matched local results at 1,000 offered tx/s for 20 seconds with MAC authentication and the fixed 50 ms V3 round limiter. Every run eventually committed exactly 20,000 submitted transactions. These are single-machine testbed measurements, not production or statistical claims.
The receiver-local lower bound meets the preliminary 1,000 ms p50 objective at both 10 and 40 validators, subject to the totality caveat above.
Remaining limitations
This is a research testbed. Production use still needs a complete asynchronous proof, durable restart/replay for embedded phase locks, bounded retirement and state transfer, broader Byzantine testing, peer-identity hardening, and resource/DoS analysis. The exact protocol and caveat are documented in
docs/starfish-rbc-single-dag-v3.md.