Learning Block Chain -One Step at a time — Mining
Block chain is a decentralized system. There are no central agencies to authorize the transactions. So who and how are the transactions authorized? What are the incentives for the authorization agency to do so?
In Block chain, the transactions can be authorized by any node in the distributed system. Each authorization fetches you 25 Bitcoins (32 K USD, 21 Lac INR). The money is attractive, so what stops everyone to enter this market and be a miner ?
A transaction can be authorized by providing “Proof of work”. The bitcoin community provides a puzzle to solve. Each miner needs to use a nonce (a random number that can be used only once), and hash it with the data in the block’s header to come up with a unique hash that matches the difficulty level (so many number of zeroes in the hash and so on ) provided by the bitcoin community. A miner needs to keep finding a hash to see it matches the difficulty level to be accepted as the proof of work.
With a 1 GB RAM PC and about 32 GB Hard disk, one can generate about 20 hashes per second. With the difficulty level at the current rate it will take about 145,000 years for this PC to come up with a valid hash (and earn 25 bit coins). If one uses a GPU based system that time can be cut down to about 175 years.
Considering the fact that no miner would wait that long, the latest mining hardware involves a ASIC based systems and a lot of parallel processing to make mining a viable business. You are looking at a system that has about 900 MWs of power and an equivalent cooling system.
This rules out small players out of the field, so the best thing the small players can do is to form a pool. You pool your processing resources and share the gains. Bit coin mining pools today constitute of about 80–90 % of all mining activities.
Are there alternate ways of mining ? Block chain must surely have other use cases than bit coins. Can there be a alternate way of mining (authorizing) to be used for other systems that transact value. This will be a good direction to look at block chain from.
Learning any new technology is incomplete without a hello world program. Have started looking for platforms that can be used for trying a hello world in block chain. Next few stories should be focused on something that is more closer to code.