区块链是一个去中心化的数据库,但是去中心化的数据库却不仅仅指区块链,因为还有一种技术叫做DAG,它也是分布式账本技术。
1:什么是DAG
DAG,中文名"有向无环图"。"有向"指的是有方向,准确的说应该是同一个方向,"无环"则指够不成闭环。在DAG中,没有区块的概念,他的组成单元是一笔笔的交易,每个单元记录的是单个用户的交易,这样就省去了打包出块的时间。验证手段则依赖于后一笔交易对前一笔交易的验证,换句话说,你要想进行一笔交易,就必须要验证前面的交易,具体验证几个交易,根据不同的规则来进行。这种验证手段,使得DAG可以异步并发的写入很多交易,并最终构成一种拓扑的树状结构,能够极大地提高扩展性。
上面这张图是区块链,其中黑色的是最长链,也是全网的唯一主链。紫色的是分叉链,随着出块数量的增多,由于没有得到认可,最终被抛弃。
上图左右这两张图都是DAG。但他们是不一样的。左边这张图是IOTA的"缠结Tangle",使用者每发起一笔交易,需要验证前面两笔交易,后面这张图是普通的DAG,对验证次数没有限制。
2:DAG与区块链相比的优缺点
区块链目前有什么问题呢,说白了就是一句话,在保证去中心化和安全性的前提下无法大幅度的提高扩展性,导致难以商业化运用。而DAG,理论状态下是去中心化的、如果网络足够强大,安全性也可以保证,更重要的是能够大幅度的提高扩展性,采用DAG技术的分布式数据库,起步就可以把TPS做到10万 ,还能把交易费用做到极低。
既然DAG这么完美,是不是就可以完全替代区块链呢?当然不是,事实上,DAG也有自身的缺陷性。
1:交易时长不可控。DAG的验证规则是后面的交易验证前面的交易,这就很容易出现最后的交易迟迟无法被验证的情况,尤其是在整个网络发展的初期节点数量比较少的情况下,造成交易时长无法预测。当然,解决方法也是有的,但是不管是见证人还是其他超级节点机制,都在一定程度上违背了去中心化。
2:不支持强一致性。DAG作为一种谣言传播算法,其异步通讯机制在提高了扩展性的同时也带来了一致性的不可控问题。区块链是同步操作的验证机制,能够保证较高的一致性。但是DAG作为异步操作,它不存在一个全局的排序机制,在运行智能合约时,这就很可能会出现节点间所存储的数据在运行一段时间以后出现偏差的情况。
3:安全性还没有得到大规模的验证。DAG技术并不新鲜,但是应用到去中心化账本领域确是近几年的事情。他没有像比特币那般经历过长达10年的安全验证。这是他目前大规模的部署DAPP的最大障碍。
DAG技术作为区块链的一个有益补充,其异步通讯机制在提高扩展性、缩短确认时间和降低支付费用方面优势明显,未来在去中心化技术领域将来也会有一席之地。但其安全性和一致性的问题也亟待解决。相信随着以后技术的发展,这些问题也会得到逐步改善。老马也比较看着这方面的发展。
读懂 DAG(有向无环图)技术
在区块链领域从来不缺少专业的技术词汇,比如非对称加密技术、分片技术、DAG技术……可以这么说,不懂点技术,连白皮书都看不懂。今天,将为大家介绍一种新的区块链技术——DAG技术
一、产生的原因
我们都知道底层公链是区块链技术落地的基础,只有公链技术成熟,区块链应用才能走进千家万户。但长久以来,公链一直存在处理速度慢、费用高、存在安全隐患等问题,如果没有安全、可靠和高效的公链,整个区块链产业的发展都将受到严重制约。
在这种背景下,DAG技术应运而生,被用于解决公链上的各种问题。
二、什么是DAG技术?
DAG即有向无环图,是不同于主流区块链的一种分布式账本技术,把同步记账提升为异步记账,被不少人认为可以解决传统区块链的高并发问题,是区块链从容量到速度的一次革新。
以DAG为网络基础,解决了区块链的局限性。这允许区块链以微小的成本进行无限的扩展。支付过程很快就能完成。不过,目前还只有一小部分加密货币在使用下一代DAG体系结构。
三、DAG技术的特点
DAG相比于目前的公链技术,其实是图和链的区别,对于链而言,无法只处理一个局部,因为链的入度和出度只有一个,不能把链上的节点拆成好几个节点去处理,但是对于图却可以,因为图可以有多个出度,那么可以同时处理多个出度连接的节点。所以,它的特点是:
1、交易速度块,DAG实现的局部处理和并行结算可以使得交易速度大幅度提升。
2、拓展性强,因为各个节点无需等待同步其他的节点的数据就可计算使得记账节点很容易答复延展,因此DAG很适用于物联网类项目,例如机器微支付。
3、作恶难度更大,相比于链式结构,在DAG中恶意修改的难度会大很多,因为DAG拥有着很多的出度和入度,假如要修改某一个节点,那么对应的出入度都要进行修改。
对于链式网络而言,不是节点的处理能力不强,只是链式结构不能并行计算,浪费的时间其实主要为等待时间:一个是发起交易,需要将交易同步所有节点,另一个是当有一个节点确认,需要向全网同步。
对于DAG而言则不存在这样的问题,钱包发起交易时不需要等待自己之前有多少交易,只需要经历局部校验、全网广播、其他局部校验,相当于是把交易确认分散化,每一个节点都在做类似于拼图的工作,把自己的和别人确认的交易拼接起来。
四、DAG技术的现状
运用DAG技术的代表项目,最知名的无疑是DAG三架马车—— IOTA、Byteball、Nano,作为最新的分布式账本主力竞争技术,DAG开始引发大量关注始于IOTA在2017年下半年市值冲入币值排行榜第四名,之后基于DAG的新项目不断进入人们的视野。
DAG在快速的发展与革新,除了三驾马车之外,新出现的DAG项目在共识算法、去中心化机制、速度与并发上,都取得了更新的进展,近期引发大家重点关注的项目包括HashGraph、Algorand、Nerthus、Mixin等等,具体介绍请感兴趣的同学自行Google或者百度。
另外,每个使用DAG的项目都有一定的区别,比如IOTA使用的结构叫“tangle”,Byteball使用的则是“witness”……随着越来越多的人和项目参与到DAG的生态发展中来,DAG应用的可能性也越来越大。
五、总结
DAG是面向未来的新一代区块链技术,随着它的普及,开发人员逐渐变多。DAG项目的优势逐渐凸显,其性能优越和扩展性强对现有的区块链项目是一个巨大冲击,从技术角度来看,DAG带给我们的是一场新的区块链实验。
凡事有利必有弊,DAG的速度快,吞吐量高,但作为一个很年轻的数据结构,安全性和一致性还有待更多验证和认可,应用场景也还不像传统区块链那么广泛;但DAG技术的优势和创新速度已经崭露头角,越来越多后继基于DAG的创新项目和DAPP正源源不断的迅速涌现。