What is a hash? And how does it work on the blockchain?
The blockchain is considered an incredibly secure technology. As such, there is also virtually no chance that anyone can change past data, thus preventing double spending. The fact that this is possible is partly because the data on a blockchain is hashed.
We can therefore say that hashing is the key to the reliability of the blockchain. But how does it actually work?
What is hashing?
Hashing is the process of converting an input of random length into a fixed cryptographic result using a mathematical algorithm. There are an awful lot of different algorithms like this, with some being more secure than others. Bitcoin, for example, uses the SHA-256 algorithm.
What makes a hash so secure?
By means of hashing, the security of the blockchain is increased considerably. This is because when you see a hash, it is impossible to know what information is behind it, and how big this information is. But that's not the only thing that makes a hash so secure.
A hash is also secure because even the smallest change to its contents will result in a completely different hash. If only a small change made a small difference, it would be much easier to determine what the content looks like. The more efficient and complex the hashing algorithm, the greater the effect of a change to the content on the hash.
How does blockchain use hashing?
The blockchain uses hashing, in order to be able to protect all data from outside influences. Thus, you cannot directly see what is happening on the blockchain. The contents of all blocks are hashed, so you can't simply view the transactions either.
As we just said, even the slightest change to the content results in a completely different hash. This ensures that the blockchain is a safe place, and that blocks can be linked together.
Miners are busy checking transactions on the blockchain. If a transaction cannot be approved, it will not be added to the blockchain. However, if a transaction is valid, it will be included in the new block added to the blockchain.
You may be familiar with the fact that the first block of the blockchain is called the Genesis block. This block is hashed, just like all the other blocks on the blockchain. However, this is the beginning for the rest of the blocks and its hashes.
This is because the hash of the first block is stored in the block that comes next. And the block that is added to the blockchain after that also contains the hash of the previous block. In this way, a chain of blocks is created, which we call the blockchain. Each node has a copy of the blockchain.
Thus, when someone tries to modify the content of a block, a new hash will be created. Since the block then has the hash of the originally previous block in it, it will be noticed that something is no longer correct. All nodes in the network will then know that there is someone who has tried to address the history of the blockchain.
So, each block refers back through its hash to the hash of the previous block. This is exactly why transactions are considered secure when stored on the blockchain.
This would be possible when data is stored in a central location, such as a server. This is because there is then no network that would immediately notice an error because a hash has been modified.
Different hashing algorithms and their security
There are many different types of hashing algorithms that blockchains can make use of. This is because the technology itself is not new. Ever since the first computers were created, hashing algorithms have also been devised. Hashes are also used, for example, to secure passwords for websites.
It has also happened several times in recent years that such an algorithm has been cracked. This happens when someone discovers how the algorithm works. As long as an algorithm has not been cracked, it can be considered secure.
Probably the best-known hashing algorithm is MD5. This algorithm is widely used for storing passwords. Nevertheless, it is considered as an unsafe algorithm because it turned out that there are a lot of errors in the design of this algorithm.
Bitcoin uses the SHA-256 algorithm for encryption. SHA-1 is a precursor to this algorithm and has been considered insecure for several years. In fact, it was possible to perform a Shambles attack on this algorithm, making it unsafe to use just like MD5.
It is not strange that these algorithms are considered unsafe, as they were already invented in the 90s. The more time hackers have, the more likely they are to crack the algorithm. Therefore, new, and complex algorithms are constantly being invented, of which it is virtually impossible to crack. Some algorithms are known to take millions of years to crack.
Mainly new blockchains make use of these new and complex hashing algorithms, because they are a lot more secure. The moment the algorithm is cracked, it also means the end of the blockchain. It is therefore important that such an algorithm is durable, so that the blockchain can last for a long time.
What is a TXID?
A TXID is a transaction ID, which is obtained by hashing transaction data (such as the amount sent, the receiving address, the timestamp, etc.). It appears in a series of numbers and letters, which can be used to identify and confirm an executed transaction.
What are Merkle Trees?
A Merkle Tree (also known as a hash tree) is a hash data structure used to store data on a blockchain in a secure and efficient manner. The concept was patented by Ralph Merkle in 1979.
The system works by performing block transactions using an algorithm that generates a hash to verify the validity of that data based on the original transactions.
An entire block of transactions is not subjected to a hash function at the same time. Instead, each transaction is hashed, linking those transactions together and hashing them together. Ultimately, this produces a single hash for the entire block.
The structure resembles that of a tree, as each block typically contains hundreds, if not thousands, of transactions. The hashes on the bottom row are called 'leaves', while the hashes in the middle are called the 'branches', with the hash at the top being the 'root'.
Merkle trees are particularly useful because they allow anyone to confirm the validity of an individual transaction without having to download an entire blockchain.
Merkle trees and hashes are a key element in making blockchain technology work while ensuring security, integrity, and non-repudiation. Together with consensus algorithms, they are the key aspects that ensure the security of blockchain technology.