All Things Ledger
Published in

All Things Ledger

Bitcoin is the first to implement the concept of Blockchain

Bitcoin’s implementation of Blockchain

Block Structure — Bitcoin. Number in brackets is the size in bytes. Each individual cell is 1 byte. Hence a field of 4 bytes occupies 4 cells. Fields from Version till Nonce form the block header (Total 80 bytes)

Bitcoin’s Block Structure

  • Magic number (4 bytes): This is an identifier for the Blockchain network. It has a constant value of 0xD9B4BEF9. It indicates a) Start of the block b) Data is from production network. You can read more on this concept on wiki.
  • Block size(4 bytes): Indicates how large the block is. Since the very beginning till as of today (Dec 2016) each block is fixed to 1 MB. However a proposal might soon have the consensus of the core development team (who can change protocol rules) and this will be increased to 2 MB. The maximum capacity is 2 GB so scalability factor has already been taken care of.
  • Version (4 bytes): Each node running the Bitcoin protocol has to implement the same version and it is mentioned in this field.
  • Previous block hash (32 bytes): This is a digital fingerprint (hash) of the block header of the previous (last added) block of the blockchain. It is calculated by taking all the fields of the header (version, nonce etc) together and applying a cryptographic function (SHA-256) twice by rearranging the bytes of the individual fields (Little-endian format). You can check the technical details at Bitcoin wiki.
  • Merkle Root (32 bytes): We will see this in the next section of the blog post
  • Timestamp (4 bytes), Difficulty Target (4 bytes), Nonce (4 bytes): We will see them in the next article on Bitcoin mining
  • Transaction Counter (Variable: 1–9 bytes) : This is the count of transactions that are included with the block
  • Transaction List (Variable: Total block size is 1 MB): Stores the digital finger-print of all the transactions in that block. Each individual transaction has its own structure but we will cover Bitcoin Transactions as a separate topic in future.

Merkle Root

Sample Merkle Tree of just 4 transactions

What is SHA256?

Even a space character will change the output. From the output we cannot determine the input(s)

Bitcoin’s Blockchain

Fields from Version to Nonce form the block header. Each block has the hash of the previous block header

Forking

Show your ♥, recommend this post and tip to my ETH address of 0x00046f083fb1348c90d524dd04b522f59fe0895e (and let me know so I can thank you :) )

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Kiran Vaidya

Blockchain Consultant & Educator ¦ Completed RTW spanning 6 continents,35 countries on Indian passport with wifey ¦ Netflix serial killer