One of my goals for these Tuesday posts is to use them as an opportunity to provide a technical introduction to relevant subjects, like 5G technology. Explaining places where new science and technology intersect with society is one of my favorite things to do, and I like to think I am reasonably adept at it. Cryptocurrency, and the blockchain technology that underlies it, absolutely fall into this category of technical concepts that have become pervasive but which a vast majority of people don’t understand, but I’ve been reluctant to write this post because, well, I’m one of those people. I am not an expert computer programmer, and I’ve not studied cryptocurrency in depth, so I worried about being able to do this post justice and deliver accurate and relevant information in a clear manner.
However, since blockchain and cryptocurrency are becoming so pervasive, I finally sat down and did some research to educate myself on the topic. It was surprisingly difficult to find descriptions and explanations of what is really going on behind the scenes when it comes to cryptocurrency – in other words, the details of the blockchain technology that underlies the entire concept. As for cryptocurrency itself, well, I’m not an economist, and I’m more interested in discussing blockchain, but I will say that I consider cryptocurrency to be little more than speculation, a trend that is unlikely to become mainstream, at least in its current form. This editorial from the Wall Street Journal, “Crypto is Money without a Purpose,” makes strong arguments for this view. This is an entire post or more in itself, but instead of attacking that question today, I want to turn our attention to blockchain.
To introduce the topic, blockchain is the concept underlying many of the “revolutionary” technologies that have gotten so much buzz in the past couple of years: cryptocurrencies, non-fungible tokens (NFTs), the internet of things (IoT), even the metaverse. Combined with the wireless protocol being advertised as 5G, blockchain is ascribed the potential to revolutionize the way the internet functions. I hesitate to call it a technology, though, because it really isn’t so much a technology as a way of doing things, a specific protocol that we can choose (or choose not) to implement.
At the most basic level, blockchain is a way of interacting with a matrix or data table. If we have a data table with different values in different columns, then the final column will consist of something known as a hash, which is a cryptographic term referring to a supposedly unique value associated with the data in the other columns in that row. Once a row is filled in and the hash is calculated, in the context of blockchain that row is now known as a block. It might look something like this:
|Name of Data||Value of Data||Other data||Current Time||Hash|
By itself, this is nothing new. We’ve been using this in satellite technology and other circumstances where verifying the accuracy of your information is particularly important. In theory, any sufficiently large row of data will have a unique hash value (usually expressed in hexadecimal, as I have done here with “octafox”), allowing us to verify that, for instance, the information we upload to a spacecraft is the same as we meant to upload. We can calculate the hash on the ground, the satellite can calculate a hash for the data that is uploaded, and if the hashes match, then what we’ve uploaded is correct.
Blockchain takes this concept a step further by sharing the entire data table with all parties. By making each block and its associated hash a matter of public record that is saved locally on each individual’s machine, the theory is that it becomes almost impossible to alter the blockchain without being caught. Changing any piece of data in any row will change the resultant hash, and therefore the hashes will not match on the various machines involved. Thus, anyone who wants to tamper with the blockchain has to be able to change the relevant block on every machine involved in the blockchain. This is why blockchain is purported to be so secure, because with a sufficient number of users it is said to be almost impossible to accomplish a change to any past block.
The exact technique by which a hash is calculated varies from algorithm to algorithm. It can be as simple as addition, which is what I’ve seen used for most satellite command verification purposes. Each part of the command has a hexadecimal code associated with it, those codes are added together, and the sum is the hash. Other systems will use more complex algorithms, but the principles are the same; the components of the data block are assigned numerical identifiers (perhaps deriving from ASCII protocols, for instance), and those identifiers are put through a series of mathematical functions to produce a hash.
The uniqueness of the hash is a matter of the functions involved in deriving it, which are the subject of detailed mathematical proofs and techniques that can rate the uniqueness of a function’s results. Many have a property called irreversibility, which means that you cannot back out the inputs to a function from the outputs. I’m afraid that a more rigorous, mathematical description is beyond what I have studied.
The data table, to my understanding, is shared over internet communication protocols just like any other data. As for how the data table is not too large and unwieldly to be shared, well, I think you might be surprised by how much raw information our computers can actually handle. On perfectly ordinary computers, I’ve been able to perform operations without difficulty on spreadsheets filled with hundreds of thousands of rows, and hundreds of columns. When the data in question does not need to be presented in a human way, but can be left as nothing but binary information on an FPGA or a computer’s RAM, it takes requires even less memory and processing power. Plus, you can have any number of independent tables, reducing the total size of any single blockchain that might need to be shared. If I’m performing a banking transaction, for instance, there might be a blockchain that holds all transactions that interact with my account. It would be shared with anyone performing a transaction with me, and would accumulate new blocks at a rate of maybe a hundred each month? In a hundred years, you’d still have a data table with which modern computers would not struggle.
When it comes to the size and manageability of the data table, there are two key points to keep in mind. First, computers and communication protocols can handle a preposterous amount of data these days, and blockchain is a technique intended to take full advantage of the increased capacity that comes with the expansion of things like 5G. Second, the whole point of blockchain is that it’s distributed, not centralized. Under a traditional paradigm, a bank might have a data table that contains every transaction they ever process, and that data table would be unwieldly, but with blockchain, there would be a separate blockchain for each account (as an example), which keeps the blockchains to a more reasonable size.
There are three main flaws that I have identified in this security logic. One: the uniqueness of the hash. Just a couple of weeks ago I had an instance in my real job where we assumed that the data we uploaded to a spacecraft was valid because the ground hash and the space hash matched, but it turned out that it was just a coincidence that they happened to calculate to the same value, and that we’d in actuality uploaded an incorrect input. Yes, hashes involving more data and more complex algorithms will encounter this less often, but it is still possible, and the more we use this technology the more likely it becomes that it will occur.
Our second flaw is the matter of communication. While, once the block is shared amongst all participants, it is quite difficult (not impossible) for a nefarious actor to alter it, after the block is created but before it is shared it will be vulnerable to tampering. Considering the range and capability of technologies possessed by nefarious actors (state and non-state) to penetrate wireless communication networks, this seems like a glaring vulnerability. Nothing I have read has offered me a satisfactory explanation for how this step is any more secure than any other method of encrypted communication.
Third, and based on how every other technological advance in human history has transpired, it is only a matter of time before the difficulty of altering the block on all involved machines is surmounted, and once that difficult is solved the solution will be spread around, and we’ll be right back where we started, except with a greater sense of invulnerability. Quantum computers, for instance, have the potential to address precisely what makes doing this so difficult today.
That’s blockchain. As to cryptocurrency, it’s really only incidentally related to blockchain – it uses blockchain, but its value is not founded upon blockchain. Blockchain is just what allows it to propagate without a centralized infrastructure. At the end of the day, a blockchain is just a record of blocks, a way of recording data, encoding it, and sharing it amongst a group of participants, instead of keeping it centralized at a hub.