从Hashgraph到InterValue的HashNet

什么是区块链共识机制?

说起区块链,我们必然会聊到它的核心问题——共识机制(Consensus)。所谓"共识机制",是通过特殊节点的投票,在很短的时间内完成对交易的验证和确认;对一笔交易,如果利益不相干的若干个节点能够达成共识,我们就可以认为全网对此也能够达成共识。区块链作为一种按时间顺序存储数据的数据结构,可支持不同的共识机制,共识机制是区块链技术的重要组件。区块链共识机制的目标是使所有的诚实节点保存一致的区块链视图,同时满足两个性质:

1)一致性。所有诚实节点保存的区块链的前缀部分完全相同。

2) 有效性。由某诚实节点发布的信息终将被其他所有诚实节点记录在自己的区块链中。

区块链技术正是运用一套基于共识的数学算法,在机器之间建立"信任"网络,从而通过技术背书而非中心化信用机构来进行全新的信用创造。

当前共识机制存在哪些问题?

目前的共识机制主要有POW、POS、DPOS、PBFT。

1) POW工作量证明,就是人们熟悉的比特币挖矿,通过计算出一个满足规则的随机数,即获得本次记账权,发出本轮需要记录的数据,全网其它节点验证后一起存储。可实现完全去中心化,节点自由进出,但挖矿造成大量的资源浪费,共识达成的周期较长,不适合商业应用。

2) POS权益证明,POW的一种升级共识机制,与要求证明人执行一定量的计算工作不同,权益证明要求证明人提供一定数量加密货币的所有权即可。权益证明机制的运作方式是,当创造一个新区块时,矿工需要创建一个"币权"交易,交易会按照预先设定的比例把一些币发送给矿工本身。根据每个节点所占代币的比例和时间,依据算法等比例地降低节点的挖矿难度,从而加快找随机数的速度。POS还是需要挖矿,本质上没有从根本上解决商业应用的痛点。

3) DPOS股份授权证明机制,类似于董事会投票,持币者投出一定数量的节点,代理他们进行验证和记账、维持系统有序运行。股份授权证明机制可以大大缩小参与验证和记账节点的数量,从而达到秒级的共识验证。然而,该共识机制仍然不能完美解决区块链在商业中的应用问题,因为该共识机制无法摆脱对于代币的依赖,而在很多商业应用中并不需要代币的存在。

4) PBFT:Practical Byzantine Fault Tolerance,实用拜占庭容错算法,是一种状态机副本复制算法,即服务作为状态机进行建模,状态机在分布式系统的不同节点进行副本复制,每个状态机的副本都保存了服务的状态,同时也实现了服务的操作,尽管可以存在多于3f+1个副本,但是额外的副本除了降低性能之外不能提高可靠性。

从上述几个共识机制我们可以总结出,目前的共识机制还存在资源浪费、共识达成周期长效率低、速度慢、依赖代币有局限性、可靠性低等问题。

当区块链遇上DAG

近几年,业内许多项目都开始尝试将DAG(有向无环图)应用到区块链数据结构中,如IOTA和Byteball等就利用DAG成功构建了能够长期稳定运行的公有链,证明了DAG链的技术先进性和性能。InterValue项目也在第一阶段采用了基础DAG结构存储交易数据。在InterValue中,交易信息被封装成一个个单元(Unit),单元与单元之间相互链接组合成一个DAG图。由于单元可以链接到任意一个或多个之前的单元,不需要为共识问题付出更多的计算成本和时间成本,也不必等待节点之间数据强同步,甚至没有多个数据单元拼装区块的概念,因此可以极大提高交易的并发量,并把确认时间降低到最小。

图1-InterValue有向无环图

InterValue的DAG数据结构如图1所示,相比于区块链中一对一的链式区块结构,DAG结构中的单元在发出交易单元时,可以同时包含多个父单元,因此可以容纳更多的交易并获得更快的确认。同时由于进入DAG的单元将被所有与其连通的单元直接或间接地验证,如果要修改该单元的内容,则需要相应地修改验证了它的所有单元,从而使得修改无法实现,因此具有更高的安全性。

