Overview

CSR allows for the recovery of seeds and other secrets by dividing responsibility for recovery up between multiple devices, some (but not all) of which will be necessary for recovery. Its baseline recovery mechanism uses self-sovereign recovery (controlled entirely by the user), while more advanced scenarios allow for social key recovery (supported by friends or family). Backup is meant to be largely automated, especially in the baseline scenario, while recovery may require some user intervention.

One of the advantages of CSR over traditional social key recovery is that you don’t have to choose friends or family that you trust. Though you can do so in advanced scenarios, you can also entrust fragments of keys to companies running share servers. You don’t have to worry about them stealing keys, because you’re only giving them fragments (shares), but you can trust that they’ll likely still be around when you need to reconstruct your key.

CSR is built using SSKR to lock Envelopes of data and to allow recovery using a variety of Authentication methods.

Why is CSR Important?

CSR focuses on Resilience but it takes the next step beyond SSKR. Whereas SSKR provides a robust way to protect a seed if the user is careful and knows what to do, CSR makes it easy for users to automate that protection.

Thanks to its integration with Gordian Envelope, CSR can also store larger amounts of data that would be possible with SSKR alone, such as additional metadata describing an SSKR share.

How Does CSR Work?

CSR is integrated into Wallet and Seed Storage apps. When a user chooses to backup a seed, it will automatically shard the seed and send it off to designated Share Servers. If a user wishes to assert more agency, they can choose where those shares are stored, or even take them offline.

Seed reconstruction requires the user to authentication using different, predetermined methods with each Share Server. They can include everything from passwords and email responses to personal identification. Each authentication retrieves a share, and when sufficient shares have been restored, the seed is reconstructed.

The following example depicts the recovery of a seed complete with note and name, something not possible with bare SSKR.

See the CSR Architectural Overview for more information.

Videos

CSR Kickoff Meeting:
CSR Example API:
CSR Demo:

See the Gordian Developer Meetings: CSR & Envelope playlist for even more videos on the development of CSR and Gordian Envelope.

Libraries

Envelope Libraries

Language Repo Contributor Status
Rust bc-envelope-rust Blockchain Commons  
Swift BCSwiftEnvelope Blockchain Commons  

Intro:

Developer Resources:

Developer Reference Apps:

Use Cases: