SSKR stands for Sharded Secret Key Reconstruction. It's a specification that allows you to securely create a backup of your cryptoseeds by sharding those secrets. It uses the mature Shamir’s Secret Sharing functionality, but with more choices of output and options for advanced two-tiered shards.
Users can use SSKR to easily shard a seed. Our reference tools for iOS, macOS, and UNIX demo the functionality, but we expect more cryptocurrency wallet manufacturers to soon be incorporating SSKRs as well.
Seedtool, our iOS and macOS reference tool, allows you to print your sares and distribute them as coupons, which include QRs of the shares that can be stored in a QR vault. If you run the Mac version of Seedtool, you can instead print them directly to a PDF!
But you can also secure shares in other ways, such as etching the words into steel to ensure you never lose your cryptocurrency seed. We have a demo on how to do it with steel dog tags!
There are other advantages as well, including BIP-39 roundtripping and the usage of words that are less-likely to be confused. Take a look, we talk about it all in our docs!
Developers of all sorts should find it easy to incorporate the functionality, thanks to libraries available in multiple programming languages, plus a large collection of documents.
If you’d like to see more #SmartCustody work to support responsible key management, including more specifications and references for creating wallet interoperability. Support Blockchain Commons by becoming a patron!
The following overviews SSKR.
How can you use SSKR? The following describes its usage in Gordian Seed Tool.
- Sharding a Seed (from Gordian Seed Tool Manual)
- Importing SSKR Shards (from Gordian Seed Tool Manual)
Want to do more with SSKR? The following describes how to design SSKR sharing, how to put your shares in cold storage:
We've also got docs for using SSKR with seedtool-cli
:
Want to develop using SSKR? The following provide an array of documents for using SSKR and placing them in URs, as well as info on test vectors, and our security review.
- SSKR for Developers
- Guide for Using URs for SSKR
- UR Type Definition for Sharded Secret Key Reconstruction (SSKR)
- SSKR Test Vectors
- Security Review of bc-shamir & bc-sskr libraries
You might also want to read about the foundational technology of Shamir's Secret Sharing itself:
Ready to code? Developers can use the following libraries to incorporate SSKR in their own programs.
- bc-shamir - Shamir Secret Sharing reference library in C
- bc-sskr - Sharded Secret Key Reconstruction (SSKR) reference library in C
- bc-libs-java - Java ports of the Shamir and SSKR libraries
- BCLibsSwift - Swift ports of the Shamir and SSKR libraries
Please note that at this time only the core C-language libraries have been security reviewed. If you are introducing in using the Java or Swift ports, or creating a new library, a new security review will be required for a secure production release.
Want to verify your code? That's what the Blockchain Commons reference tools are for.
- seedtool-cli - Cryptographic Seed Tool for the command line
- Gordian Seed Tool iOS - Cryptographic Seed Manager for iOS & Mac
The following topics are related to SSKR.
- Creating an Autonomous Multisig from Building Blocks (from Designing Multisig for Independence & Resilience)
- RWOT9 - Evaluating Social Recovery
To support the continued creation and growth of specifications such as this, please become a sponsor of Blockchain Commons, either through GitHub or through Bitcoin donations on our BTCpay. Thank you to our sustaining and additional sponsors.
Please also join us in our Airgapped Wallet Community where we are discussing and advancing this and other specifications.