Skip to content
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

WIP: Frost implementation #26

Closed
wants to merge 13 commits into from
Closed

WIP: Frost implementation #26

wants to merge 13 commits into from

Conversation

hdevalence
Copy link
Contributor

This is the beginning of a FROST implementation (with @chelseakomlo).

Closes #21 when complete.

So far it has all of the state machines for all protocols encoded into the API, but the actual functions are left unimplemented!().

@hdevalence
Copy link
Contributor Author

We will need to have Serde support in jubjub (or work around not having it), because each of the message types should be serde'able.

hdevalence and others added 11 commits October 1, 2020 17:58
In this commit, Chelsea and I worked through the state machines for FROST
and encoded them into Rust types, leaving all functionality unimplemented.
However, the protocol flow and the user-facing API is now mostly complete.

Co-authored-by: Chelsea Komlo <[email protected]>
Filling in all the gaps left in this test probably reaches the point where it's
better to split logic out into sub functions for each party.
This simplifies the API by skipping an extra validation step and all of the associated types.
This is already disambiguated from the frost::SecretShare by its module path,
so we can avoid repeating "keygen" in the name.  Users who want to ensure that
it's clearly marked as a keygen share rather than a secretshare can bring it
into scope as `keygen::Share` instead of `Share`.
The last remaining API issue is that the test currently can't verify the
signatures it produces, because there's no way for it to compute the shared
public key.

Co-authored-by: Chelsea Komlo <[email protected]>
Co-authored-by: Chelsea Komlo <[email protected]>
This makes the API for key generation and signing consistent: they are both methods on `SecretShare`.
@chelseakomlo
Copy link
Collaborator

Closing as we've implemented a newer version of FROST in a separate PR.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Tracking issue: Implement FROST
3 participants