You can split your private key into a set of private keys The resulting group of private keys can be used to reconstruct your original private keys. Think of it like *cough* “two-factor authentication”. We use a program called btckeysplit. The project has no documentation at all and it appears to be a very recent (perhaps experimental?) project. This is how to use it (you need a machine with Python and Git installed):
Get the source code:
1
|
git clone https://github.com/vbuterin/btckeysplit.git
|
Then start the program. We will generate a newly random private key to start with:
1
2
3
4
5
6
7
8
|
$ cd btckeysplit
$ python main.py
What would you like to do?
Options are split (s), reconstitute (r), randomly generate new private key (rg), deterministically generate new private key from seed (dg), change format of a private key (f)
> rg
Please enter format: integer(10), hexadecimal(16) or base58check wallet import format (58): 58
5JMoApLbTyPFdmzFuor6jmYRmTAFGvjbisw1jH2Q9TspRStLsmp
|
We can then split it into a set of private keys. Run the program again:
1
2
3
4
5
6
7
8
9
10
11
|
What would you like to do?
Options are split (s), reconstitute (r), randomly generate new private key (rg), deterministically generate new private key from seed (dg), change format of a private key (f)
> s
Enter private key (any format): 5JMoApLbTyPFdmzFuor6jmYRmTAFGvjbisw1jH2Q9TspRStLsmp
How many parts do you want to split your key into? (1-14): 4
How many parts should be required to reconstitute your key? (1-4): 4
Write down the key parts:
6s4AqK7k23Ff5gminsUBubS1B7d39nMHtpyGRtUiiZeCLzmBjifFmRZZ1wp
6s4B42soo3ReSqw8fb2EzRqLE138s3Mk9ciMBG2RW1eoELcDegab3KrkPpW
6s4BGkdsa2y8xExuyM3JEUdHSGYNd7dm3YjabdGgEvFY1bJqCMUzXBGLGZV
6s4BVUPwM2K8hANCYRfiMfyWs5b16SpGGDtU5RTSw4MrZqJF1a7FxsdM5ru
|
There are your four keys which can be used to reconstruct your original private key. To reconstruct the original private key, run the program again:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
$ python main.py
What would you like to do?
Options are split (s), reconstitute (r), randomly generate new private key (rg), deterministically generate new private key from seed (dg), change format of a private key (f)
> r
Enter the key parts:
> 6s4AqK7k23Ff5gminsUBubS1B7d39nMHtpyGRtUiiZeCLzmBjifFmRZZ1wp
4 total pieces required, 3 to go
> 6s4B42soo3ReSqw8fb2EzRqLE138s3Mk9ciMBG2RW1eoELcDegab3KrkPpW
> 6s4BGkdsa2y8xExuyM3JEUdHSGYNd7dm3YjabdGgEvFY1bJqCMUzXBGLGZV
> 6s4BVUPwM2K8hANCYRfiMfyWs5b16SpGGDtU5RTSw4MrZqJF1a7FxsdM5ru
Please enter format: integer(10), hexadecimal(16) or base58check wallet import format (58): 58
5JMoApLbTyPFdmzFuor6jmYRmTAFGvjbisw1jH2Q9TspRStLsmp
|
The order in which these derrivated keys are entered does not seem to matter, but don’t take my word for it. You can maximally derrive a group of 14 private keys with this program. Losing one or more of those keys means you can no longer move your bitcoins on the blockchain!