Card Shuffle to Bitcoin Seed

Blockchain is built on a simple concept formalized in the sentence “Don’t trust, verify”. Everything on the blockchain can be verified to be true or false, every transaction, address or data stored can be verified, but while most people tend not to do this, as its a user interface nightmare, some people do.

Bitcoin seed generation is the most important event for any Bitcoin holder, as without this seed your wallet and ultimately your money is lost. We as users trust hardware and air gapped wallets to be correct and honest in their seed generation, which is hard to verify. A new bring-your-own-entropy method was proposed on the Bitcoin dev mailing list by developer Ryan Havar to allow users to create randomness they trust.

The method uses a deck of playing cards as a physical entropy generator and a physical backup hiding in plain sight. The cards are each represented with their value and their suit it a two-letter word. For example, a six of spades would be represented as 6S. A deck of cards can be validated easily as it only requires that each card is read once. To introduce entropy, you’ll have to shuffle that deck of cards a sufficient amount of times with different techniques, it is advised to do at least 7 good quality shuffles with the cards facing down to avoid bias.

Once you’re done, write the final shuffle in order, apply SHA512 to it to create a seed and then interpret that seed. For BIP32 you would treat the first 32 bytes as the private key and the second 32 bytes as the extension code.

To make sure your physical backup is tamper-proof, you can mark the cards by drawing a diagonal line on the side of the deck from corner to corner, that way forming that diagonal line again will form the original shuffle.

Support us and the authors of this article by donating to the following address:


Comments powered by Talkyard.