Alternate Uses of the Blockchain Using Merged Mining

There are currently several alternate uses of the Bitcoin blockchain.  these proposals include using the Blockchain as a notary service (for instance, proof of existence splits a hash into 2 pieces and creates unspendable output.  Bitcoin Time Stamp does something similar but transforms the hash into valid transactions).   Other proposals such as micropayments and “colored coins” also cause concerns about adding things to the Bitcoin blockchain.

One solution is to create other blockchains.  If the blockchain was completely separate from Bitcoin an entirely new hashing network would have to be created.  However, using “merged mining” proposed by Satoshi Nakamoto and recently discussed by developer Mike Hearn on Let’s Talk Bitcoin could allow multiple blockchains to be mined at once by the same network.

A block is mined by taking transaction data, a hash from the previous block, and a “nonce” is constantly changed until a hash is found with a certain number of zero’s at the beginning.  A simple example:

Take a cryptographic hash using the SHA256 hashing algorithm of the term “message” (without quotes) and you get:

ab530a13e45914982b79f9b7e3fba994cfd1f3fb22f71cea1afbf02b460c6d1d

Now start adding stuff until you get a hash that starts with “0”:

1message daad0bc80059253928621a10365de153e335a18f03b9dc7e7e25897fb791f023

2message 6532f42bd1d6ccd00f47c133c3ca1a0fc852598e67c62eb31adab8ceb3aaa680

51message 0985e57510d017b177867168642543ab4f143333ad63782680e812251ab3141e

After going through the numbers sequentially 51 was the first one that worked.  As long as ”51″ is sent along with the message the receiver can quickly verify it meets the requirements by performing the hash.  The added portion, in this case”51,” is called a “nonce.”  The important part here is the nonce can be anything.

Suppose you are mining Acoin and Bcoin at the same time.  Now you have block data from Acoin, block data from Bcoin, and a “mater nonce” that you keep changing until you find a block.  Once you find a block it is a valid block for both chains (assuming the same difficulty).  For example:

Hash this data together:   [Acoin block data  |  Bcoin block data  |  master nonce]

When a block is found:

Broadcast block for Acoin  >>  [Acoin block data]   + nonce  [= Bcoin block data + mater nonce]

Broadcast block for Bcoin  >>  [Bcoin block data]   + nonce [ =  Acoin block data + mater nonce]

This can be done for as many chains as you like.  Slush’s pool has already been merge mining Bitcoin and Namecoin since 2011.

The actual specification is a little more complicated and the difficulties do not have to be the same but this is the basic idea.  The full spec is at

https://en.bitcoin.it/wiki/Merged_mining_specification

 

 

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>