feat: Mix Cover Traffic specification#311
Conversation
jm-clius
left a comment
There was a problem hiding this comment.
This looks good to me!
Below I made some comments suggesting we underspecify the idea of proof precomputation, mostly to sidestep the complexity that introduces for RLN-based protection mechanisms (not only can a software bug lead to you slashing and deanonymising yourself, but because of root changes you might precompute invalid proofs). However, after reading through everything I agree that we probably want to keep proof precomputation as recommended default. Perhaps we can just RECOMMEND that all proofs be validated (again) before using them?
b45f312 to
81e6e87
Compare
AkshayaMani
left a comment
There was a problem hiding this comment.
Great spec! Left a few comments with questions and suggestions.
|
@AkshayaMani also added an overview section in the spec now. |
Cofson
left a comment
There was a problem hiding this comment.
Genuinely solid spec, the self-balancing pool model is well argued and the iteration with AkshayaMani has tightened a lot. Three small things worth firming up before draft:
d188532 to
941b623
Compare
Concrete instantiation of the pluggable cover traffic component defined in Mix Protocol §6.4. Covers Constant-Rate strategy with self-balancing slot pool, self-exit loop paths, optional pre-computation, and `cover_rate_fraction` for forwarding headroom. Adds the §8.6.4 internal-codec check in mix.md and the §8.2.3 OnEpochChange notification in mix-dos-protection.md. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
941b623 to
66a96e8
Compare
|
I am merging this spec for now, any enhancements can be done as separate PR to update it. |
Summary
This PR introduces the Mix Cover Traffic specification — a concrete instantiation of the pluggable cover traffic component defined in Mix Protocol §6.4. The spec defines how mix nodes generate and emit cover packets to achieve sender unobservability.
Key design decisions
Rfrom the DoS protection mechanism. Forwarding naturally consumes ~L/(1+L)of the budget; the remainder is used for cover. No explicit origination rate constraint is needed./mix/cover-traffic/1.0.0identifies returning cover packets during exit processing, handled locally.N-1for epochN, with batched pre-computation as an implementation recommendation.Changes to existing specs
OnEpochChange(callback)procedure for epoch boundary notifications to pluggable components.