Anatomy of the Blockchain and understanding “Proof-of-Work”

We keep hearing the hype about Blockchain particularly its guarantee for securely providing tamper-resistant immutable record keeping. What it basically means that Blockchain records every transaction on the network, whether it is a single transaction of a payment or multi-step transaction of a workflow — Each transaction is represented as a block. Typically, the resulting blockchain ledger will be represented as a series of blocks connected together, where each block is made up of a header block that contains its metadata information, which includes its previous “parent” block HASH, Merkel root HASH and a NONCE, then followed a list of transactions. The blockchain in the ledger is established by referencing the “parent” block HASH.  The first block in the chain is referred to as “Genesis Block”, which is identified as “0”.  Any invalid block off of the chain, are referred as “Orphaned blocks”, which will be removed by the consensus protocol.

Genesis Block “0” of BTC (Source: www.blockchain.info)

For better understanding, you may visit www.Blockchain.info and take look at the “Block 0” (just type 0 in the search box), you should able to see the genesis block – the number of the transaction occurred was just ONE, you should see the HASH for this block, previous block HASH as “0000000000000000000000000” and you should see the HASH of Merkel root and the next HASH of the next block. Now, if you look at the “Block No. 150000” — You should see the number of transactions as 10, and see the HASHes of this block, previous block, next block and the hash of the Merkel root.

Block #150000 of BTC. (Source: www.blockchain.info)

So what is “Proof-of-Work”?

Based on my review, in a Bitcoin chain usually, it takes about 10 – 15 minutes for creating a block. In the Ethereum (TestNet), it takes about 5 seconds to create a block. If we look at the underlying process, in the blockchain network there are peer-to-peer nodes on the network who are intended to perform mining, who process by collecting the transactions relayed on the network and add them into a block – This process is referred to as proof of work.

Building the blockchain

Typically a block will represent one or more transactions. There is a Block reward attached to each block.  When the miner finishes building the block, the miner must solve a HASH puzzle applied on the transactions.  Only when a miner successfully solved the puzzle will be allowed to broadcast the block relayed on the network.  The block will include the solution to the puzzle in the block header, which is called a NONCE. Once the block is relayed on the network, the other peer miners on the network will receive the block and validate the block and append to their blockchain ledger. This assures only valid blocks are added to the chain and all other blocks are left as “Orphaned blocks”. To avoid orphan blocks, miners should always work on the longest chain as shorter chains usually have the stale blocks called “Orphaned blocks”.  The process of mining ultimately validates, finalizes and endorses the new transactions as a new block and append them to the blockchain ledger.

How can I test-drive Bitcoin or Ethereum?

To test drive Bitcoin or Ethereum blockchain, I would recommend using TESTNET of Bitcoin or Ethereum networks. The cryptocurrencies mined on the test networks (TESTNET coins) has no real value. The TESTNET is intended for testing purposes and it provides a sandbox environment for testing Bitcoin or Ethereum frameworks. You can try mining your own test BitCoins or Ethereum TESTNET coins by setting up a BitCoin or Ethereum nodes. Usually, the HASH complexity is low and it is easy to solve the puzzle and obtaining a reward on the TESTNET.

https://en.bitcoin.it/wiki/Running_Bitcoin  (Follow the instructions for downloading bitcoind and make sure to use -testnet runtime option)

https://testnet.etherscan.io  (Follow the instruction for downloading Ethereum and using testnet)

For reviewing your mined blocks on the TESTNET, check out the following URLs (based on your choice):

https://testnet.blockexplorer.com  (For BitCoin TESTNET)

or

https://kovan.etherscan.io (Ethereum TESTNET Kovan)

https://ropsten.etherscan.io (Ethereum TESTNET Ropsten)

Goodluck

 

Leave a Reply

Your email address will not be published. Required fields are marked *