区块链DAG(有向无环图)技术

DAG是面向未来的新一代区块链,从单链进化到树状和网状、从区块粒度细化到交易粒度、从单点跃迁到并发写入,这是区块链从容量到速度的一次革新。

01、什么是DAG?

DAG:Directed Acyclic Graph,中文意为「有向无环图」。

DAG原本是计算机领域一种常用数据结构,因为独特的拓扑结构所带来的优异特性,经常被用于处理动态规划、导航中寻求最短路径、数据压缩等多种算法场景。

再看传统区块链和DAG的区别,简单的说:

1)单元:区块链组成单元是Block,DAG组成单元是TX(交易); 

2)拓扑:区块链是由Block区块组成的单链,只能按出块时间同步依次写入,好像单核单线程CPU;DAG是由交易单元组成的网络,可以异步并发写入交易,好像多核多线程CPU;

3)粒度:区块链每个区块单元记录多个用户的多笔交易,DAG每个单元记录单个用户交易。

传统区块链技术存在的几个问题:

1)效率问题:传统区块链技术基于Block区块,比特币的效率一直比较低,由于BlockChain链式的存储结构,整个网络同时只能有一条单链,基于POW共识机制出块无法并发执行;例如比特币每十分钟出一个块,6个出块才能确认,大约需要一个小时;以太坊大幅改善,出块速度也要十几秒。

2)确定性问题:比特币和以太坊存在51%算力攻击问题,基于POW共识的最大问题隐患,就是没有一个确定的不可更改的最终状态;如果某群体控制51%算力,并发起攻击,比特币体系一定会崩溃;考虑到现实世界中的矿工集团,以及正在快速发展量子计算机的逆天算力,这种危险现实存在。

3) 中心化问题:基于区块的POW共识中,矿工一方面可以形成集中化的矿场集团,另一方面,获得打包交易权的矿工拥有巨大权力,可以选择哪些交易进入区块,哪些交易不被处理,甚至可以只打包符合自己利益的交易,这样的风险目前已经是事实存在。

4)能耗问题:由于传统区块链基于POW算力工作量证明,达成共识机制,比特币的挖矿能耗已经与阿根廷一个国家耗电量持平,IMF和多国政府对虚拟货币挖矿能源消耗持批评态度。

02、DAG起源

Nxt社区提出的DAG of blocks。

有人提出用DAG的拓扑结构来存储区块,解决区块链的效率问题。区块链只有一条单链,打包出块无法并发执行。如果改变区块的链式存储结构,变成DAG的网状拓扑可以并发写入。在区块打包时间不变的情况下,网络中可以并行打包N个区块,网络中的交易就可以容纳N倍。

此时DAG跟区块链的结合依旧停留在类似侧链的解决思路,交易打包可以并行在不同的分支链条进行,达到提升性能的目的。此时DAG还是有区块的概念。

DagCoin的思路,让每一笔交易都直接参与维护全网的交易顺序。交易发起后,直接广播全网,跳过打包区块阶段,达到所谓的Blockless。这样省去了打包交易出块的时间。如前文提到的,DAG最初跟区块链的结合就是为了解决效率问题,现在不用打包确认,交易发起后直接广播网络确认,理论上效率得到了质的飞跃。DAG进一步演变成了完全抛弃区块链的一种解决方案。

03、小结

凡事有利必有弊,DAG的速度快,吞吐量高,但作为一个很年轻的数据结构,安全性和一致性还有待更多验证和认可,应用场景也还不像传统区块链那么广泛;但DAG技术的优势和创新速度已经崭露头角,越来越多后继基于DAG的创新项目和DAPP正源源不断的迅速涌现。

猜你喜欢

转载自blog.csdn.net/akai9898/article/details/82289383