From f99ad5a53362bc338a01d4592be170334ac384d2 Mon Sep 17 00:00:00 2001 From: The MMGen Project Date: Wed, 3 Jun 2020 11:36:36 +0000 Subject: [PATCH] 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 --- Install-MMGen-on-Debian-or-Ubuntu-Linux.md | 2 +- MMGen-Quick-Start-with-Regtest-Mode.md | 4 ++-- XOR-Seed-Splitting:-Theory-and-Practice.md | 25 +++++++++++----------- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/Install-MMGen-on-Debian-or-Ubuntu-Linux.md b/Install-MMGen-on-Debian-or-Ubuntu-Linux.md index 73ac08a..cc88c3a 100644 --- a/Install-MMGen-on-Debian-or-Ubuntu-Linux.md +++ b/Install-MMGen-on-Debian-or-Ubuntu-Linux.md @@ -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: diff --git a/MMGen-Quick-Start-with-Regtest-Mode.md b/MMGen-Quick-Start-with-Regtest-Mode.md index df7ff26..b682db4 100644 --- a/MMGen-Quick-Start-with-Regtest-Mode.md +++ b/MMGen-Quick-Start-with-Regtest-Mode.md @@ -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: diff --git a/XOR-Seed-Splitting:-Theory-and-Practice.md b/XOR-Seed-Splitting:-Theory-and-Practice.md index 840db85..765a7ef 100644 --- a/XOR-Seed-Splitting:-Theory-and-Practice.md +++ b/XOR-Seed-Splitting:-Theory-and-Practice.md @@ -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"