联合挖矿(merged mining)

    本周机缘巧合遇到了“联合挖矿”这个概念,一脸懵逼不懂什么玩意儿,百度上搜索着了一下仍然不太懂,最后在知乎上(https://www.zhihu.com/question/25401169/answer/30664770)链接到国外两篇文章,才简单弄懂了基本概念。(在这里禁不住想吐槽一下百度搜索功能:如果你从事专业研究或者技术开发,想从网络上获取专业知识,建议你放弃百度,转投google;至于怎么能上google,呵呵,大家想办法自己解决吧)

    这里简单总结一下联合挖矿的原理,主要以namecoin与bitcoin为例;最后分析一下这种技术的优势与劣势;namecoin虽然没有发展起来,但是留下了merged mining和one name的思想。

1. 什么是联合挖矿?

    首先猜一下什么是联合挖矿,从字面意思看很可能是一种区块链和另外一种区块链联合起来一起挖矿,但是怎么联合呢?我们以namecoin与bitcoin为例说明。

    namecoin所有的机制几乎和bitcoin一模一样,实现了one name业务,主要是区块链dns服务,相比于传统的dns服务,namecoin的安全性更高,在链上存储dns对应的ip同时保证name的唯一性。bitcoin 的共识算法pow浪费算力,namecoin利用了这些算力,namecoin自己不做mining,而是利用bitcoin mining的计算结果,如果满足namecoin的mining难度值,namecoin挖矿成功。简单过程如下所示:

    a. bitcoin miner 计算得到一个随机数,如果随机数满足namecoin的难度值(namecoin的难度值一般情况肯定比bitcoin小,或者相等),namecoin挖矿成功,打包交易成区块,然后上链;如果随机数同时满足bitcoin的难度值,bitcoin挖矿成功,打包交易上链(注意是bitcoin的区块链,bitcoin与namecoin拥有自己独立的区块链)。

    b. namecoin也是保证10分钟出一个块,刚开始难度值肯定小,但是随着难度系数的调整,namecoin的难度值会趋向于bitcoin的难度值。也就是namecoin的区块和bitcoin的区块几乎同时产生。

    那么namecoin怎样证明工作量呢?namecoin的工作量证明其实是bitcoin的工作量证明,在namecoin的区块上需要链接到相对应的bitcoin的区块。

    以上就是联合挖矿的基本原理,具体可以参考上面知乎上的两个链接:

    how does merged mining work?

    Merged mining specification

    具体实现可以参考namecoin的source code,可以查看blockheader结构变化和挖矿过程,google直接搜 github namecoin。如果不想看源码可以查看网络上的总结:

https://www.zhihu.com/question/25401169/answer/30664770

2. 联合挖矿的优势与劣势

   优势:

    namecoin被成为bitcoin的第一个代币,很好的利用了bitcoin的pow共识算法,缓解了pow算力浪费;namecoin利用bitcoin的pow算法保证自己的安全性,同时和bitcoin绑定吸引更多的bitcoin 节点运行namcoin,在挖bitcoin的同时还挖namecoin。

   劣势:

    bitcoin pow存在的所有问题都会表现在namecoin上,在namecoin上交易都要以nmc支付费用,同时namecoin的dns服务需要浏览器插件支持,这些问题导致了namecoin已经成为过去时。

    namecoin 现在不是主流,但是merged mining和one name的思想还是很好的,这种思想以后可能会用在区块链其他领域。以上就是个人对于namecoin的一些总结和看法,如有错误欢迎大家指正。

你可能感兴趣的:(联合挖矿(merged mining))