细说区块链共识机制之DAG

提到DAG,大家对它的看法是褒贬不一,相对于其他的共识机制也更具有争议性。就目前而言,关于DAG的区块链项目有艾欧塔,纳诺等等。

传统区块链上,新发布的区块会加入到原有的最长的链上面,并且以所有的节点都认为最长的链为准,依次无限延伸。而DAG中每个新加入的单元不仅仅只加入到长链区块,而是加入之前的所有区块。假设当你发布新的交易的时候,前面有两个有效区块,那么你的区块会主动同时链接到前面两个区块之中。

DAG中的每一个新单元验证并且确认其父单元以及父单元的父单元。慢慢的可以达到创世单元,并且将其父单元的哈希包含到自己的单元内,随着时间的递增,所有交易的区块链相互连接形成图状结构。如若要更改数据,那不仅仅是几个区块的问题,而是整个区块图数据的更改。

最出名的DAG的应用技术项目就是艾欧塔,艾欧塔改进了DAG,并且提出了缠绕方案,即要验证新的交易前,只要直接验证之前的两个交易,这也使得这两个交易之前所有被验证过的交易得到了间接的验证。在艾欧塔的缠绕中,有一个权重积分的概念,是指它自身的权重与他验证的过程所有交易的自身权重之和。

在DAG结构中。交易总是自己创建并且发布。从理论上看,攻击者总是可以构建比他要推翻的那个交易权重更高的交易用以双花。DAG与链式结构的本质区别在于异步与同步通讯。

异步通讯能够才来吞吐量的提升。但是可能产生的问题在于无法有效预测交易被确认的时间和周期,并且操作之间的顺序无法最终在多个节点确保一致。

DAG暂时还存在一些理论上未突破的局限性。包括在对历史交易验证时采用随机的方式而没有任何的先后顺序,那么有可能产生某些交易在极端的情况下没有任何其他节点对其验证,从而永远不会被确认。

为了追踪每一次交易与之前交易的关系,整个DAG图谱需要被随时检阅和访问,在一个比较大规模的系统中,其交易图谱的溯源会非常的复杂,几乎不可能会被全部保存在内存里以进行实时更新。由于DAG得操作记录写入顺序不存在区块和日志这类的检查点机制。因此每个节点各自为政。对于全局的顺序无法得到保障。在这种情况下,在非等阶操作时可能存在不一致的问题。

虽然DAG现在还存在大大小小的问题,但是从长期来看。DAG是一个非常新颖并且有前景的机制。我刚传统数据管理领域的思维打开啦新的大门。

你可能感兴趣的:(细说区块链共识机制之DAG)