Bitcoin, the world that’s been on everyone’s lips the past couple of years since cryptocurrencies have reached a record-breaking adoption level. It’s the world’s most valuable and most important cryptocurrency, a marvelous invention of the human mind, and it offers us all a way to be in control of our money without letting third-parties have access to it.
The reason why Bitcoin was and still is such a big deal are plain obvious: it’s a decentralized digital currency (like virtual money or gold), it allows anyone to transfer money from one place to another in a matter of seconds, and no banks, institutions, or governments can truly control it.
As important as Bitcoin might be, it’s the underlying technology that seems to be even more so. Even though it might not be recognized as such yet, the blockchain is probably the most important invention of the last twenty years. It’s a piece of technology so relevant to our time that it is already disrupting more and more industries with each passing day.
As with all modern technologies, there are a lot of technicalities and small, but important aspects that might slip the public’s view or attention. In this article, we will look at an often overlooked, but very important feature of Bitcoin’s blockchain called the “block header.”
What is a block header?
To understand exactly what a block header it is, one must first understand what a blockchain is. Invented by Satoshi Nakamoto in 2008, the blockchain is a public transaction ledger, a growing list of records (called blocks), linked together and protected using cryptography. It’s a data structure designed for storing transactions in a series of back-linked blocks.
There’s a lot to be discussed here, as the blockchain is a fascinating and complex technology, however, for the sake of this article we will keep things as simple as possible. Every block within the blockchain has a list of transactions inside. In fact, the structure of a block is comprised out two main elements: a block header and the list of transactions.
Block header structure
The block header component has a unique identifier called the block header hash. Each block header is comprised out of three main components: the previous block hash, the timestamp, difficulty and nonce (information about mining), and the Markle Tree Root.
The version number is used to keep track of upgrades and changes in the Bitcoin protocol. The previous header hash is the component that links to the previous block and secures the chain.
The block hash is responsible for block identification within a blockchain. In short, each block on the blockchain is identified by its block header hash. Each block is uniquely identified by a hash number that is obtained by double hashing the block header with the SHA256 algorithm. One important aspect to note here is the fact that the header hash is NOT stored in the block structure. Instead, it’s calculated by each node as the block is “received” through the network.
The difficulty target of the block is the number of zeroes that must be found when hashing the block header in order to meet the designated level of proof of work. The nonce is the value that is modified by the miners to try different permutations in order to achieve the so-called difficulty level.
The Merkle Tree is probably the most complex component here. It’s a binary tree containing cryptographic hashes on its “leaves.” In the case of Bitcoin, the Merkle tree is made by a recursively hashing pair of nodes until a singular hash is determined, called the Merkle root.
More information about the block header
One can think of the block header as a sort of metadata at the top of a block of transactions. The header is actually an 80-byte long string, comprised of the 4-byte long Bitcoin version number, 32-byte previous block hash, 32-byte long Merkle root, 4-byte long timestamp of the block, 4-byte long, difficult target, and 4-byte long nonce used by miners.
To get a visual idea, here’s a block header for Bitcoin block 123,456: “010000009500c43a25c624520b5100adf82cb9f9da72fd2447a496bc600b0000000000006cd862370395dedf1da2841ccda0fc489e3039de5f1ccddef0e834991a65600ea6c8cb4db3936a1ae3143991”
The block header is a very important component of any block within a blockchain. Even though it’s of the utmost importance for the Bitcoin ecosystem, it’s often overlooked. However, if you really want to understand how the blockchain works, then learning as much as possible about the block header should also be at the top of your list.