计算机科学中的 DAG 指什么?
在计算机科学中,DAG 是有顶点和边的有向图,每个节点都与其他节点相互连接。DAG 是一种方便的数据结构,计算机科学家和数学家可以通过 DAG 对连通性、概率和因果关系进行建模。
DAG 另一个重要的点是其非循环特性,意思是它不是一个完整的回路/循环,意味着同一个节点无法被访问两次。
加密货币和区块链中的 DAG 是什么?
DAG 在加密货币或设计其他分布式账本技(DLT)中也发挥着重要作用,因为相对于传统的区块链来说,DAG 速度更快。
区块链中,各个区块互相连接来存储和检索信息,而 DAG 则使用顶点和边来实现这一目的,即用顶点存储加密货币或区块链交易。由于 DAG 使用拓扑顺序,顶点彼此之间是重叠的。
基于 DAG 的加密货币或 DLT 可以选择使用工作量证明(PoW),也可以选择不使用。因此,要使分布式账本技术不通过挖矿即可工作,需要比以太坊等传统区块链解决方案更快、更节能的方式。
此外,DAG 还提高了数据存储效率,被视为在线支付和交易的区块链替代品。
最后,创建DAG节点/顶点可以使交易过程即时发生。也就是说,DAG 提升了网络稳定性和可扩展性。
DAG 是如何工作的?
加密货币领域的 DAG 的工作原理是在顶点(节点)存储数据。这里的节点结构代表交易信息。由于不涉及“区块”这一概念,因此创建、验证和扩展区块链不需要挖矿。DAG 可以让交易即时写入相互重叠的顶点中。
基于 DAG 的加密货币使用工作量证明(POW)或其他共识算法来验证交易以确保达成共识。
为便于理解,我们来看以下例子。
交易员小王发起了一笔交易,将基于 DAG 的加密货币转给小张。新交易发起后,DAG 引用上一个交易对其进行验证,确保交易可靠。
基于 DAG 的加密货币或 DLT 的共识算法依赖于 tip 来确定由哪个节点来验证交易。因此,节点在交易验证中拥有重要的话语权,节点是根据其累积权重(交易确认数)来选择的。
小王的交易在被他本人或在他的交易之上建立交易的其他人引用之前,处于未确认状态。只有高权重节点才可能继续验证交易以确保网络的正常增长。
DAG 如何防止“双花”?
DAG 节点能够检测“双花”问题,通过验证之前的交易并查看发送者的余额是否充足,甚至可以追溯到发送者的第一笔 DAG 交易。如果发送者余额不足,交易会被拒绝。即使有多条路径存在,DAG 也只需要验证其中一条。相比之下,区块链的防双花机制更加可靠,但可能消耗比 DAG 更多的能量和时间。
下图直观地展示了 DAG 的工作原理。
DAG 的算法总是优先选择累积权重较大的节点,以解决多个分支相互不了解的问题。这样,新交易大多通过 tip 连接起来,并且在验证的时候会始终参考之前的交易。随着网络的增长,较弱的路径会被丢弃。
区块链中,一笔交易在经过六次确认后即会被视为“已花费”。
总的来说,DAG 的任务如下:
- 选择累积权重较大的节点。
- 遵循先前的交易路径,确保 tip 不会被双花且有足够的余额来支付。
- 交易一经确认便将其添加至网络。
DAG DLT 用例
Iota Tangle
Iota 采用 Tangle(一种 DAG 共识算法),通过与前两笔交易相连来进行验证。这种方法的好处在于,每添加一笔交易都会使网络变得强大。同时,它不需要通过挖矿来达成共识。
为了停止双花,Iota 包含的交易不超过交易的 1/3。这样一来,没有人可以控制整个链,也便无法进行双花。
但 IoTa Tangle 并非真正去中心化,它采用了一个称为“协调器(Coordinator)”的中心化节点。尽管如此,它通过监督交易并确保不发生争端来保证整个网络的运行。
Hedera Hashgraph
Hedera Hashgraph 是一家公共企业分布式账本,使用 DAG 而非区块链。跟 Iota Tangle 一样,它也不是真正去中心化的,它受谷歌、波音和德国电信等组成的全球商业领袖委员监督。
Hashgraph 的底层协议是 Gossip。该协议中,节点通过共享信息并达成共识来批准交易。每添加一笔交易都会将审计跟踪附加到分布式分类帐中。
基于 DAG 的加密货币用例
Obyte
Obyte 是一种基于 DAG 的分类帐创建的流行的加密货币,其交易流程没有中间人的参与,但使用验证者系统来防止双花的发生。
Nano
Nano 是一个零手续费的去中心化平台,使用一种名为区块格的有向无环图。Nano 网络速度快,并且不收取任何费用,其架构结合了区块链和 DAG,创造性地实现了去中心化。
DAG 与区块链
从根本上说,DAG 和区块链是两个不同的概念,但二者都属于分布式账本技术。为了更好地理解,我们来详细介绍它们的区别。
结构
区块链的网络结构由通过区块链互相连接的节点组成,时间顺序不可更改。此外,交易被打包成块并进行验证和存储。当新的交易发生时,它们会被添加到一个区块中并与前一个区块连接以进行验证。
DAG 采取拓扑排序,其中每个节点代表一个交易。节点链用于引用之前的交易并防止双花。树状结构可以有多个路径,但新交易只需要追踪一个路径就能得到验证。
共识
基于区块链的分布式账本技术在很大程度上依赖于工作量证明。它需要参与节点进行挖矿(一种会消耗大量算力和资源的行为)。参与的矿工通过验证交易获得奖励。
DAG 的工作方式是分别验证每笔交易,它用之前的交易作为验证依据,验证者和矿工均参与其中。交易基本是免费的。
DAG 的优缺点
DAG 有哪些优点和缺点呢?接下来,我们将进行详细讨论。
DAG 的优点
- DAG 速度很快,因为不需要矿工添加顶点。此外,DAG 拓扑排序可以快速检查之前的交易路径来防止双花。
- DAG 不挖矿,节能环保。
- 没有矿工参与,验证费几乎为零。
- DAG 具有高度可扩展性,每秒可处理的交易比传统区块链网络多。
DAG 的缺点
- DAG 的目的是成为半去中心化的,而非完全去中心化。大多数 DAG 协议都具有中心化性质。
结语
有向无环图 (DAG) 是一种很好的区块链替代方案,解决了区块链存在的关键问题,是一种快速而有效的分布式账本技术。但它并非完全去中心化,而是依赖于理事会或中心化节点来监督交易,防止争端,让一切在设定好的规则下运行。