Private & public keys and addresses
The public and private key pairs serve Bitcoin as receiving addresses and for creating digital signatures. This allows participants to send cryptocurrencies back and forth.
The private keys are managed by a wallet. There are also hardware wallets, which are the most secure form of wallets.
For user convenience, there are hierarchical deterministic wallets (HD wallets for short) that have a master key or seed from which all public and private keys are derived. The most important lesson in dealing with cryptocurrencies is therefore to keep one’s Seed Phrase safe. With the Seed Phrase, you can recover the entire wallet with all Private Keys. This means that even if you lose your hardware wallet, laptop or cell phone, you have a safety line with the Seed Phrase.
Since the same Private Keys are generated from the Seed Phrase over and over again, this group of words contains a backup of the Wallet, so to speak. If the wallet is lost, you only need the seed phrase to restore the wallet structure.
By the way: The 2048 words from which a seed phrase can be formed are chosen in such a way that the first 4 letters are unique in each case. So, theoretically, it is enough to record only the first 4 letters of the 12 or 24 words of the Seed Phrase.
The public key uniquely identifies a wallet. A public key is calculated from the private key. Conversely, it is not possible to calculate back from a Public Key to infer the Private Key. The calculation is a so-called one-way function – a mathematical function that is easy to calculate but difficult to reverse.
To get a better idea of such a one-way function, you can compare it – in a very simplified way – with a telephone directory: If you know the name, you can easily find the phone number there. However, if you only know the phone number, it is many times more time-consuming to search through all entries individually to find the name. In the case of Bitcoin, this would not be possible within a human lifetime, even with a lot of computing power: The aforementioned phone book would contain more entries than there are atoms in the universe. Moreover, in our example, the same person would have several phone numbers – often even a new one per call.
Therefore, the public key may be public. If you imagine all Bitcoin wallets as lockers, the public key would correspond to the locker number, while the private key would correspond to the key with which the locker can be opened.
In theory, the Public and Private Key are sufficient to perform Bitcoin transactions. However, as further security, the private key is “hashed”. This means that the Public Key goes through another mathematical function, which is again a one-way function with a unique result. Thus, it is not even necessary to know or pass on the public key for a Bitcoin transaction. The public address serves as the receiving address. Calculating this back and thereby inferring the public key is again very complex.
Theoretically, you can use your own combination of private key, public key and public address for each new Bitcoin transaction. Since the Bitcoin blockchain is visible to everyone, the credit of each Public Address can be traced. Having a separate Public Address for each transaction can disguise this. Many wallet softwares automatically generate a separate address for each transaction.