modified: Getting-Started-with-MMGen.md

philemon 2014-08-04 19:34:54 +04:00
commit 1bff71d43d

@ -33,7 +33,7 @@ generated by this seed. The Key ID changes when the wallet's password or hash
preset are changed.
"256" is the seed length; "3" is the scrypt hash preset. These values are
configurable: type `mmgen-walletgen --help` for details.
configurable: type 'mmgen-walletgen --help' for details.
#### <a name=03>Generate addresses (offline computer):</a>
@ -102,7 +102,7 @@ will show up in your listing of unspent outputs.
If you have any existing addresses with balances, you'll want to track them too.
Make a plain list of these addresses, one address per line, and import the list
into the tracking wallet using `mmgen-addrimport -l`.
into the tracking wallet using 'mmgen-addrimport -l'.
$ mmgen-addrimport --rescan -l my_existing_addrs_with_balances
@ -248,7 +248,7 @@ using the seed.
#### <a name=07>Send a transaction (online computer):</a>
Now you're ready for the final step: broadcasting the transaction to the network.
Copy the `tx_*.sig` file to your online computer, start bitcoind, if it's not
Copy the 'tx_*.sig' file to your online computer, start bitcoind, if it's not
running, and execute the command:
$ mmgen-txsend tx_1EDCBA[6.6].sig
@ -257,7 +257,7 @@ Like all mmgen commands, 'mmgen-txsend' is interactive, so you'll be asked for
confirmation before the transaction is actually sent.
Once the transaction's confirmed by the network, your three new MMGen addresses
will appear on the listing of `mmgen-txcreate -i`. Type 'm' at the menu to
will appear on the listing of 'mmgen-txcreate -i'. Type 'm' at the menu to
see them displayed in MMGen format.
Congratulations! You've performed your first MMGen transaction and placed your
@ -308,7 +308,7 @@ Regenerate a lost wallet using the mnemonic:
Note that the regenerated wallet has a different Key ID but of course the same
Seed ID.
Seed files bear the extension `.mmseed` and are listed on the command line the
Seed files bear the extension '.mmseed' and are listed on the command line the
same way mnemonic files are.
A seed file for a 256-bit seed looks like this:
@ -346,7 +346,7 @@ private data to the screen unless explicitly asked to.
The output of any MMGen command may be written to a directory of your choice
using the '-d' option. For example, on a Linux system you can use
`'-d /dev/shm'` to write key and seed data to volatile memory instead of disk.
'-d /dev/shm' to write key and seed data to volatile memory instead of disk.
This also has obvious security benefits, ensuring that no sensitive data
remains on disk after your computer's been powered down.
@ -376,7 +376,7 @@ These can be changed using the 'mmgen-passchg' utility:
Wallet saved to file '89ABCDEF-87654321[256,5].mmdat'
The new scrypt preset is indicated by the numeral '5' after the comma in the new
wallet filename. Now export your new toughened wallet to incognito format:
wallet filename. Now export your new strengthened wallet to incognito format:
$ mmgen-walletchk -g 89ABCDEF-87654321[256,5].mmdat
...
@ -384,7 +384,7 @@ wallet filename. Now export your new toughened wallet to incognito format:
'ECA86420' is the Incog ID. This can be used by the 'mmgen-tool' utility to
search through a file or partition and locate your wallet if you've forgotten
where you hid it.
where you hid it (see below).
Repeat the same export operation, but output to hexadecimal:
@ -399,18 +399,15 @@ Repeat the same export operation, but output to hexadecimal:
b43a 21f9 82c7 6bd1 fe96 bad9 2d54 c4c0
Note that the Incog ID is different here: it's generated from the init vector,
which is a different random number each time, which makes the incog data as a
whole different as well. This allows you to store your incog data in multiple
insecure locations without repeated data being detected.
which is a different random number each time, making the incog data as a whole
different as well. This allows you to store your incog data in multiple
insecure locations without having repeated "random" wallet data give you away.
As you can see, this data is ideally suited for a paper wallet. Just print it
out on a printer and you're ready to go. To an outside observer, the data
appears to be random, and it's totally unidentifiable as anything related to
Bitcoin.
out on a printer and you're ready to go.
Your incognito wallet (whether hex or binary) can be used just like any other
MMGen wallet, mnemonic or seed file. You can generate addresses with it
directly, for example:
MMGen wallet, mnemonic or seed file. Generate addresses with it like this:
$ mmgen-addrgen 89ABCDEF-87654321-CA86420E[256,5].mmincox 100-110
...
@ -418,15 +415,16 @@ directly, for example:
Addresses written to file '89ABCDEF[100-110].addrs'
Or sign a transaction:
Or sign a transaction like this:
$ mmgen-txsign tx_FABCDE[0.3].raw 89ABCDEF-87654321-CA86420E[256,5].mmincox
...
Signed transaction saved to file tx_FABCDE[0.3].sig
With the `-G` (`--export-incog-hidden`) option, you can create a **hidden
incognito wallet**, i. e. an incognito wallet hidden at a specified offset
in a file or partition. Create a file filled with 1 GB of random data:
You can create an incognito wallet and hide it at a specified offset in a file or
partition in one convenient operation using the '-G' ('--export-incog-hidden')
option. Here's how you'd hide a wallet in a 1GB file filled with random data.
First create the random file:
$ dd if=/dev/urandom of=random.dat bs=1K count=1M
@ -435,8 +433,8 @@ entropy and a progress meter:
$ mmgen-tool -r40 rand2file random.dat 1G
Export your wallet to incog format, hiding it in the 1GB random file at offset
123456789:
Now export your wallet to hidden incognito format, hiding it in this 1GB random
file at offset 123456789:
$ mmgen-walletchk -G random.dat,123456789 89ABCDEF-87654321[256,5].mmdat
...
@ -444,27 +442,28 @@ Export your wallet to incog format, hiding it in the 1GB random file at offset
Data written to file 'random.dat' at offset 123456789
The altered random file can now be uploaded to a cloud storage service, for
example, or some other location, preferably a non-public one, on the Net (in a
real-life situation you will choose a less obvious offset than '123456789'
example, or some other, preferably non-public, location on the Net (in a
real-life situation you'll choose a less obvious offset than '123456789'
though, won't you?).
If at some point you forget the offset but have your Incog ID written down, you
can easily locate your hidden wallet in the file as follows:
If at some point in the future you download this file to recover your wallet
data but find you've forgotten the offset, you can recover it using the saved
Incog ID as follows:
$ mmgen-tool find_incog_data random.dat ED1F2ACB
...
Incog data for ID ED1F2ACB found at offset 123456789
Hidden incog wallets are almost as convenient to use as ordinary ones.
Generating ten addresses with your hidden incog data is done like this:
Generating ten addresses with your hidden incog data is as easy as this:
$ mmgen-addrgen -G random.dat,123456789,256 32-42
Signing a transaction uses the same syntax:
Use the same syntax to sign a transaction:
$ mmgen-txsign -G random.dat,123456789,256 tx_ABCDEE[0.1].raw
...
Signed transaction saved to file tx_ABCDEE[0.1].sig
Note that the seed length parameter here will always be '256', unless you're
Note that the seed length parameter here will always be '256' unless you're
using a non-default seed length.