modified: Install-MMGen-on-Debian-or-Ubuntu-Linux.md

modified:   MMGen-Quick-Start-with-Regtest-Mode.md
modified:   XOR-Seed-Splitting:-Theory-and-Practice.md
The MMGen Project 2020-06-03 11:36:36 +00:00
commit f99ad5a533
Signed by: mmgen
GPG key ID: 3F8B1861E32B7DA2
3 changed files with 16 additions and 15 deletions

@ -2,7 +2,7 @@
Install required Debian/Ubuntu packages:
$ sudo apt-get install autoconf git libgmp-dev libssl-dev libpcre3-dev libtool wipe
$ sudo apt-get install autoconf git libgmp-dev libssl-dev libpcre3-dev libtool wipe curl
$ sudo apt-get install python3-dev python3-ecdsa python3-pexpect python3-setuptools python3-cryptography python3-nacl python3-pip python3-gmpy2 python3-sha3 python3-requests
Using the [pip3][P] installer, install some required Python packages:

@ -109,7 +109,7 @@ step 7 will look something like this:
13. View the transaction in the mempool:
$ mmgen-regtest show_mempool
$ mmgen-regtest mempool
['78ca853816b55527b42ca8784c887a5f482c752522f914d2f17d6afcd8a3b076']
14. Mine a block:
@ -118,7 +118,7 @@ step 7 will look something like this:
15. Check the mempool again:
$ mmgen-regtest show_mempool
$ mmgen-regtest mempool
[]
16. List Alice’s addresses. Note that Alice has lost a bit to transaction fees:

@ -146,8 +146,8 @@ implementation in real production code.*
The above example illustrates what happens when we violate the golden rule of
the wallet developer: *never derive a secret from another secret that someone
besides the wallet owner could potentially gain access to.* This goes for the
private keys of the addresses in a wallet, which could be compromised in a
besides the wallet’s owner could potentially gain access to.* This goes for
the private keys of the addresses in a wallet, which could be compromised in a
security breach. And it certainly goes for seed shares, which are intended for
distribution to others from the outset.
@ -239,12 +239,12 @@ unique, and differ from their non-master-share counterparts.
The MMGen wallet implements the seed splitting and joining functionality
described above via the commands [`mmgen-seedsplit`][SS] and
[`mmgen-seedjoin`][SJ]. Many usage examples can be found on the
`mmgen-seedsplit` help screen.
[`mmgen-seedjoin`][SJ]. Usage examples can be found on the `mmgen-seedsplit`
help screen.
Shares can be made from and exported to all supported MMGen wallet formats.
This means you can split a BIP39 seed phrase, for example, and export a share
back to BIP39, all in one command:
This means you can split a BIP39 seed phrase, for example, and output the share
back to BIP39 in one easy command:
# Create share 1 of a 2-way split of the provided BIP39 seed phrase:
$ mmgen-seedsplit -o bip39 sample.bip39 1:2
@ -295,15 +295,16 @@ BIP39 format, for example, there are command-line tools available to do this.
Then a single line of Python code is all that’s required to finish the job:
$ python3
>>> seed_hex = hex(int(share1_hex,16) ^ int(share2_hex,16)) # 2-way split
>>> seed_hex = hex(int(share1_hex,16) ^ int(share2_hex,16)) # rejoin a 2-way split
(Note that the XOR operator in Python is `^`.)
Rejoining master-share splits on your own is far less trivial, unfortunately.
This is because converting the master share into the temporary share used to
make the split involves an additional step, as you’ll recall from the
theoretical discussion above. In addition, MMGen implements it somewhat
differently than in the provided example.
Unfortunately, rejoining master-share splits is considerably harder to do at
the Python command prompt. This is because converting the master share into the
temporary share used to make the split involves an additional step, as you’ll
recall from the above discussion. In addition, this step is implemented by
MMGen somewhat differently than as described above. For advanced users, an
example will be provided in a future version of this document.
[⊕]: https://mmgen.github.io/images/ss/o_xor.svg "⊕"
["a: 1 0 0 1 0 1 0 0"]: https://mmgen.github.io/images/ss/byte_a.svg "a: 1 0 0 1 0 1 0 0"