Keys, Addresses, & Cryptography
Bitcoin addresses come in two forms: public and private. Your public address is like your email address: people use it to send you bitcoin. Your private address, meanwhile, is used like a ‘key’ to gain access to the bitcoin in the corresponding public address. Private addresses are already used to send bitcoin to some recipient public addresses.
A public address will look something like this: E9873D79C6D87DC0FB6A577863338953213303DA61F20BD67FC233AA33262.
A private key will look like this: 1DSsgJdB2FwPaFMhDbv4MZC2m72226JafG.
Not only does a private key grant you access to your funds, but it also serves as a digital signature for executing trades.
Most Bitcoin wallets automatically generate a pair of public and private addresses. You still face the problem of how to store your private key (as our example implies, memorizing it would be difficult). One option is to write it down, although you run the risk of losing the piece of paper, plus the writing can become illegible over time. Another option is to store your keys on a flash drive as a text document or as a file in ‘wallet.dat’ format. Finally, you may store your keys in a hardware wallet. This is an ‘offline’ wallet that stores your keys on a flash drive-type device. To access your keys, simply plug the hardware wallet into your computer.
Many wallets use a ‘seed phrase’ that the owner must enter to access his/her bitcoin. Such wallets are slightly friendlier to the less technologically inclined, as the private key does not have to be known.
Transaction Example
Imagine that Joe wants to send Ralph half of a bitcoin. First, Joe would open up his wallet and enter Ralph’s public address in the appropriate slot. Then, the wallet automatically generates the transaction and signs it with Joe’s private keys. Only if the private keys are correct will the Bitcoin network deem the transaction to be valid. Finally, the funds will now be accessible to whoever knows the private key that corresponds to Ralph’s public key.
Nuances
In the Bitcoin network, a signature is a data field that is created by a private key but is verified via a public key.
Technically, a bitcoin address is distinct from a public key. A bitcoin address is best thought of as the beneficiary of a payment, which could belong to several distinct classes. The bitcoin address is derived from the public key via ‘one-way cryptographic hashing’.
Cryptography
As Jameson Lopp wrote, “Cryptography allows us to obscure information into a format that is practically impossible to guess or compute, and cryptography is what makes Bitcoin highly defensible. The software clients and wallets can change — the cryptography must remain intact.”
The cryptographic technology underlying Bitcoin is extremely difficult to break by malicious actors. However, a quantum leap in computer technology could make it far easier for enemies of Bitcoin to attack it successfully. A quantum computer is thought to pose a threat to the Bitcoin network if it can ever reach a processing power of 125 qubits (a ‘qubit’ is a quantum bit). Such a computer could crack Bitcoin’s cryptography and reverse engineer a private key from a public key. So, any bitcoin sitting associated public address could in principle be stolen.
Fortunately, ‘quantum resistant’ solutions are already in development. As Lopp said encouragingly, “As Bitcoiners, it’s up to prove our keys time and time again in the face of evolving threats. Cypherpunks write code and they never stop writing.”
Mine Bitcoin Remotely.
Your Solution for Bitcoin Mining-as-a-Service.