Software is pretty easy to manipulate. Hackers have a million different ways of altering code, with serious real-world impacts. It’s shockingly easy to move a few numbers around and convince a system that these 1s and 0s have always been over there.
That’s because software is usually static. There are buckets of information that sit on a hard drive or server, and people move it around — modify it, add to it, transfer it. That makes it easy to surreptitiously move a few digits around and hide your activity. Security systems often try to fix that using audit logs that record activities in the system with timestamps. But all too often, those audit logs can also be modified or simply deleted.
Blockchain is a wholly different type of software. It is dynamic, and time-bound. Here’s why that matters. Imagine a set of transaction data is recorded in a bundle — let’s say it’s all the money sent between members of your immediate family in 2009.
That’s block 1, as it exists in 2009. At the start of the year, this bucket of info was opened up, and during the year all the transactions were added. On December 31, every family member independently confirms the info is correct (this is what’s meant by distributed ledger), and the block is sealed. Now block 2 can begin.
Now, there is a link between the blocks. The link is a timestamp and a cryptographic hash, which works like this:
“A cryptographic hash function is an algorithm that has two main properties: it is a one-way function and is collision-free. As per function definition, it transforms one input into only one output. By one-way function we mean that is computationally infeasible to find the input related to a given output.” - Just Cryptography
This basically means block 2 depends on block 1 being correct. Imagine if Jim wanted to crack into the 2009 block a year later and say Grandma only gave him $2.50 for ice cream instead of $5.50 and therefore owes him a couple bucks. Altering that transaction would garble the cryptographic hash between blocks, and all of the information in block 2 would become gibberish.
The rest of the family would immediately know something had happened and wouldn’t verify the next block until the issue had been reconciled.
This is why blockchain is referred to as an unalterable ledger. Once a block of information is complete, all the next blocks depend on what came before.
In other words, the best way to hack a previous block and alter the information in it would be to literally use a time machine*.
That, to me, is the genius of blockchain. Rather than storing information in static vaults that can be cracked, hacked and modified, blockchain is a dynamic and linear system that flows along with time.
There are some disadvantages to the system, as you might imagine. Once a transaction has been locked in, it can’t be reversed or refunded. That’s one reason cryptocurrencies have been looked askance by the major financial players.
* This is a high-level overview that has a few imprecisions. For example, a time machine isn’t the only way to alter the ledger. Still, I hope it’s a useful and interesting description of an ingenious type of software!