Overview

SSKR is Sharded Secret Key Reconstruction. It’s a way that you can divide (“shard”) the master seed underlying a Bitcoin HD wallet into “shares”, which a user can then distribute to friends, family, or fiduciaries. If the user ever loses their seed, they can then “reconstruct” it by collecting sufficient of the shares (the “threshold”).

Why is SSKR Important?

One of the biggest challenges in the control of digital assets (particularly the self-sovereign control of digital assets) is Resilience It’s too easy for a user to lose the seed or key that control their assets, and thus the assets.

SSKR resolves the Single Point of Failure (SPOF) represented by a seed by allowing a backup of the seed to be created in a way that doesn’t introduce a Single Point of Compromise (SPOC) to the system. It does by using Shamir’s Secret Sharing to shard a secret, with the intent being that the shares are then placed in discrete, remote locations. The seed can only be recovered if a sufficient threshold of shares are then combined.

How Does SSKR Work?

The basic level of SSKR allows you to create a single group of shares, with a threshold for how many of those must be collected to reconstruct the seed. The following shows an example from Gordian SeedTool of creating three shares, of which two must be recovered.

The user would take these shares and give one each to three different trusted people (or places, such as a safe or bank vault). (Or, this could be automated using CSR.)

See the SSKR FAQ for a more complete explanation of these words.

How Does Advanced SSKR Work?

SSKR supports a more advanced methodology where you can define multiple groups, and then require a certain number of shares to come back from each group for a certain number of groups.

The following shows an example from Gordian SeedTool where 2 of 3 shares must come back from 2 of 3 groups.

This can allow for more complex scenarios, such as a business that hands off one set of shares to Chief Officers, and then backs that up with a set of shares held by their accountants or some other fiduciary.

(Though this example is symmetrical, it’s not required. You could require 2 of 3 from group #1 and 3 of 5 from group #2, and then only require 1 of 2 gorups, which means either threshold would fulfill the requirement.)

Once you generate advanced SSKR shares, the user would distribute them just like basic SSKR shares, but here being very careful to understand the roles of everyone they’ree giving shares to, since they’re creating a more complex procedure.

Videos

SSKR in Overview:
Early Demo Video:

Libraries

Shamir’s Secret Sharing Libraries

Language Repo Contributor Status
C bc-shamir Blockchain Commons Security Reviewed
Java bc-libs-java Bitmark  
Rust bc-shamir-rust Blockchain Commons  
Swift BCLibsSwift Blockchain Commons  

SSKR Libraries

Language Repo Contributor Status
C bc-sskr Blockchain Commons Security Reviewed
Java bc-libs-java Bitmark  
JavaCard jc-sskr Proxy  
Rust bc-sskr-rust Blockchain Commons  
Swift BCLibsSwift Blockchain Commons  

Intro:

Developer Resources:

Developer Reference Apps:

Use Cases:

Other Resources: