Welcome to the Crypto Explained series of blog posts where we explain technical terms in an accessible manner. In this post we will be discussing hashing.
Hashing is a very important technical concept that I feel everyone, technical and non-technical people alike should learn. I will explain it like this.
Hashing is essentially a digital fingerprint that can be created for any data at all. So let’s take this very article you are reading. If we feed the text through a hashing algorithm it could produce what looks like a string of meaningless text and numbers known as the hashing; e.g.
cab1234vgf2ggkj3sklsfskj34ffscx00191f99ass0011111 which corresponds to the original text. If you change even one tiny detail in the text such as removing a letter or adding an extra space, then the hashing algorithm would produce a totally different hash.
Furthermore it is extremely hard to transform a hash back into the original text. As a result you can store the hash of some sensitive piece on information, and the only practical way of deciphering a hash, would be to have the deciphered data to begin with and re-running the hashing algorithm. In the world of cryptocurrency this presents the ability to easily verify the data that someone gives you.
For example, on the Cardano blockchain, rather than storing a smart contract script on the blockchain, it would store the hash of the script. A decentralized application could then give the blockchain the script it wishes to run and the blockchain could confirm that the script being sent to them has not been tampered with by checking its hash.