1 unstable release
0.1.0 | May 25, 2021 |
---|
#14 in #phrase
41KB
821 lines
splitmonic -
Split your BIP39 mnemonic phrase using shamir secret sharing
Install
Install from a github release:
curl -LSfs https://avencera.github.io/splitmonic/install.sh | sh -s -- --git avencera/splitmonic
or
Download a release directly from github: github.com/avencera/splitmonic/releases
Usage
Warning: For security reasons, I do not recommend using this on your daily use computer. I personally run this on a Raspberry PI Zero which is never connected to the internet.
Split using TUI
To split your phrase I recommend you use the terminal user interface (TUI). The TUI helps you correctly type your phrase with autocomplete and error checking.
splitmonic split --interactive
Split using CLI
splitmonic-split 0.1.0
Split you're mnemonic into multiple split phrases
USAGE:
splitmonic split [FLAGS] --mnemonic <mnemonic>
FLAGS:
-h, --help Prints help information
-i, --interactive use the interactive TUI
-V, --version Prints version information
You can also use the CLI directly, ex:
splitmonic split --mnemonic "abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon abandon art"
Combine using TUI
... coming soon ... if you're interested let me know: https://github.com/avencera/splitmonic/issues/3,
Combine using CLI
splitmonic-combine 0.1.0
Combine you're split phrases into your original mnemonic
USAGE:
splitmonic combine [FLAGS] [OPTIONS] --all-split-phrases <all-split-phrases>... --split-phrase-files <split-phrase-files>...
FLAGS:
-h, --help Prints help information
-i, --interactive use the interactive TUI
-V, --version Prints version information
OPTIONS:
-s, --all-split-phrases <all-split-phrases>... 3 of 5 split phrases
-f, --split-phrase-files <split-phrase-files>... list of files containing your split phrases
-1, --split-phrases-1 <split-phrases-1>... first split phrase [aliases: sp1]
-2, --split-phrases-2 <split-phrases-2>... second split phrase [aliases: sp2]
-3, --split-phrases-3 <split-phrases-3>... third split phrase [aliases: sp3]
You can combine using the files that the TUI spit out
splitmonic combine -f phrases_1_of_5.txt phrases_5_of_5.txt phrases_2_of_5.txt
Or buy passing them in directly
splitmonic combine --sp1="gun, dismiss, area, ability, laptop, live, ignore, love, ride, deposit, upset, enemy, start, leopard, domain, exile, talent, enroll, north, position, talk, hope, script, parent, tongue, ride, pepper, brisk" , --sp2="..." --sp3="..."
Or a combination
splitmonic combine -f phrases_2_of_5.txt phrases_3_of_5.txt --sp1="gun, dismiss, area, ability, laptop, live, ignore, love, ride, deposit, upset, enemy, start, leopard, domain, exile, talent, enroll, north, position, talk, hope, script, parent, tongue, ride, pepper, brisk"
What?
A small program that takes you're 24 word BIP39 mnemonic code and generates 5 more phrases, each 28 words long.
Using any 3 of these 5 phrases you can recreate your original 24 word mnemonic code
Why?
The main purpose of this program is to make your paper backups more secure. If you store your mnemonic code somewhere, that piece of paper is a single point of failure. If an attacker gets access to that one piece of paper they now have access to all your bitcoin.
With splitmonic an attacker would need to get access to a minimum of 3 of your backups to steal your bitcoin.
Another advantage of splitmonic is that it allows you to make your backups more durable. Since you only need 3 of 5 phrases to recreate the original, even if you lost or destroyed 2 of your phrases you could still recover your original code using the remaining 3.
FAQ
Q. Aren't I not supposed to EVER type my secret mnemonic into the computer?
A. Yes, that is a bad idea. You're computer could be compromised and someone could steal all your bitcoin. And if you use the CLI your phrase will stick around in your zsh/bash history file. So at least delete that. Personally I use splitmonic on a raspberry pi zero that's never connected to the internet (picture below).
Q. Why wouldn't I just use multi-signature?
A. You definitely could, but using multi-signature can be a hassle. With splitmonic you can use you current single signature hardware wallet as you normally do, while making your backups more secure.
Q. Why wouldn't I just use SLIP39?
A. If you have hardware wallet that is compatible with SLIP39, then ya you should probably use that instead
Q. If someone finds 1 or 2 of my splitmonic phrases can they guess my original phrase?
A. No. Splitmonic uses shamir secret sharing to split your phrase. Your splitmonic phrases are NOT a subset of your original phrase.
Acknowledgements
- Nebulosus/shamir - most of the code for the shamir secret sharing algorithm if from this library
- summa-tx/bitcoins-rs - the code for the BIP39 word list was inspired from this library
- jesseduffield/horcrux - for the idea for the diagram
Dependencies
~1–1.6MB
~46K SLoC