You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
In general we define that ShuffleThreshold > f, while DKGThreshold > 2f. This is because we only need a shuffler to shuffle 1 time more than the malicious node (f). And for computePubshares, we will need to have more than 2f to protect against the byzantine node.
However, the current system only has “ShuffleThreshold” which didn’t differentiate between “shuffle” and “compute pubshares”. Which will cause problems in the future if we tighten the shuffle threshold.
Source
For checking if we have shuffled enough, we can use shuffleThreshold
contracts/evoting/evoting.go line 396~399
// in case we have enough shuffled ballots, we update the statusiflen(form.ShuffleInstances) >=form.ShuffleThreshold {
form.Status=types.ShuffledBallotsPromFormStatus.WithLabelValues(form.FormID).Set(float64(form.Status))
}
But for checking
contracts/evoting/evoting.go line 583~586
Scenario
In general we define that ShuffleThreshold > f, while DKGThreshold > 2f. This is because we only need a shuffler to shuffle 1 time more than the malicious node (f). And for computePubshares, we will need to have more than 2f to protect against the byzantine node.
However, the current system only has “ShuffleThreshold” which didn’t differentiate between “shuffle” and “compute pubshares”. Which will cause problems in the future if we tighten the shuffle threshold.
Source
For checking if we have shuffled enough, we can use shuffleThreshold
contracts/evoting/evoting.go line 396~399
But for checking
contracts/evoting/evoting.go line 583~586
Breaking Property
Integrity
Risk
CVSS Score: 6.6/10
Mitigation
We can create a new threshold “DKGThreshold” for combine Pubshares and only use “ShuffleThreshold” for shuffler related function.
The text was updated successfully, but these errors were encountered: