美文网首页
Conflux技术核心简析:基于PoW的DAG

Conflux技术核心简析:基于PoW的DAG

作者: Buffalo_Lv | 来源:发表于2018-08-14 16:08 被阅读851次

    Conflux是一个挺有创意的区块链项目,其巧妙融合了DAG技术和POW共识机制。和比特币或以太坊相比,扩展了交易并发度和系统吞吐量;而和典型的DAG技术(比如Byteball项目)相比,又在共识层面提高了系统安全性。

    其论文下载地址为:https://arxiv.org/pdf/1805.03870v3.pdf

    理解Conflux的技术设计,首先得了解比特币和以太坊的「链式系统做的不够好的地方」。在比特币系统中,若在某一时刻不同的矿工节点同时产生了多个合法区块,那么随着时间的流逝,最终只能有一个区块被纳入区块链账本中,其他的合法区块不得不被淘汰出局,被淘汰出局也就意味着矿工节点耗费了大量算力却未能得到任何奖励,即浪费了能源,又很难提高系统吞吐量。

    以太坊系统为了提高出块速度,采用了GHOST算法,并设计了「叔区块奖励机制」,这样就能够做到在链式账本中只保留一个合法区块的同时,将其他的并发合法区块做为叔区块包含到账本中,并给予这些叔区块一定的奖励,让系统变得快速,并相对公平、平滑一些。然而在以太坊系统中,叔区块里的交易是无效的,系统吞吐量还是不够高。

    所以Conflux针对这些缺点做了进一步的改进。在Conflux中,矿工节点是可以并行/并发出块的,而不用担心合法的区块被淘汰或失效。目前来看,能够提高交易并发度和系统吞吐量的设计,除了链式系统的分片技术,就是DAG技术了。

    Conflux就采用了DAG技术,和同样采用了DAG技术的Byteball相比,Conflux做了两点重要的技术调整或改进:

    1、Conflux的DAG拓扑图中的顶点V是区块(Block-DAG),而Byteball的DAG账本的顶点V是单独的交易(Tx-DAG);

    2、Conflux采用GHOST算法进行主链(Conflux称其为pivot-chain,轴链)的生成,而Byteball采用了Witnesses见证人方式。

    矿工节点在利用GHOST算法计算出主链/轴链之后,就能够通过哈希指针将当前产生的区块添加到账本中,当前新产生的区块会被将来产生的区块通过哈希指针引用,通过这种方式,当前区块要么成为轴链上的顶点,要么成为链接在轴链主干上的子树分支里的顶点,而不管成为什么类型的区块顶点,区块中的交易都是有效的,这样就提高了交易的并发度和系统的吞吐量。

    如下图所示,Genesis是创世区块顶点,A、C、E、H被GHOST算法选择为轴链顶点,而B、D、F、G、J、I、K则属于分支节点。

    基于GHOST轴链的Block-DAG,图片来自Conflux论文

    在交易定序这一点上,Conflux和Byteball是类似的,都是采用主链/轴链索引号(Byteball称其为MCI,Conflux称其为Epoch)的排序规则实现的,通过MCI/Epoch,可以实现对整个账本里包含的所有区块和交易的全排序。基于交易的全排序,并采用账户余额模型,Conflux也就不难实现类似以太坊系统的智能合约功能。

    相关文章

      网友评论

          本文标题:Conflux技术核心简析:基于PoW的DAG

          本文链接:https://www.haomeiwen.com/subject/wihvbftx.html