Skip to content

Hidden votes recovery UX: Export/Import commitment to a file #1973

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

Open
jaybuidl opened this issue May 9, 2025 · 0 comments
Open

Hidden votes recovery UX: Export/Import commitment to a file #1973

jaybuidl opened this issue May 9, 2025 · 0 comments
Labels
Package: Web Court web frontend Type: Feature🗿 Type: UX User Experience

Comments

@jaybuidl
Copy link
Member

jaybuidl commented May 9, 2025

Rationale

Currently the commitment is stored in browser storage. If the juror needs to reveal their vote on a different device or if their browser storage was cleared, the commitment must be recovered. For simple question types it can be brute-forced (the salt is derived deterministically).

Current implementation

#1059
Image

Shortcomings

But there are 2 cases where the commitment cannot be recovered this way:
a) for integer and complex question types (too many possible values) and
b) for the Shutterized DK (#1314) if it is not available or provides incorrect values.

Both a) and b) might be encountered at the same time for a Shutterized DK handling an integer question type for example.

In most cases we can assume that the juror always remembers his exact vote even for an integer or complex answer, which mitigates a). To mitigate b) the juror would also need to remember his exact justification (to the letter and punctuation) which is less likely.

Solution

Allow the jurors to Export their commitment to a file rather than keeping it in browser storage which is not easily accessible. This way the juror may choose the keep the file on their device or on their favorite trusted cloud storage like their personal Google/Apple drive.

a) The integer or complex answer commitment can be recovered in Voting period with an Import button where they can retrieve the commitment file.
b) If the auto-reveal step fails for any reason, the juror would be notified to cast their vote manually with the Import button.

Implementation

The existing browser storage + brute-forcing solution

If it's not too complicated, keep it as the default solution. The juror may choose to import/export their commitment to file (highly recommend it) but is not mandatory.

If the commitment is successfully recovered from browser storage in Voting period OR if the brute-forcing mechanism is successful, we may not need to expose the Import button to the juror at all.

@jaybuidl jaybuidl changed the title Hidden votes enhancement: Export/Import commitment to a file Hidden votes recovery UX: Export/Import commitment to a file May 9, 2025
@jaybuidl jaybuidl added Type: Feature🗿 Package: Web Court web frontend Type: UX User Experience labels May 9, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Package: Web Court web frontend Type: Feature🗿 Type: UX User Experience
Projects
None yet
Development

No branches or pull requests

1 participant