DAG技术解析

2018-07-12 14:46 评论 0 条

DAG(有向无环图)技术是区块链领域的技术热点之一。DAG技术相比于原来的区块+链的数据结构有更快的交易速度以及更强的可扩展性,但由于其技术门槛和开发难度较高,在DAG技术上深耕的项目并不多见。我们希望能通过对具体项目原理的解析向读者呈现出DAG技术的全貌。

什么是DAG

在图论中,如果一个有向图从任意顶点出发无法经过若干条边回到该点,则这个图是一个有向无环图。图和树一样,都是一种数据结构,图可以分为有向图和无向图,对有向图进一步约束则形成有向无环图,有向图由有限个顶点和有向边组成,每条有向边都从一个顶点指向另一个顶点,无环则指的是从任意一个顶点出发都不能通过这些有向边回到原来的顶点。

 

因为有向图中一个点经过两种路线到达另一个点未必形成环,因此有向无环图未必能转化成树,但任何有向树均为有向无环图。

DAG原理

以下以XDAG为例介绍:在XDAG的网络中,其实是一个个动态的“局域网”的组合,所有的交易用户隶属于不同的“局域网”,不同的“局域网”联合起来构成整个XDAG的网络。“局域网”建立的基础是具有验证交易(挖矿)能力的节点(这个节点可以是单个矿工,也有可能是矿场或矿池),当用户发起交易时,会将交易发送到自己所在“局域网”的矿工,矿工会验证数字签名、资产余额、数据格式、数据完整性等信息,当遇到无效交易后,便会进行标记,然后矿工会打包确认好的信息并向全网发送,其他“局域网”的矿工收到后会验证自己收到的这个数据包是不是合法的,如果都没有问题,那么这些交易就会被承认。在XDAG的网络,主节点组成主链,主链是所有节点难度加和最高的一条。和比特币网络一样,所有的交易都需要排序,那么也就是所有的节点是需要排序的,主节点的功能就是确定顺序,除此之外,主节点还负责记录挖矿收益,但是主节点不记录其他任何交易,因此可以将主节点看成是一个空块,而其他的节点才负责记录交易。主节点的产生需要挖矿,交易节点是系统自动生成。

DAG的优势

DAG相比于区块链来说,其实是图和链的区别,对于链而言,无法只处理一个局部,因为链的入度和出度只有一个,不能把链上的节点拆成好几个节点去处理,但是对于图却可以,因为图可以有多个出度,那么可以同时处理多个出度连接的节点。对于链式网络而言,不是节点的处理能力不强,只是链式结构不能并行计算,浪费的时间其实主要为等待时间:一个是发起交易,需要将交易同步所有节点,另一个是当有一个节点确认,需要向全网同步。对于DAG而言则不存在这样的问题,钱包发起交易时不需要等待自己之前有多少交易,只需要经历局部校验、全网广播、其他局部校验,相当于是把交易确认分散化,每一个节点都在做类似于拼图的工作,把自己的和别人确认的交易拼接起来。因此总结发现DAG有着以下几个优势:

3.1交易速度块

DAG实现的局部处理和并行结算可以使得交易速度大幅度提升。

3.2.拓展性强

因为各个节点无需等待同步其他的节点的数据就可计算使得记账节点很容易答复延展,因此DAG很适用于物联网类项目,例如机器微支付。

3.3.作恶难度更大

相比于链式结构,在DAG中恶意修改的难度会大很多,因为DAG拥有着很多的出度和入度,假如要修改某一个节点,那么对应的出入度都要进行修改。

DAG的问题

尽管在前文中阐述了诸多DAG的优点,但事实上,DAG也有自身的缺陷,DAG类项目也在各自使用不同的技术手段进行解决。4.1 交易时长不可控DAG本质是一种异步通讯,异步通讯所带来最大的问题在于一致性不可控,在DAG模型中则在于交易确认时间完全未知。当然,某种程度上同样可以认为在链式模型中,一个区块被超过2/3以上节点数接受才算全网最终确认,因此最终确认时间同样无法准确判断。针对以上问题,XDAG采用了POW+64s固定出块的方式。

4.2 网络传输数据量大幅度增加

链式结构中仅仅账本节点记账,大量的钱包节点仅仅向一个账本节点通讯即可,因此全网络账本节点的数量远远小于钱包节点。在这种情况下,所有的数据同步均在账本节点之间完成,假设网络中有M个账本节点,每一条记录在网络中传输的次数为M+1。

DAG结构,在全网存在N个设备节点时(N成千上万倍大于M),每一个消息都需要在设备间进行点对点通讯,因此对于任何消息的发送,网络中都会存在N^2次数据发送(每一个节点都尝试将信息发送给其他邻居节点)。在未来DAG接入大量的物联网节点后,这会对于记账节点产生很高的要求。

4.3 影子链攻击

DAG 允许多重并行交易的特征,导致攻击者可能暗中生成一条影子链,并且时不时地将影子链跟主链进行对接以逃避检测算法。极端情况下,这条影子链有可能代替主链成为全网的共识。XDAG本身机制决定了不会出现影子链攻击,Byteball则是通过见证人模式来解决。

4.4 智能合约开发难度大

DAG的异步操作使得在运行智能合约时,节点间所存储的数据在运行一段时间后可能出现偏差,从现实情况来看,目前还没有能真正基于DAG网络开发出智能合约的项目。

总结

随着社区对DAG技术的认知和普及、开发人员逐渐变多、DAG技术的完善和发展,DAG项目的优势会逐渐凸显,其性能优越和扩展性强对现有的区块链项目是一个巨大冲击,从技术角度来看,DAG带给我们的是一场新的区块链实验。 【转载须知】1、本报告为Jingdata旗下专业的数据研究分析机构【鲸准研究院】原创作品,受《著作权法》保护,依法享有汇编权及注释权; 2、转载请留言后台,取得授权后方可转载;

3、禁止商用转载,禁止二次编辑转载。

 

注:本文转自巴比特,由“鲸准研究院”授权刊登于巴比特,有删减。如若对您的合法权益造成损害,请联系我们删除。

查看原文:https://mp.weixin.qq.com/s/hRz6bseep1MroSSCH9cYeA

作者:王帆  陈泓伊

指导:谭莹

发文时比特币价格 ¥42510.57

版权声明:本文著作权归原作者所有,欢迎分享本文,谢谢支持!
转载请注明:DAG技术解析 | BitOL|比特在线-关注区块链技术动态的小博客
分类:区块链技术动态 标签:

发表评论

您必须 登录 才能发表留言!