从2.0版开始,InterValue基础DAG共识将替换为基于HashNet的增强DAG数据结构。HashNet是InterValue最具投资价值的一大创新。HashNet共识协议试图通过"片内自治,片间协作"的方式形成一个分而治之的分布式系统,采用独创的分片算法将分片并发共识、分片重组、片间同步等机制有机融合,在高交易吞吐率、去中心化和安全性之间实现了完美平衡。

从HashGraph到HashNet

DAG跟区块链的结合,从开始出现只是为了解决区块链的性能问题,从起先结合Block和DAG做侧链思路,到摒弃Block概念的DAGCoin,再到已经取得一定成功的IOTA和Bytebal。不少人在质疑这些DAG应用的安全性,是不是还满足去中心化的共识。包括IOTA是不是过多依赖还没开源的Validator,Byteball的witness节点有没有作恶空间。于是有人提出了另一种分布式账本共识——HashGraph,没有区块概念,交易跟交易直接组成DAG。

HashGraph共识算法通过gossip网络和虚拟投票策略达成交易顺序的共识,该共识的前提是要求网络节点超过2n/3的投票能力具有对famous witness事件的一致投票结果,其中n是全网的当前投票能力总和,该投票能力通常为节点的持股数量。由于采用了本地投票策略,HashGraph可以实现较快的交易确认速度。然而该方法存在以下问题:

1) 在广域网环境中,节点波动性较强,全网的投票能力n的波动也随之增强,这可能导致系统长时间无法找到满足2n/3投票一致的事件,从而无法达成共识。

2) 受节点稳定性、处理能力、带宽等因素影响,不同节点处理事件的能力差别较大。若系统中存在大量能力较弱的节点参与投票,同样会造成系统长时间无法达成共识。

3) 广域网环境下,节点频繁波动可能导致节点被分割成多个子网。根据gossip邻居交换协议,节点会周期性剔除长时间未更新的邻居。当邻居稳定后,节点可在子网内达成共识。此时若子网规模较小,很容易使恶意节点在同一轮产生两个famous witness事件,从而产生双花交易。

4) 随着系统规模增大,节点收到的同步信息越来越多,可以预见系统的吞吐率会随节点数目的增加而降低。

基于以上挑战性问题,InterValue提出HashNet共识机制。如图3所示,HashNet采用分层分片共识机制。上层网络中的节点称为全节点(full node),形成管理委员会,主要负责下层分片建立、下层分片重组、新局部全节点加入、局部全节点退出,不参与全局共识,也不参与记账,这避免了形成性能瓶颈的风险,极大的提高了交易吞吐量。下层网络中的节点称为局部全节点(local full node),形成各个分片,片内进行交易达成共识,采用后缀匹配法确保每笔交易只由一个特定的分片处理,避免了双重支付,同时片间通过异步机制同步各个片内的共识结果,从而达到每个局部全节点拥有全局账本。

图3 基于分层分片的HashNet共识框架

HashNet共识机制的主要优势在于:

1) 全节点和局部全节点具有较强的稳定性和处理能力,能够有效避免HashGraph长时间无法达成共识的问题,也能够避免因网络被分割造成的恶意节点攻击问题;

2) 与当前其他带分片的区块链项目相比,HashNet采用分布式异步分片重组,完全打破了集中式分片重组的机制,极大地提高了重组时的安全性;

3)交易共识不需要上层节点参与,交易达成速度极快(交易确认时间仅仅依赖于片内节点数量),更重要的是,交易吞吐量,即TPS,与下层分片数量成正比,即分片数量越多,TPS越高;

4)片内和片间节点均为对等,没有所谓的Leader,避免了潜在的中心化可能和性能瓶颈。

结语

在已发布InterValue 1.0测试版中,InterValue所使用的共识机制为基础DAG共识和BA-VRF共识相结合的双层共识机制。自InterValue 2.0版开始,基础DAG共识将替换为基于HashNet的DAG共识,InterValue的共识机制为HashNet的DAG共识和BA-VRF共识机制相结合的双层共识机制。DAG在安全性上已经不需再被担心,其卓越的性能也被得到充分的实现,让我们期待一下InterValue的HashNet共识机制为区块链技术带来的革命性进步。

发表评论
留言与评论(共有 0 条评论)
   
验证码:

相关文章

推荐文章

'); })();