cover of episode 【科普 | 第 24 课】区块链的衍生技术:DAG有向无环图

【科普 | 第 24 课】区块链的衍生技术:DAG有向无环图

2019/4/18
logo of podcast 区块链情报局 | 比特币前沿

区块链情报局 | 比特币前沿

Frequently requested episodes will be transcribed first

Shownotes Transcript

本期我们为大家介绍区块链的衍生技术:DAG,中文名字是有向无环图。 我们说区块链目前还不成熟,有各种各样的问题,比如说处理速度慢、手续费高昂、存在安全隐患等等,这些都是用户最直观的体验,体验不是太好。区块链还有一个问题,那就是高并发问题。 高并发问题是怎么回事呢,我们简单说一下。高并发是计算机领域的问题,简单来讲,高并发问题就是系统无法顺利同时运行多个任务。很多任务同时运行,一大堆用户涌进来,系统承受不住这么多的任务,会出现高并发问题,你的系统就卡住了,就好比春运时候,12306系统总是卡住,有可能就是高并发问题造成的。

传统互联网尚且存在高并发问题,区块链网络自然也存在这个问题,毕竟区块链的成熟程度比起传统互联网,还有很大的差距。但是,如果没有安全、可靠和高效的公链,整个区块链产业的发展都将受到严重制约,应用落地也是空谈。在这种背景下,DAG技术就被提出来了,DAG的全称是“Directed Acyclic Graph”,中文翻译为“有向无环图”。 DAG有向无环图是怎么回事呢,它到底能起到什么作用呢?我们下面解释一下。 一、DAG:一个新型的数据结构** DAG,中文名字叫“有向无环图”,从字面意思看,“有向"就是说它是有方向的,“无环”就是说它是没有环路的、不能形成闭环的。所以,DAG其实是一种新型的数据结构,这个数据结构是有方向的,同时又是不能形成闭环的。 传统的区块链结构(图一):

DAG有向无环图结构(图二):

传统区块来讲,我们总是以“区块”为单位,一个区块里往往包含了多笔交易信息。而在DAG中,没有区块的概念,而是以“单元”为单位,每个单元记录的是单个用户的交易,组成的单元不是区块,而是一笔笔的交易,这样一来,可以省去打包出块的时间。 简单来说,区块链和DAG有向无环图最大的区别就是:区块链是一个接一个的区块来存储和验证交易的分布式账本,而DAG则是把每笔交易都看成一个区块,每一笔交易都可以链接到多个先前的交易来进行验证。 二、DAG的工作原理** 传统区块链上,就拿比特币来讲,它是单链式的结构,区块与区块之间按照时间戳的先后顺序排列开来(如图一),数据记录在一条主链上。用不太恰当的比喻来讲,这个“单链式”结构是一条一字排列的链。区块链只有一条单链,打包出块就无法并发执行。新的区块会加入到原先的最长链之上,所有节点都以最长链为准,继续按照时间戳的顺序无限蔓延下去。 而对于DAG来讲,每个新加入的单元,不仅只加入到最长链的一个单元,还要加入到之前所有的单元(如图二)。举个例子:假设我发布了一个新的交易,此时DAG结构已经有2个有效的交易单元,那么我的交易单元会主动同时链接到前面的2个之中,去验证并确认,直到链接到创世单元,而且,上一个单元的哈希会包含到自己的单元里面。 换句话说,你要想进行一笔交易,就必须要验证前面的交易,具体验证几个交易,根据不同的规则来进行。这种验证手段,使得DAG可以异步并发的写入很多交易,并最终构成一种拓扑的树状结构,极大地提高扩展性。 依据DAG有向无环图,每一笔交易都直接参与了维护全网。当交易发起后,直接广播全网,跳过矿工打包区块阶段,这样就省去了打包交易出块的时间,提升了区块链处理交易的效率。 随着时间递增,所有交易的区块链相互连接,形成图状结构,如果要更改数据,那就不仅仅是几个区块的问题了,而是整个区块图的数据更改。DAG这个模式相比来说,要进行的复杂度更高,更难以被更改。 总结一下,DAG作为一种新型的去中心化数据结构,它属于广义区块链的一种,具备去中心化的属性,但是二者的不同之处在于: 区块链组成单元是Block(区块),DAG组成单元是TX(交易)。 区块链是单线程,DAG是多线程。 区块链所有交易记录记在同一个区块中,DAG每笔交易单独记录在每笔交易中。 区块链需要矿工,DAG不需要矿工。 三、DAG的代表:IOTA** DAG当前的代表项目,最知名的无疑就是 IOTA。可以说,正是因为IOTA这个币种在2017年下半年冲进市值排行第四位,才使人们真正认识到了它的底层技术:DAG有向无环图。 IOTA在DAG有向无环图的基础上提出了“缠结”概念,在IOTA里面,没有区块的概念,共识的最小单位是交易。每一个交易都会引用过去的两条交易记录哈希,这样前一交易会证明过去两条交易的合法性,间接证明之前所有交易的合法性。这样一来, 就不再需要传统区块链中的矿工这样少量节点来验证交易、打包区块,从而提升效率,节省交易费用。 四、DAG的现状** 尽管理论上来讲,DAG有向无环图能够弥补传统区块链的一些弊端,但是目前并不成熟,应用到数字货币领域的时间也比较短,还比较年轻 。它没有像比特币那般经过长达10年的时间来验证整个系统的安全性,也没有像以太坊那般实现了广泛的应用场景。不过,现在有些声音提出要采用“传统区块链+DAG”的数据结构,但是还没有非常突出的案例,这里就不多说了。 总结一下,今天我们介绍了区块链的衍生技术:DAG有向无环图,这是一种全新的数据结构,可以对区块链处理交易的效率、并发力达到显著的提升,目前DAG技术的代表币种是:IOTA,IOTA在此基础上提出了“缠结”概念,它是一种可扩展的、轻量级的,还能在无需任何费用的前提下进行价值转移的技术。