【大文观链】透析DAG:区块链结构扩容的双刃剑
摘要: DAG结构的核心是,使节点不需要用线性方式处理每一笔交易。
链得得注:大文观链,是链得得APP新推出的区块链技术分析系列栏目。由链得得APP作者马文佩伴随诸位用户,对区块链、数字货币市场中前端技术方案进行应用层讲解与热点事件的技术层分析。每个工作日与大家一同分享“链圈技术宅”的那些头脑日常。
为了解决扩容问题,全世界区块链技术人员提出了众多解决方案,力求在保证安全性、去中心化和高吞吐量中获得一个新的平衡。目前常见的解决方案有此前我们讲过的链下交易(Off Chain)、分片(Sharding)、有向无环图(DAG)、侧链等。今天为大家介绍DAG。
DAG本身是一个数学概念。在图论中,如果一个有向图从任意顶点出发无法经过若干条边回到该点,则这个图是一个有向无环图(DAG图)。因为有向图中一个点经过两种路线到达另一个点未必形成环,因此有向无环图未必能转化成树,但任何有向树均为有向无环图。
这种结构常常被用在计算机系统当中,并不是什么新鲜理论。因为独特的拓扑结构所带来的一些特性,经常被用到处理动态规划,导航中寻求最短路径,数据压缩等场景中。而在区块链扩容的过程中,开发者们也尝试利用DAG结构优化区块链传统的单一链状结构。
众所周知,区块链问题的根源来自于对比特币系统安全和稳定性的考量。最初,中本聪将区块大小限制在 1MB。如果按照每笔交易占 250B,平均每十分钟产生一个区块的速度计算,比特币网络理论上每秒最多可以处理 7 笔交易。如果要提高TPS,同时仅生成一个区块显然会导致效率低下。DAG结构的核心是,使节点不需要用线性方式处理每一笔交易。
基于这样的结构,目前DAG结构在解决区块链扩容问题时有两种应用方式。
1、以IOTA为代表,丢弃了全局的线性区块概念,使用 DAG 数据结构来维持系统状态。彻底放弃“区块“,让每一笔交易都直接参与维护全网的交易顺序。交易发起后,直接广播全网,跳过打包区块阶段,实现“无区块”。这样省去了打包交易出块的时间,让整个系统运作效率更高。IOTA采用的Tangle结构就是基于DAG全新设计的分布式账簿结构,是一个既没有块也没有链的区块链。在Tangle中,每一个节点代表的是一个交易。IOTA里没有区块的概念,也没有挖矿和矿工的概念,这就代表没有交易费,整个网络的吞吐量也很高。
2、以PHANTOM为代表,使用DAG结构将区块串联起来,在区块打包时间不变的情况下,网络中可以并行打包N个区块,网络中的交易就可以容纳N倍。并行打包意味着可以并行挖矿,从而带来更大的吞吐量和更快的交易确认时间。在DAG应用区块链的网络中,每一个区块都有相邻的区块可参照,关注其中一个区块,可以发现其能与其他区块相连打通,体现了高度的可用性。
DAG结构看似解决了区块链扩容的难题,但却带来了更大的挑战。一方面,区块之间打通之后,挖矿行为将由于发生频繁有可能导致更多的硬分叉,一致性将遭到挑战。同时更为严重的是:区块不再遵循序列来排列之后,在各区块里的交易冲突事件将会大幅提升,比如双花问题(double spending)。IOTA直接放弃了区块,PHANTOM采用的方案是利用投票机制解决冲突和一致性问题,并避免硬分叉,但这也带来了更高的安全风险。
总而言之,DAG结构虽然可以在一定程度上解决区块链扩容的难题,但实际上依然有更多问题没有解决,依然有技术难关需要攻克。
评论(0)
Oh! no
您是否确认要删除该条评论吗?