If you’ve already familiar with cryptocurrencies, especially Bitcoin, it is very likely that “hashing” or “cryptographic hash function” will ring a few bells. Hash functions are part of any cryptocurrency blockchain, ensuring information security. Without hashing, it would be a piece of cake for hackers to steal your cryptocurrency, so because it plays such a leading role, let’s analyze some of the most important details you should know.
Hash functions explained
In abstract terms, a hash function is a mathematical process taking input data of any size, performing an operation on it, and returning output data of a fixed size all the time. To give a simple example, we can take a sequence of letters of any length as input (usually called a string) and returns a sequence of letters of a fixed length. It does not matter whether the input string is single or multiple letters, the output will always have the same length all the time. Hash functions are commonly used to store passwords, but at the same time, they play a leading role in how cryptocurrencies like Bitcoin can operate.
When it comes to the Bitcoin protocol, hash functions are part of the block hashing algorithm, used to write new transactions on the blockchain via the mining process. In the mining of BTC, inputs for the function are all of the most recent, but not yet confirmed transactions. Bitcoin uses a Proof-of-Work consensus mechanism, which requires miners to try and combine all inputs with their arbitrary piece of input data, so the resulting hash will start with a certain number of zeros.
Miners have to solve the hash for each Bitcoin block (a new block is added on the Bitcoin blockchain every 10 minutes) which must start with a certain number of zeros (18 at the time of writing). This requires an extremely large amount of computational power and it’s the main reason why the mining difficulty for Bitcoin is so high.
The last detail we want to emphasize is that Bitcoin uses the SHA-256 hash algorithm to generate verifiable random numbers in a way that requires a predictable amount of CPU efforts. Miners have to generate an SHA-256 hash with a value less than the current target to solve a block and unlock the reward (which is 6.25 BTC per block in 2020). Not all cryptocurrency use SHA-256 as their hashing algorithms, though, but in the case of the Bitcoin forks, this is the most-used.