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

Multiple recoveries with key shares #992

Merged
merged 10 commits into from
Mar 25, 2020

Conversation

jumaffre
Copy link
Contributor

Resolves item 6'' in #51.

Adds support for multiple recoveries when using key shares.

  • We now store the (encrypted) msgpack-serialised ledger secrets in the KV (instead of the initial raw ledger secret). This means that CCF now stores the ledger secrets, along with the version at which they're applicable from.
  • CCF now issues new shares after the recovery completes (in the same way that we seal all secrets).
  • Some refactoring (especially in sharemanager.h).

We now have a recovery scheme using key shares that is equivalent to our existing scheme using sealing keys. It still suffers from the following limitations which will be addressed next:

  • Shares are not updated when a new member is added/removed, not when the ledger is rekeyed.
  • We are still not resilient to elections during recovery (as submitted shares are not yet stored in the KV).

@jumaffre jumaffre requested a review from a team as a code owner March 25, 2020 09:50
@ghost
Copy link

ghost commented Mar 25, 2020

multiple_recoveries_key_shares@6405 aka 20200325.17 vs master ewma over 30 builds from 6044 to 6402
images

@jumaffre jumaffre merged commit 68408c8 into microsoft:master Mar 25, 2020
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.

3 participants