-
Notifications
You must be signed in to change notification settings - Fork 2
[1/4] Document threshold policies and security assumptions #221
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
| **The tuple `(N, f, t)` chosen at key generation is fixed for all subprotocols** | ||
| (keygen → presign/offline → signing → refresh → resharing). | ||
| Any deviation **must be rejected** unless explicitly whitelisted by `SchemeRules`. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This cannot be accurate. During resharing we might need to change the threshold
CC: @SimonRastikian @netrome
On a related note, in which cases
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@gilcu3 true (for current implementation).
I should've mentioned in a Planned policy:
once ThresholdPolicy/SchemeRules land ([step 3/4]), the default will be:
(N,f,t)stays fixed unless theSchemeRulesentry for that scheme allows otherwise.
The What (Goal):
Make the constraints explicit and impossible to miss.
The How (Approach):
- Modify APIs so that mismatched thresholds (e.g., refresh with different threshold) are rejected (step 2/4) unless explicitly intended and supported (step 3/4):
- Introduce scheme-specific hardcoded rules over allowable threshold.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
alright, probably in the future PRs then it will make sense. Although also maybe worth asking, do we have a variable for
|
|
||
| | Misconfiguration | Failure Mode | | ||
| | ------------------------------------------- | --------------------------------------------------------------------- | | ||
| | `f >= N/3` in DKG | Broadcast assumptions break; safety and liveness lost. | |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
for that type of comparison we should be more precise, as
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes, wherever we use fractions and compare them with integers we should be explicit: using floor or ceil
42b2982 to
059ea21
Compare
related to #18
related to #57
Part 2/4: Persist and enforce threshold invariants across key refresh APIs
Part 3/4: Implement scheme-specific hardcoded threshold validation
Part 4/4: Mirror threshold validation and checks in MPC repo