Seed
2 min read
A Bitcoin seed, otherwise known as a “mnemonic phrase”, “seed phrase”, or “seed words” is a way of representing a large, randomly generated number as a sequence of words that are more accessible to humans than binary outputs (e.g. 0101001011001).
Image: Learn Me A Bitcoin
The image above demonstrates how the large, random number is broken down into discrete pieces, and how each of these pieces corresponds to a word from a specific list of 2048 possiblities.
In modern wallets, addresses, private and public keys are derived from the seed, so it is extremely important that the number is indeed randomly generated. The randomness, or entropy, effectively guarantees that someone wouldn’t be able to “guess” your seed, no matter how hard or long they tried to do so.
A seed can be used to generate a Hierarchical Deterministic (HD) wallet. This is the only data required to regenerate any private and public keys in the wallet, so it is effective as a backup. Since the seed design is deterministic, a given seed will generate the exact same keys every time, and a single seed can generate a near-infinite number of public and private keys.
A seed is used to generate a single extended private key (xprv), which is called the master private key. This private key can be used to generate child private keys as well as public keys, allowing a wallet to generate as many key pairs as a user requires. This setup maximizes the ease of backing up a wallet with the privacy benefits of avoiding address reuse.
Seeds are often represented as Mnemonic phrases for easier storage and recollection. Seeds became a community standard thanks to BIP 32, and Mnemonic phrases became a community standard thanks to BIP 39.