04C0E410A572C880D1A2106AFE1C6EA2F67830ABCC8BBDF24729F7BF3AFEA06158F0C04D7335D051A92442330A50B8C37CE0EC5AFC4FFEAB41732DA5108261FFED<\/em><\/p>\nWhen you go to sign a transaction with your private key, it once again boils down to essentially just multiplication. By generating a random number (the nonce), and using that and your private key to essentially multiply the hash of the transaction you are signing, you produce the signature (which is made up of two values, r, and S). This allows someone to run an algorithm to verify the message was signed by the appropriate private key without revealing that key. The thing guaranteeing only you can authorize spending your Bitcoin is essentially just the multiplication of very, very large numbers. <\/p>\n
If you aren\u2019t all that familiar with these concepts before reading this, all of this probably seems somewhat intimidating. Binary? Hexadecimal? Graph points? How do you back up a WIF? <\/p>\n
Since the development of more intuitive ways of handling this data, most users are unfamiliar with these complicated formats. Most likely, you have more experience with word seeds, also known as seed phrases.<\/p>\n
BIP 39 Mnemonic Seeds<\/h2>\n
Mnemonic seeds, or seed phrases, were created to address the problem of the experience of interacting with your private keys.<\/p>\n
As we discussed earlier, private keys are ultimately just a long series of 1s and 0s that are randomly generated. Imagine trying to create copies of this and ensure you didn\u2019t make an error transcribing it:<\/p>\n
1110001011011001011110111100000101000100000010001001111010111011010101110111001111111111101010111010010111010011101001110010100110111101000110000111110101111001101001011110011011101000001101101101110001101000110001111010001001001111011010101011001101101010<\/em><\/p>\nAll it would take is a single error copying one digit to render a backup of your keys useless. This is where mnemonic seeds come in handy. 256 consecutive 1s and 0s in a row is not a human-friendly way to interact with sensitive information. Recording this number incorrectly means losing access to your account.<\/p>\n
truck renew fury donkey remind laptop reform detail split grief because fat<\/em><\/p>\nThat is much easier to deal with, isn\u2019t it? Just 12 words. So how does that work, going from a bunch of random 1s and 0s to a string of words that actually make sense to you? An encoding scheme, just like binary or hexadecimal!<\/p>\n
Each of those 12 words in that mnemonic seed above is a binary number in an encoding scheme<\/em> mapping specific strings of 1s and 0s to words. If we look back at the WIF private key example earlier, that was simply a number encoded in a specific encoding scheme, in that case, base 58, which uses every number and letter of the alphabet except 0 and 1, and O and l (case sensitive). The exclusion of those characters was done specifically to make transcription errors unlikely by confusing a 1 for an l, or a 0 for an O. bech32 and bech32m used by Segwit and Taproot take this to the next level by using only this set of characters (qpzry9x8gf2tvdw0s3jn54khce6mua7l). <\/p>\nBitcoin Improvement Proposal 39 (BIP 39), introduced a standardized encoding scheme where each word in a specially crafted dictionary is alphabetically mapped to a binary number from 00000000001 to 11111111111. The demonstration seed above maps to this: <\/p>\n
truck: 11101001001<\/p>\n
renew: 10110110001<\/p>\n
fury: 01011110011<\/p>\n
donkey: 01000001001<\/p>\n
remind: 10110101110<\/p>\n
laptop: 01111101000<\/p>\n
reform: 10110100010<\/p>\n
detail: 00111100010<\/p>\n
split: 11010010001<\/p>\n
grief: 01100110100<\/p>\n
because: 00010011110<\/p>\n
fat: 01010011011<\/p>\n
In just binary it looks like this:<\/p>\n
11101001001 10110110001 01011110011 01000001001 10110101110 01111101000 10110100010 00111100010 11010010001 01100110100 00010011110 0101001 1011<\/p>\n
There are 2048 words, each mapped to a specific 11 digit string of 1s and 0s, specifically to make it easier for people to interact with their private keys. When you generate a random number for your private key, your wallet cuts that number up into chunks of 11 digit binary numbers and maps them to the BIP 39 Mnemonic dictionary. It\u2019s still the same large number, but now you can read it as English words. Since your brain is much more accustomed to this format than long strings of 1s and 0s, this drastically<\/em> reduces the odds of you writing down something wrong and losing your Bitcoin in the process. <\/p>\nYou may have noticed that in the raw binary encoding of the word seed above, there are four digits (1011) sitting off on their own, and the last \u201cword\u201d is only actually 8 digits. That is a checksum to ensure that a seed phrase is valid. When you generate your random number, there aren\u2019t enough digits to map it exactly to 12 (or 24) words. The wallet hashes those existing digits you generated and takes the first few digits of the hash to add on to the end of your random number. This gives you enough digits to map to the last word. <\/p>\n
This last word allows you to perform a safety check on copies of your seed. If you enter your mnemonic seed into a wallet incorrectly, the checksum will not match. Each 12 or 24 word seed has multiple potential valid checksum words, but if the last word doesn\u2019t match the checksum of a correct seed your wallet will warn you it is invalid. This gives people an intuitive yet still mathematical way to guarantee their backups are correct, unlike the messy process of transcribing and backing up the raw binary numbers. <\/p>\n
The selection of the specific words on the list even went so far as to guarantee that none of the 2048 words have the same first four letters. This was done to reduce the likelihood of people making transcription errors by confusing similar words and winding up with an incorrect backup of their private keys. <\/p>\n
Translating these words into a set<\/em> of multiple private\/public keys is quite simple. Your mnemonic seed is taken and hashed using SHA512, which outputs a hash of 512 individual 1s and 0s. Half of that output is used as an actual private key, and the other half is used as input to SHA512 with an index number and the existing private or public key to generate a new key pair. You can do this as many times as you want to generate new private\/public keys that can all be recovered from your single mnemonic phrase. <\/p>\nThis ensures that you can manage your private keys as easily, and safely<\/em>, as possible with the lowest odds of making a mistake that loses your money. And all of it was done using math! Hopefully, now you have a good understanding of why people say that Bitcoin is money \u2018secured by math.\u2019<\/p>","protected":false},"excerpt":{"rendered":"The bedrock of Bitcoin self-sovereignty is having control over your private keys. Without this, in one way or another, you are relinquishing control of your money to someone else. \u201cNot your keys, not your coins\u201d as the saying goes. A counter-intuitive aspect of Bitcoin for people who aren\u2019t familiar with the technical underpinnings of it […]<\/p>\n","protected":false},"author":0,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-24472","post","type-post","status-publish","format-standard","hentry","category-crypto-news"],"_links":{"self":[{"href":"https:\/\/bitcoins-101.com\/wp-json\/wp\/v2\/posts\/24472","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bitcoins-101.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bitcoins-101.com\/wp-json\/wp\/v2\/types\/post"}],"replies":[{"embeddable":true,"href":"https:\/\/bitcoins-101.com\/wp-json\/wp\/v2\/comments?post=24472"}],"version-history":[{"count":0,"href":"https:\/\/bitcoins-101.com\/wp-json\/wp\/v2\/posts\/24472\/revisions"}],"wp:attachment":[{"href":"https:\/\/bitcoins-101.com\/wp-json\/wp\/v2\/media?parent=24472"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bitcoins-101.com\/wp-json\/wp\/v2\/categories?post=24472"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bitcoins-101.com\/wp-json\/wp\/v2\/tags?post=24472"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}