Additional votes in the structures #2506
Open
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.
What this PR does
For a new election at EPFL there will be more than 8 candidates. This is a problem, as currently all
choices are stored as
data
in aned25519
Point
. But as thisPoint
only takes 24 bits of data,we cannot store easily more than 9 choices.
To allow for more than 9 candidates, each
Ballot
,Mix
, andPartial
will haveAdditional*
fieldsto hold the additional choices.
As these fields are slices, and added to the end of the structures, and thus to the end of the protobuf definition,
it should be backward-compatible.
To make sure we don't add security problems, we also do:
Additional
fields in theBallot
as are maximally possible, to avoid leaking for how many candidates a person votedshuffle/sequences.go
if there are more than 9 candidates🙅 Friendly checklist:
xerrors.Errorf
and the%v
verb.