什么是加密货币中的有向无环图(DAG)?
首页
文章
什么是加密货币中的有向无环图(DAG)?

什么是加密货币中的有向无环图(DAG)?

中阶
发布时间 Jul 19, 2020更新时间 Dec 27, 2022
8m

目录


导语

当提到加密货币,我们脑海中会立刻浮现区块链或“分布式账本技术”等概念。自比特币问世以来,市场上已涌现出数百种加密货币,大多数的网络架构基础大同小异。用户通过这些数据结构即可转移价值或与去中心化应用程序交互。
在区块链当中,新区块会定期添加到不断增长的链上。每个区块都以某种加密链接(确切地说,即哈希值)连接到上一个区块。每个区块中都是用户已发布的最新交易。
但是,从发布交易到纳入区块,通常中间有一个等待期,就像在车站等待火车一样。根据车厢大小(区块大小)和候车人数(待处理的交易),乘客不见得能搭上下一班车,甚至再下一班也不一定能赶上。等待交易确认的时间从几秒到几个小时不等。
对许多人而言,这很划算。毕竟,这种方式安全性非常高,并且无需依赖中心化协调机构。还有些人则认为区块链技术终究会被淘汰。反对者认为,从长远来看,可扩展性问题将阻碍区块链技术大规模应用推广。

支持者则坚信,未来的加密货币支付网络会搭建在完全不同的架构,即有向无环图(或称“DAG”)之上。


什么是有向无环图?

有向无环图是一种截然不同的数据结构,可视作把不同信息连接在一起的数据库。“有向无环图”是一个信息量很大的概念,让我们来层层分解。


有向无环图。


从概念上来说,有向无环图类似上图所示,由顶点(球体)和(连线)组成。二者均有指向性,都朝向一个方向(如箭头所示),而且都无环,即没有循环,顶点不会回到最初起点,也就是说如果我们从一个点开始,沿着图形走,无法返回到同一起点。下面我们还将继续详细讲解。

这种数据结构通常用于数据建模。在科学或医学领域,有向无环图用来观察变量之间的关系,以及确定它们之间的相互影响。例如,我们利用这个图形建立营养、睡眠周期和身体症状等之间的联系,从而确定这些指标对患者的影响。

我们则更加关注,如何利用这个图形来达成分布式加密货币网络的共识


有向无环图如何运作?

基于有向无环图的加密货币,结构中每个顶点都代表一笔交易。其中不涉及区块概念,也没有扩展数据库所需的挖矿。因此,交易不会集中纳入到区块中,而是构建在另一笔交易之上。节点提交交易时,仍会存在少量工作量证明操作,这样可确保网络不会受到垃圾信息干扰,同时还验证了之前的交易。

要想添加新交易,必须建立在此前的交易之上。假设Alice创建一笔新交易。该交易要想获得确认,必须引用之前的交易,这有点类似于比特币中一个区块对前一个区块的引用,只不过这里必须引用多笔交易。 

在某些系统中,算法会选择新交易必须建立在哪些交易(或“末端”)之上。末端的累积权重越高,越容易被选中。累积权重能够衡量通往末端的路径中的确认数量。

Alice即将创建在上面的交易未经确认。但是,这些交易一经Alice引用,就会获得确认。Alice现在的交易尚未确认,因此,其他人必须在该交易被接受之前,在上面创建交易。

用户更愿意确认权重“较高”的交易,这样系统才能不断发展。否则,用户就会毫无顾忌地在旧交易上持续创建交易。

区块链能轻易防止双花问题的发生。同一笔资金不能在一个区块中使用两次,节点能轻易检测出此类尝试,并拒绝包含冲突交易的所有区块。矿工生产区块的成本非常昂贵,因此机制激励他们公平竞争。

有向无环图同样能够防止双花问题,机制类似,但没有矿工参与。节点在确认较旧的交易时,会评估追溯到有向无环图第一笔交易的整条路径,以确保发送方余额充足。路径可能会有很多条,但只需验证一条即可。



如果用户把交易建立在无效路径上,会导致自己的交易被忽略。或许这些用户的交易有效,但由于上一个交易无效,因此没人愿意去扩展这条路径。

乍看之下似乎不太直观——可不能存在一种情况,多种不同的分支之间根本就不知道彼此的存在呢?那么,会不会用户在不同的分支上花销同一笔资金?



确实有这种可能。但是通过选择算法给末端的累积权重加码,这个问题就能迎刃而解。也就是说,长此以往,某个分支会比其他分支更繁荣。较弱的分支遭到遗弃,网络会在权重最高的分支持续发展壮大。 

与区块链的情况相同,这种网络也没有绝对确认,我们永远无法完全确定交易是否会遭遇逆转。虽然可能性极低,但从理论上讲,比特币以太坊的区块可以“撤销”,导致其中所有的交易逆转。交易后添加的区块越多,这笔交易的安全性就越让人放心。这就是我们建议用户在投入资金前,先等待六次确认的原因。
在诸如IOTA缠结之类的有向无环图中,有一个概念叫做“确认置信度”。选择算法会运行100次,计算选取的末端中直接或间接批准的交易次数。百分比越高,交易保持“结算”状态的置信度就越大。

这样看起来似乎会导致用户体验变差。但其实并不会。如果Alice向Bob发送10枚MagicDAGToken,她不必担心是否选择了图表中的正确末端,因为她的钱包会在后台执行以下操作:

  • 选择权重大的末端(请记住,就是那些累积确认信息最多的末端)。
  • 沿着路径追溯回以前的交易,以确保末端有足够余额进行支付。
  • 达到以上要求,交易就会添加到有向无环图,创建的交易得以确认。
在Alice看来,这就是常规的加密货币运作流程。她输入Bob的地址和希望支付的金额,然后按下发送。以上列表就是每位参与者创建交易时,都会运行的工作量证明。



有向无环图的优缺点

有向无环图的优点

速度

没有出块时间限制,任何人都可以随时发布和处理交易。只要先确认较早交易,用户就不受提交交易次数限制。


无需挖矿

有向无环图不使用常规工作量证明共识算法。跟加密货币依赖挖矿维护区块链网络相比,有向无环图的碳足迹只是一个零头。


没有交易费用

因为没有矿工,用户无需为发布交易支付费用,但有时需对特定类型的节点支付少量费用。低廉费用(免费更好)对小额支付用户来说极具吸引力,因为高昂的网络费用会让他们白忙一场。


没有可扩展性问题

与传统区块链网络相比,有向无环图不受出块时间限制,每秒交易的处理数量要多很多。许多支持者坚信,这会让有向无环图在各类机器交互的物联网(IoT)用例中更具价值。


有向无环图的缺点

并非完全去中心化

以有向无环图为基础的协议具有各种中心化特性。有些人认为,这是启动网络的短期解决方案,但是有向无环图是否能在没有第三方干预的情况下蓬勃发展,仍需拭目以待。如果没有成功,就相当于网络向攻击向量敞开了大门,最终会严重受创。


未经大规模测试 

尽管基于有向无环图的加密货币已经问世几年,但要广泛普及还需假以时日。因此,未来用户在使用该系统时会享有怎样的激励机制,还很难预测。


总结

毋庸置疑,有向无环图会是一项构建加密货币网络的有趣技术。截至目前,使用该数据结构的项目相对较少,且尚未发展成熟。 
即便如此,只要有向无环图发挥潜能,肯定能为众多可扩展性生态系统提供源源动力。在需要高吞吐量且免费的领域,有向无环图技术有无数用例,例如物联网(IoT)和小额支付。