注册
关闭
区块链大帝

区块链大帝

发布于 4周前 阅读数 3120

技术分享 | 破解有关DAG的三大误解

作者:Steven Pu

前言

我们目前采用的是Zohar和Sompolinsky最先提出的区块DAG拓扑结构。但是,最近我们注意到,每次介绍项目时,听众似乎总会对DAG是什么或者其与区块链技术的关系产生很多误解。

本文我们会针对一些常见问题进行解答,希望能够帮助大家消除一些误解。

误解1: DAG有别于区块链

简单来说,DAG和区块链是完全不同的概念,因此根本不能放在一起比较。我们来看看他们到底是什么。

DAG(有向无环图)是应用于数据结构的数学模型。它由与单向边相连的顶点组成,且没有一条路线是从某个顶点开始沿着这些边走最后再回到同一顶点的——也就是说,它是非循环的。

本质上,DAG是一种低级数据结构,可用于对多种类型的数据进行建模(尤其是具有依赖关系的网络),例如对电子表格单元格的依赖,数字电路的组合逻辑,亦或是诸如贝叶斯网络的因果系统。DAG数据结构具有许多有趣的数学属性,有助于简化与这些类型数据相关的问题。

而关于区块链的更多信息,可以阅读我之前写的文章“什么是区块链?”。不过,区块链本质上是一个网络化系统,它能够让实体提交语句,就现实达成一致,并复制记录。虽然这些功能本身各自并没有独特之处,但结合起来就能创造出一些有趣的属性,而这些属性在区块链技术中是独一无二的,例如不可变性以及有保证的排序等。

这样一来,我们立马就能看出这两者是不匹配的。DAG是数据结构,而区块链是系统。或者说,DAG是一个抽象模型,而区块链是一个应用程序。将这两者放在一起比较,就好比将三角形与摩天大楼进行比较。在设计摩天大楼时或许会在几何计算中用到三角形的概念,但两者根本不同,所以无法进行比较。

那么,这个误解从何而来?这是因为在区块链的设计中,基于DAG的拓扑结构与基于单链的拓扑是完全不同的。DAG只是组建区块链数据结构的一种替代方式。

Taraxa也采用了区块DAG的拓扑结构,下图是我们白皮书中的一张图解。

技术分享 | 破解有关DAG的三大误解

区块链系统中的单链结构区块vs区块DAG拓扑

但是,所有采用DAG拓扑的区块链都一样吗?这就引出了关于DAG的第二大误解。

误解2: 所有基于DAG的区块链系统都是一样的

技术分享 | 破解有关DAG的三大误解

我们经常会遇到一些社区成员,他们对同样采用DAG拓扑的另一个区块链系统也有所了解,于是他们就会将另一个系统的所有特征叠加到Taraxa上,包括一些技术缺陷或挑战。

在这里,我们简要介绍下其他几个采用DAG拓扑结构的早期区块链项目,以及它们与Taraxa设计上的不同。

IOTA可能是第一个向市场展现了区块链技术如何让物联网设备受益的项目,同时他们还提出了一种截然不同的共识算法来利用DAG。IOTA通过随机进入DAG来验证交易,这个方法最终使得网络要依赖于中央协调者来维持顺序和正确性,否则该网络将无法正确处理双花等问题。而Taraxa的排序机制定义很明确,且不依赖于中心化协调。

Byteball(字节雪球)采用的是没有区块的DAG拓扑结构。该项目与众不同之处在于其共识功能,也就是在DAG内寻找主链从而确定排序,并通过定期快照(ball)来限制排序的计算复杂性。但是,它需要依靠12位“受信任”的见证人,所以被认为是高度中心化的。同样的,Taraxa的排序机制已经很好的实现了去中心化。

Nano和IOTA或Byteball不太一样。在这个项目里,每个帐户都有其自己的链(区块格),每个链的排序由链的所有者确定,且每个交易都需要分成收款-付款两笔款项并由双方分别记录。从某种意义上说,Nano是一个您可以在不同链上的交易之间绘制有方向的边的“DAG”,但它在结构上与IOTA或Byteball有很大不同。不过,Nano的块格结构设计高度优化了代币交易,而非智能合约。相比之下,Taraxa则具备通用的并发智能合约系统,可在交易处理期间最大化垂直并发。

那么为什么要采用DAG,或者说为什么要完全采用区块DAG呢?

误解3: DAG区块链是物联网的最佳拍档

技术分享 | 破解有关DAG的三大误解

Taraxa的主要目标是让物联网生态系统变得更可信、更自主、更有价值。但是,这与其区块DAG拓扑关系并不大。

之所以选择块DAG拓扑,是因为它能够在不牺牲安全性的情况下提高吞吐量(更多信息请参见之前写的文章“单链的艰难权衡”和“区块DAG与PoS”)。区块DAG的结构具有包容性,它能够接受所有分支,所以提高了总吞吐量。 而安全性难题则是通过查看每个区块用来指向多个父块的指针(pointer)来解决——指针作为投票会转化为一个权重评级,称为GHOST规则。通过此规则,我们可以计算出区块DAG中的一条锚定链,然后根据锚定链上每个锚定块推出的时间来建立一个确定的顺序。

所以,区块DAG是因其高吞吐的特性而被选用为拓扑结构,但这绝不意味着它就是物联网或任何其他用例的“理想选择”——它确实适用于所有用例,因为没有用例会需要低吞吐。但与此同时,物联网数据的锚定(在我们物联网应用中是很关键的用例)确实需要很高的吞吐量,而区块DAG拓扑结构就很适合构建高吞吐量的区块链系统。

希望这篇文章能够帮助大家解除一些对DAG和区块链的常见误解。

未来我们还会继续更新,敬请期待!

  • 0
区块链大帝
区块链大帝

0 条评论