feat: add modular block authentication together with MAC-vector and ML-DSA block signatures#134
Draft
NaitsabesMue wants to merge 19 commits into
Draft
feat: add modular block authentication together with MAC-vector and ML-DSA block signatures#134NaitsabesMue wants to merge 19 commits into
NaitsabesMue wants to merge 19 commits into
Conversation
NaitsabesMue
marked this pull request as draft
July 13, 2026 13:38
|
polinikita
reviewed
Jul 14, 2026
| const _: () = assert_constants(); | ||
|
|
||
| #[allow(dead_code)] | ||
| #[allow(clippy::manual_is_multiple_of)] |
Member
There was a problem hiding this comment.
I don't understand why many unrelated parts were modified
Contributor
Author
There was a problem hiding this comment.
Thanks, made changes, now hopefully removed all unnecessary changes.
Contributor
Author
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.
Member
|
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:
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR separates block identity from block authentication and adds modular authentication schemes for Starfish, Starfish Speed, and Sparse Starfish Speed.
Block references now depend only on block content, while authentication is stored and transmitted separately.
Authentication schemes
The design keeps the schemes interchangeable so additional signature or MAC implementations can be evaluated later.
MAC-vector behavior
Protocol variants
The new authentication variants are available for:
Sparse refers to Sparse Starfish Speed, not Bluestreak.
Validation
Focused authentication, serialization, relay, synchronization, and live consensus tests pass.
The full parallel core test suite reaches 222/224. Two lifecycle resource-release/teardown assertions remain unstable; the authentication and protocol correctness tests themselves pass.
Benchmarks
Local geographic emulation was run for all nine combinations with:
Authentication choice had no material throughput impact. MAC increased outbound bandwidth by approximately 6.6% for plain Starfish and Starfish Speed. Its relative overhead was larger for Sparse Starfish Speed because sparse dissemination removes most other protocol traffic, although its absolute bandwidth remained substantially lower.
The benchmark reports and validator-scaling observations are included under
benchmark-results/.