DAG技术能够解决区块链的瓶颈问题吗?
发布:中币网 时间:2018-10-24 15:59:54 加入收藏 打赏
虽然现在数字HB行情不佳,但是区块链技术却是热度不减,上至各国ZF下至各路公司企业都在积极研究和应用。但是,一直有些阴影笼罩在区块链技术头顶之上并挥之不去,你比如交易速度慢、时不时的拥堵、交易费贵等等问题。
这些问题目前不但已经严重影响到区块链应用的落地,更是关系到数字HB市场的复苏,因为只有技术的进步和瓶颈的突破才是大量公链及数字HB价值内生的根本所在。对此,区块链行业的各路大牛和精英都在探索和研究中并提出了许多解决方案,你比如区块扩容、分片、侧链等等(彼得曾在《闪电网络三部曲》文章中有较详细的介绍)。而除了这些在现有区块链框架下改进的方案之外,还出现了一项不同于区块链技术的解决方案,那就是DAG技术。
什么是DAG?
DAG(Directed acyclic graph),有向无环图,是计算机领域一个常用的数据结构。我们知道,区块链技术是一种链式数据库结构,每个区块就像铁链一样,环环相扣,而DAG其实与数组、排列、区块链一样,也是一种数据结构。因为其独特的拓扑结构所带来的一些特性,经常被用到处理动态规划、导航中寻求最短路径、数据压缩等场景中。
DAG和区块链对比,是没有区块的概念,不是把所有数据打包成区块,再用区块链接区块,而是每个用户都可以提交一个数据单元,这个数据单元里可以有很多东西,比如交易、消息等等。数据单元间通过引用关系链接起来,从而形成具有半序关系的DAG(有向无环图)。
(图片来源网络)
第一次提出DAG跟区块链结合是在Nxt社区,最初是为了解决区块链的效率问题而被提出。前文说了,比特币的效率一直比较低,基于工作量证明共识下的出块机制是一个原因(由于链式的存储结构,整个网络中同时只能有一条链,导致出块无法并发执行)。于是社区有人提出用DAG的拓扑结构来存储区块,即,不同的链条存储不同类型的交易,这样降低出现双花的可能,在之后某个节点需要合并的时候,几个分支再归并到一个区块。可以看出,这个时候更多还是类似侧链的解决思路,但后来随着DAG的理论不断的延伸和,最终DAG演变成了一种完全抛弃区块链的解决方案。
那么,具体讲,传统区块链和DAG到底有什么区别呢?
我们用图来对比一下,区块链是一种链式数据结构,如下图:
(图片来源网络)
而DAG的数据结构则可以用下图来表示:
(图片来源网络)
在上图中,1和2号是创世节点;第3个节点产生时,只需要确认1号和2号的交易;第4个节点产生时,只需要确认2号和3号,以此类推。
上图是已经经过拓扑排序后的图,比较好理解。它也可以表示成网络图结构,如下图:
(图片来源网络)
归纳一下,区块链和DAG技术可以分为3点不同:
1)单元:区块链组成单元是Block,DAG组成单元是TX(交易);
2)拓扑:区块链是由Block区块组成的单链,只能按出块时间同步依次写入,这就好比单核单线程CPU;DAG是由交易单元组成的网络,可以异步并发写入交易,好像多核多线程CPU;
3)粒度:区块链每个区块单元记录多个用户的多笔交易,DAG每个单元记录单个用户交易。
总结来说,对于链式网络的区块链而言,不是节点的处理能力不强,只是链式结构不能并行计算,浪费的时间其实主要为等待时间:一个是发起交易,需要将交易同步所有节点,另一个是当有一个节点确认,需要向全网同步。而对于DAG而言则不存在这样的问题,钱包发起交易时不需要等待自己之前有多少交易,只需要经历局部校验、全网广播、其他局部校验,相当于是把交易确认分散化,每一个节点都在做类似于拼图的工作,把自己的和别人确认的交易拼接起来。DAG最初跟区块链的结合就是为了解决这个效率问题,现在不用打包确认,交易发起后直接进入确认网络,理论上效率自然提高很多。
DAG的核心原理
与区块链不同,DAG将最长链共识改成最重链共识。传统区块链上,新发布的区块会加入到原先的最长链之上,并且以所有节点都认为最长的链为准,依次无限蔓延。而DAG中,每个新加入的单元,不仅仅只加入到长链里的一个区块,而是加入到之前的所有区块:假设当你发布新交易时,前面有两个有效区块,那么你的区块会主动同时链接到前面两个之中,DAG 中的每个新单元,验证并确认其父单元,以及父单元的父单元,慢慢可达创世单元,并将其父单元的哈希包含到自己的单元里面。随着时间递增,所有交易的区块链相互连接,形成图状结构,如若要更改数据,那就不仅仅是几个区块的问题了,而是整个区块图的数据更改。DAG这个模式相比来说,要进行的复杂度更高,更难以被更改。下图是一个网状的DAG结构:
(图片来源网络)
DAG的优势
1、交易速度快
由于DAG摒弃了区块概念,交易直接进入全网中,可以实现的局部处理和并行结算,所以交易速度预期比基于pow和pos的需要出块的区块链会快不少。
2、拓展性强
因为各个节点无需等待同步其他的节点的数据就可计算使得记账节点很容易答复延展,因此DAG很适用于物联网类项目,例如机器微支付(这是一个非常有想象空间的领域)。
3、作恶难度更大
相比于链式结构,在DAG中恶意修改的难度会大很多,因为DAG拥有着很多的出度和入度,假如要修改某一个节点,那么对应的出入度都要进行修改。
4、无需挖矿
DAG把交易确认的环境直接下放给交易本身,无需由矿工打包成区块后同意交易顺序。所以DAG网络中没有矿工的角色。
5、无手续费
以DAG代表性项目iota为例,在它的tangle网路中,交易发起只需要做简单的POW工作量证明,整个网络中的POW都是发起交易者自己做的,而不是交给矿工。发起交易无需手续费。
6、需要见证节点
不管是iota还是byteball,目前的网络结构中,还是需要见证人机制的存在。可见,完全的去中心化确实很难做到,无论是DPOS、POS、PBFT还是现在的DAG,大家最终都会在效率、安全性上寻求一种平衡。
DAG的发展前景
和传统的区块链技术对比,DAG技术才刚刚起步,有很多不完善的地方,你比如安全性和一致性还有待更多的验证、应用场景做不到传统区块链那么广泛等等。但正式上述所言,DAG和区块链对比有着非常多的优势,如DAG技术的代表项目,大名鼎鼎的IOTA,它的的TPS(每秒交易次数)可以达到600-900笔,已经超过paypal的交易能力,而随着应用的人更多,执行效率会更高。这也是DAG技术与区块链技术最大的不同:区块链技术的效率会随着应用的增加而降低,而DAG却恰恰相反,用的人越多就越可靠、越安全。目前已经涌现出基于DAG技术的项目,如三驾马车IOTA、Byteball(字节雪球)、Nano(原名RaiBlocks XRB)等。所以,对于DAG技术非常值得我们投资人关注和研究,或许区块链3.0真的出于此。
我是彼得,一个有思考的价值号,助你成长和收获!
【原创不易,日更唯艰,若觉得有点价值,
小伙伴的转发就是对彼得最大的打赏!】
三非彼得公众号:sf-btc
来源:链向财经
来源:中币网 https://www.zhongbi.net/news/blocknews/170794.html 声明:登载此文仅出于分享区块链知识,并不意味着赞同其观点或证实其描述。文章内容仅供参考,不构成投资建议。投资者据此操作,风险自担。 此文如侵犯到您的合法权益,请联系我们3111859717@qq.com,我们将第一时间处理。