分布式分类帐技术是一项强大且具有破坏性的创新,可以改变我们的社会并提高应用程序的生产率。根据著名的N.Virt公式“算法+数据结构=程序”,每个计算机程序的主要组成部分是算法+数据结构。区块链是一个分散的结构化系统,其中链表用作事务块的基本数据结构。应由共识算法确定有关应附加到哪些交易块的决定。有时,选择基本数据结构比选择特定的共识算法对速度,吞吐量,可伸缩性和事务处理成本的影响更大。大多数现有的区块链解决方案即使使用增加的资源也无法扩展其吞吐量,因为它们基于链表数据结构并增加了一些安全性,从而使其不可变且只能追加。研究人员和从业人员得出的结论是,用于事务存储的最自然的数据结构是有向非循环图(DAG)-无向循环的有限有向图。严格来说,基于DAG的分布式账本本身并不是区块链,但是具有这种结构的项目可以克服区块链设计的局限性,因此变得越来越受欢迎。让我们按时间顺序讨论现有的基于DAG的方法。 IOTA DAGIOTA发布了一项基于DAG的技术,称为Tangle。此概念用于解决物联网约束下的可伸缩性问题。同时,通过设置用户的难度,可以构造一个使用权重级别的临时站点来实现交易的一致性。为了解决重复支出和寄生虫攻击的问题,他们使用马尔可夫链蒙特卡洛提示选择算法根据累积交易权的大小随机选择提示。但是,如果一个事务与另一个事务发生冲突,则仍然需要检查所有过去的事务历史记录以查找冲突。 Byteball DAGByteball使用称为字节的内部支付系统。这用于支付将数据添加到分布式数据库的费用。每个存储单元相互链接,并包括一个或多个较早存储单元的哈希值。特别地,通过选择主链来形成共识等级,并且将主链确定为由最多根组成的根。大多数根使用主链的一致时间来检测重复支出。该费用根据字节大小收取,并且在确定根的过程中需要搜索和更新所有单元的列表。 Hedera Hashgraph Hashgraph是基于数据挖掘的异步分布式分类帐。每个节点由其自己的祖先连接,并通过八卦协议随机地传递已知事件。此时,可以通过“看到”与“看到”之间的关系来确定任何众所周知的节点。和“强烈看到”并在每一轮中迅速达成共识。他们指出,如果超过2/3的节点在事件上达成协议,则将分配事件的协议位置。幻像协商算法基于Lachesis协议,可进行广泛的DAG操作。该图的节点是事件,其中包含有关事务,事务的作者以及定义事件的拓扑顺序的Lamport时间戳的信息。可以从其初始状态以及直到当前状态的操作或事件的顺序来获得过程的状态。如果事件块由2n / 3个节点(已知)控制,则共识算法会将事件块附加到DAG。基于成本函数的机制将选择其他事件块在图中的位置。 Perlin DAGPerlin使用DAG共识协议提供了可伸缩的分布式分类帐协议。 Valanche声称它不需要选举任何形式的领导者(因此也无需选举领导者),而只是简单地“指导”选举。所有节点达成共识。该方法是通过DAG的亚稳机制部分实现的。亚稳态本质上是指系统旨在提供答案(即,所有节点以相同的方式投票)的概念,因此将无法保持平衡(因为如果系统保持平衡,则无法达成共识)。这些协议在拜占庭式对手面前提供了强大的安全保证概率,并且它们的并发特性使它们能够实现高吞吐量和可伸缩性。 Enecuum Hyperdag我们自己的方法Hyperdag将Nakamoto的区块链推广为DAG块,它使用了其他使用DAG的解决方案的最佳实践。与Hashgraph相似,DAG具有扩散性,可以在决定哪些交易有效且可靠时最大程度地利用其他历史记录。使用Hyperdag存储交易可以创建分支(b