Quantum resistant blockchain and cryptocurrency, the full analysis in seven parts. Part 1.
The development of quantum computers will eventually provide the necessity for blockchain to become quantum resistant. The why and how will be discussed in part 3 and further. But before we dive into quantum resistance, I would like to focus on some blockchain basics that will be necessary to understand the ins and outs of quantum resistance in blockchain.
Let’s start from the beginning. What is blockchain? The most common sentence used to describe blockchain would be this: “Blockchain, a decentralized, digital, safe, distributed ledger that can store any data.”
Let’s break this down.
- Blockchain. We will save this for last, because this is where it gets technical. Let’s go with the phrase “collector of data” for now. In the sense of how Bitcoin is used today, a blockchain is a “collector of data of who has sent which transactions to whom.”
- Decentralized. This means there is no central power that can dictate changes. There is no entity that can unilaterally alter what is registered on the blockchain or change the rules of how data is added without consensus amongst the community. Instead, a blockchain is governed by a group of entities who, using the same program, can all add the data and check each other. Anyone with the right computer can join this group. Not everyone from the group adds the same data, they are dealt data randomly. Also they check each other randomly. The checking is done using math, which is implemented in a way that makes the system unforgeable. This is what people like most about blockchain, because it results in this rule: what is added to the blockchain, is added in such a way that adding the data can’t be forged, and what is added, is set in stone. It is registered for ever, and there is no one who can change that.
- Digital. The data is stored on hard disks, accessed electronically, and transferred over the internet.
- Safe. What is stored is stored in a secure and safe way, so data can’t be tampered with. By anyone. Neither while being stored nor after it is stored.
- Distributed ledger. A record book, a balance. A timestamped collection of data.
- Store any data. A blockchain can be designed to store any type of data.
Why Blockchain and not a traditional database system? If you want to store information (like transactions of value or transactions of other information) and you want it to be done in an unforgeable way, blockchain might be the way for you to do so. But why not use something already existing? Like a centralized database or bank? Well, the thing is that unforgeable usually means that no unauthorized person can make changes. But changes can still be made. What has been added to a centralized database could be removed or changed. The central entity can change the rules. So you need to trust the organisation or person that runs the database or ledger. But when we talking blockchain, there is no central power that to make changes. It’s actually unforgeable.
Blockchain is decentralized. It doesn’t need a person or organisation with central power. Blockchain reduces these people and organisations to middle men, and cuts out those middlemen altogether. And we’re obviously not only talking banks. There’s a use case for anything where two parties want to transfer information and put that immutably on record, while the two parties have a lack of trust towards each other, or simply don’t know each other. It’s a sure and safe way to send,receive, and store information.
Blockchain is a true innovation. It uses computers and the internet to create a network, a decentralized entity, that we can trust to immutably register valuable data in a very cost-efficient way. This is why blockchain will take over the data industry eventually. Why not by storm? Because it takes over from a powerful establishment. The banks are the ones who see it coming first. Governments also distrust blockchain, because they can’t control it. There is some resistance obviously, but they see opportunity too. How the politics work out in the end though, is not what I want to discuss here. So let’s get over to the technical side.
The ELI5 explanation of the technical concept. The actual technology is more complicated, and there are varieties of blockchain, but the basics pretty much come down to this. The data is sent in the form of messages/ transactions. The transactions are composed by the one sending the transaction. To be able to send transactions you will need to become part of the blockchain system. You need to create a digital identity. You can do so, using a “wallet”. This is basically a program that can create your identity for the blockchain and also the program you use to send transactions and manage your funds (your data). So using the wallet, you create your address (which you could see as your “account”). This consists of two parts for you. A public key, which is a series of numbers to which your transactions will be connected on the blockchain. The second part is a private key that consists of a series of characters, not just numbers. This is your “password”. So, now you own an address: the private key and the public key. This is all you need, so there is no need to register any personal info or anything, you have the private key and the public key and you can receive and send funds from and to other addresses. You use the private key to log into your “account” on the wallet. Once you are in your wallet, you state how much funds you want to send and to what address you want to send this.
Sending transactions. When you send a transaction, it will be broadcasted to the blockchain network. But before the actual transaction will be sent, it is formed into a package, created by the wallet. This is done automatically by the wallet, out of sight of the user. (When I say package, I mean that the information that is sent is inextricably connected in the sense that the signature, source, destination and amount can’t be separately altered.) That package ends up carrying roughly the following info: The public key to point to the address where the funds will be coming from, the amount that will be transferred and the address the funds will be transferred to. This package also carries another important thing, a signature, created by the wallet, using the private key. The signing is done using a mathematical algorithm. After that, using math again, the signature can be checked again for authenticity by a second party. This signature proves that you are the rightful owner and you can send funds from that public key address. The package is then sent out of the secure wallet environment to the blockchain network. This network consists of people who run a specialized computer to process transactions. Those computers are called “nodes”, and the person or company who owns the computer is called a “miner”. The nodes don’t need to trust the sender or establish the sender’s “identity”, because the sender proves he is the rightful owner by adding the signature that corresponds with the public key which can be verified by math. And because the transaction is signed and contains no confidential information, private keys, or credentials, it can be publicly broadcast using any network that is convenient. As long as the transaction can reach a node that will spread it into the network, it doesn’t matter how it is transported to the first node.
Confirming and registering the transactions on the blockchain. After the transaction is sent to the network, it is ready to be processed. A quick summary of the way transactions are handled: miners collect all transactions that people are sending in a “transaction pool”. There, transactions wait until a miner puts a number of these collected transaction in a package of transactions: a block. This is where a block is constructed. After he has constructed a block, he has to solve a hash puzzle applied on his list of transactions that he registered on his block. A hash puzzle is a mathematical problem that is solved by the node. The node that has solved his hash puzzle is allowed to put his block on the network. Other miners will check the block using math again and confirm after they did so. This way the blocks, and thus your transactions, are added to the blockchain. Once a block is added, it’s there forever and can’t be changed.
Conclusion: security in transaction handling and registration, relies on math.
- The construction and continuation of the blockchain itself relies on hashing algorithms.
- The signing of transactions relies on private- public key cryptography. No existing computer can make calculations fast enough to reverse this math in any usable time frame.
Summarized, the security and reliability of blockchain is double-barreled. First it takes away the interference of a third party that places and/ or can alter the data on the ledger. Secondly it relies on verifiable, but unforgeable math. This is what makes blockchain more trustworthy than conventional ledger systems.