Blockchain accounts
What is a blockchain account? How to create blockchain accounts? Such questions are pertinent. To begin with, each protocol has its account management mechanism. Some protocols keep the record of each account in their database. In contrast, others do not keep information about the accounts themselves but about coins that specific accounts can redeem.
These two models are known as account-based and UTXO-based protocols, short for Unspent Transaction Output. Bitcoin introduced the UTXO model, which turned out to be a very ingenious idea, yet it is unsuitable for blockchains capable of executing smart contracts.
Whether you want to spend your account balance in account-based protocols or redeem coins that rightfully belong to you, in UTXO-based protocols, you need a form of identification. That means evidence that you and only you own such assets. To do so, it is necessary to know a kind of password, or more precisely, the private key.
The private key concept is derived from the so-called asymmetric cryptography, or public-key cryptography, developed in the mid-1970s. Unlike traditional cryptography, in which the same key is used to encrypt and decrypt messages, public-key cryptography uses two keys, one public and another private.
The public key, as the name implies, can be known to everyone, but the private key must only be known by its holder. The private key can be used to decrypt messages that had been sent to its holder, and it also has a second fundamental use: signing messages, thus guaranteeing the authenticity of its sender. Like a signature on paper, possessing the private key makes it possible to ensure that a particular message was signed by a specific person, with no possibility of denying it.
A public and a private key pair then identify each account on a blockchain. The public key can be calculated from the private key, but the opposite is not true. It is not possible to calculate the private key knowing only the public key. Therefore, knowing only the public key is not enough to sign messages and prove ownership of any asset.
So, to create an account on a blockchain, all one needs to do is generate a private key. In elliptic curve cryptography, which is the type of cryptography used in blockchains, generating a private key is nothing more than picking a really large random number. Usually, we do not choose such a number because humans are really bad at choosing random numbers. There are software capable of generating random numbers, calculating the public key, signing messages, and managing assets owned by such private keys. Such software are known as wallets in the blockchain environment.
We can think of a blockchain account as a mailbox. The public key is the mailbox address, that indicates where people should send you messages or coins. The private key works like the mailbox key. Only with that, it is possible to open it and take everything it contains, such as messages, coins, and assets.
Whoever owns the private key has access to all assets in that account. In the case of private key loss, it is impossible to recover such assets. That’s why people should keep private keys safely and always have a backup. And that’s also why private keys must be generated securely by specialized software. Always use wallets that are well-known and tested by the community.