Immutability as a desirable property independent of blockchain explored via Stuxnet.Read More
The central, novel property of blockchain is immutability. This means that records can not be changed once they are accepted, and implicit here also is that records receive a timestamp that can not be changed once it is agreed. Immutability was key to the success of the Bitcoin network as it guaranteed there would be no tampering with the older sections of the ledger. Immutability is also the property by which blockchain can offer something genuinely new to information security, but to see clearly how this works we should first examine some basic concepts in cryptography and blockchain architecture.
The mysticism around blockchain imagines it as being everywhere and nowhere, but a blockchain is tangibly a group of databases on a number of different computers, commonly called nodes, communicating constantly via a cryptographic protocol in order to make sure they are all keeping records in the same way. This protocol isn't really an innovation in cryptography in the pure sense, but really a bunch of old ingredients linked together including a very common ingredient called a cryptographic hash function. Informally, the important properties of these hash functions are that 1) they are easy to compute, but very difficult to invert, 2) their output depends chaotically on every little bit of input, and 3) they (hopefully almost) never produce the same output given two inputs. If I give you an output from a hash function, you are going to have a hell of a time finding an input that produces this output unless I give you mine.
So thus far we have databases sharing cryptographic information to try and stay on the same page. This could be a big headache if we are working with a lot of data, and this is where the blocks, their arrangement in a chain, and our hash function get put to work. All the data goes into blocks as we get it, and we put the data of the n-1 -th block into a hash function and include this output in the n -th block. Because of property 2) listed above, this means that any change in a block will radically change all the hashes appearing in all later blocks, while properties 1) and 3) make it extremely difficult to cheat and come up with new, fake blocks that prevent these radical changes. Thus, the efforts of our many databases to stay on the same page need focus on the most recent block as any violation of prior consensus will upset the hash appearing in this most recent block. This resistance to changes in prior consensus, which we previously called immutability, is what makes the whole enterprise workable, both computationally and on level of human trust.
Immutability is useful in information security because it guarantees tamper resistance. We might want to ensure that malicious actors are not doctoring our records towards their own ends, and the transmission of hashes from one block to the next ensures that this is very difficult or impossible. But...in the blockchain context immutability depends on the collaboration of the nodes of our network and their consensus process. The role played by this consensus process, and how the consensus process determines what blockchain can and can't do for information security, will be the topic of the next post in this series.