Skip to content

edward-t-m/shamir39

 
 

Repository files navigation

shamir39

Split mnemonic seeds into n-of-m BIP39 mnemonic shares using Shamir's Secret Sharing Scheme.

Intent

To increase the likelihood of successfully passing on your crypto estate after your death.

Motivation

Mnemonics seeds are a simple way to back up an entire crypto wallet. Crypto wallet backups should be hand-written, not digital, and using mnemonics from a fixed wordlist significantly reduces the human risk of transcription errors compared to hex or other representations of a wallet seed.

The downside of distributing these backups to a trusted party (to recover one's crypto after death) is that the funds can easily be stolen before death (whether by the trusted party or compromsied from security failings on their part).

This results in 1) less sharing, and 2) more home-grown encryption or obfuscation schemes. Both of these reduce the chance of successful recovery by those responsible for managing the deceased's estate.

To address this, shamir39 splits mnemonic backup seeds into shares using Shamir's Secret Sharing Scheme (SSSS), expressing the shares themselves as BIP39 mnemonics. BIP39 is the name of the most common mnemonic format, hence naming the tool shamir39.

This removes the risk of a single compromised party losing all funds, but also retains the benefit of human readability, making it more likely that all backups can be fully recovered.

Security Reviews

This code has not yet been reviewed for safety or security - not recommended to use yet for high value wallet backups.

Specification

Shamir39 specification is here.

History

The code is a fork of MrJoy's SSSS "Shamir's Secret Sharing Scheme" (itself a fork of B. Poettering's SSSS), with the addition of ryepdx's keyphrase for mnemonic support, modified to support BIP39 wordlists.

The shamir39 specification was originally drafted by Ian Coleman.

Version

SSSS fork is based on 0.5.6 (SHA256: xxx). Which is in turn based on ssss-0.5.tar.gz (SHA1: 3f8f5046c2c5c3a2cf1a93f0a9446681852b190e).

License

Majority of this code follows the same license as that ssss project: The GPLv2.

Items from keyphrase project follows the same license as keyprhase: Affero GPL

Some elements are unlicenced, others under the BSD-MIT License as noted in individual files.

Edits comply with the corresponding licences above; original work is licensed under Affero GPL

About

Increase the likelihood of successfully passing on your crypto estate after your death. Split wallet backup seeds into n-of-m BIP39 mnemonic shares.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 89.4%
  • HTML 6.9%
  • Shell 1.8%
  • Makefile 1.2%
  • Python 0.7%