什么是合并挖矿merged mining?其原理是什么?
NMC域名币目前是与比特币合并挖矿的,狗币过几天也要和LTC合并了。 什么是合并挖矿merged mining?其原理是什么?
利用Auxiliary Proof-of-Work (AuxPOW)实现Merge Mining。
以Namecoin的merge mining为例:
bitcoin作为父链(Parent blockchain), namecoin作为辅链(Auxiliary blockchain)。父链不需要知道辅链的存在;而辅链需要有协议来支持复用父链的POW结果(AuxPoW)。
目标:需要实现只计算 H = Hash256(bitcoin header)。 当H符合Bitcoin的难度要求时,那么就挖出BTC,而符合Namecoin的难度要求时,那么就挖出NMC。
原理:Bitcoin的block中,由于coinbase这一交易的脚本中可写入任意自定义数据,那么通过写入规定格式的数据,Namecoin的链可以解析并认可父链计算出的Hash值。
实现方法:1. 父链端的工作量较小,只需在bitcoin block的coinbase的scriptSig中插入如下格式的数据(44字节):
uint32_t magic; // 0xfa, 0xbe, 0x6d, 0x6d
uint256 nmc_block_hash; // 当前namecoin的block hash
int32_t merkle_size; // aux work merkle tree的大小,只有一个辅链时设置为1。
int32_t merkle_nonce; // 只有一个辅链时设置为0
复制代码
- 辅链需要做很多额外的工作,在namecoin的block header后依次附加:
(1)父链的coinbase的交易数据;
(2)附加Hash256(btc_block_header);
(3)包含有coinbase tx的父链的Merkle tree分支;(不需要全部的交易数据,只需构建merkle tree所需的必要位置的HASH值即可,最后需要附上一个标记来注明左右次序)
(4)当有多个辅链时的其他分支;
(5)父链的block header;
(6)Namecoin的交易数据。