内容简介:DAG结构与区块链相比,不存在区块的概念,不同于把数据打包成区块,在按照加密算法将区块依次链接。而是每个节点都可以提交一个数据,这些数据单元里可以有很多东西,比如交易、消息等等。数据单元间通过引用关系链接起来,从而形成有向无环图。DAG(Directed Acyclic Graph,有向无环图),是计算机领域一个常用的数据结构。在常规的区块链技术中,是一种链式数据库结构,每个区块依次链接。而DAG其实链式结构一样,也是一种数据结构,DAG独特的拓扑结构也会带来一些新的优势特征。在理解DAG之前,我们现需要了
DAG结构与区块链相比,不存在区块的概念,不同于把数据打包成区块,在按照加密算法将区块依次链接。而是每个节点都可以提交一个数据,这些数据单元里可以有很多东西,比如交易、消息等等。数据单元间通过引用关系链接起来,从而形成有向无环图。
什么是DAG
DAG(Directed Acyclic Graph,有向无环图),是计算机领域一个常用的数据结构。在常规的区块链技术中,是一种链式数据库结构,每个区块依次链接。而DAG其实链式结构一样,也是一种数据结构,DAG独特的拓扑结构也会带来一些新的优势特征。
-
有向图概念
在理解DAG之前,我们现需要了解一个基础概念:何为有向无环图?
在图论中,如果一个有向图无法从某个顶点出发经过若干条边回到该点,则这个图是一个有向无环图(DAG图)。因为有向图中一个点经过两种路线到达另一个点未必形成环,因此有向无环图未必能转化成树,但任何有向树均为有向无环图。
图片来自网络
图和树一样,都是一种数据结构,图可以分为有向图和无向图,对有向图进一步约束则形成有向无环图,有向图由有限个顶点和有向边组成,每条有向边都从一个顶点指向另一个顶点,无环则指的是从任意一个顶点出发都不能通过这些有向边回到原来的顶点。
在此我们只需要对有向无环图的概念定义有一个大致的了解。
-
D AG 原理
DAG结构与区块链相比,不存在区块的概念,不同于把数据打包成区块,在按照加密算法将区块依次链接。而是每个节点都可以提交一个数据,这些数据单元里可以有很多东西,比如交易、消息等等。数据单元间通过引用关系链接起来,从而形成有向无环图。
再通俗一点解释,在整个网络中,我们可以理解为整个网络存在许多个动态的“局域网”的,交易用户属于不同的“局域网”。“局域网”建立的基础是具有验证交易能力的节点。当用户发起交易时,自己所在“局域网”的节点会验证数字签名、资产余额、数据格式、完整性等信息,如果交易无效会进行标记。然后会将打包好的数据向全网发送。
在交易的验证机制方面,也与区块链有一些不同,是由后面进行的交易来验证前一笔交易,如果一笔交易没有被后面的交易所验证,那么在这个去中心化的网络中,就失去了合法性。这样的交易验证机制,使DAG可以并行处理多笔交易,围绕着主链,但是并不形成环路。形成一种并行的树状拓扑结构。
-
与区块链的不同
-
网络单元:区块链组成单元是Block(区块),DAG组成单元是TX(交易);区块链的每一个区块单元记录多个用户的多笔交易,而DAG的每个单元记录
-
网络结构:区块链是由区块组成的链式结构,只能按照顺序依次写入交易,需要等待时间,类似单核CPU;DAG是由交易单元组成的网络,可以异步并发写入交易,像多核CPU
Dag的技术优势
DAG和区块链相比,最大的区别在于结构上并行处理的能力。链的输入与输出只有一个,与节点的处理能力无关,核心是在于不能并行计算,每次处理一个交易,需要同步所有节点,存在一个等待时间。而DAG不存在这样的问题,只需要进行局部校验,将交易分散来并行处理。因此DAG主要有以下几个优势:
-
更快的交易速度,高并发性
DAG技术最大的特点是没有区块,系统不需要定时出块,这也就明显的加快了交易速度,也实现了同时容纳海量并发交易。这种异步通讯机制,多个节点可以不必明确先后顺序同时写入,各个节点无需等待其他节点的数据,不需要矿工之间传递信任,因此在物联网领域、小额支付领域有很明显的优势。
-
作恶难度更大
因为DAG有多个输入与输出,假如要修改某一个节点,那么对应多对多的输入与输出都要进行修改。因此相比于链式结构,DAG的恶意修改难度会大很多。
-
无需挖矿,交易费用极低
准确说,DAG中没有矿工这个角色,系统的一致性是由交易本身来维护,即每笔交易发出时都需要验证之前未确认的交易,并立刻广播至全网,从而形成互相联系的数据网络。DAG把交易确认的环境直接交给交易本身,无需由矿工打包后确认交易顺序。代表性的项目以IOTA为例,在整个网络中,交易发起只需要做简单的POW工作量证明,而工作量证明是由交易发起者自己完成的,而不会交给矿工,因此没有手续费或者手续费极低。
DAG的技术缺点
DAG的交易速度快,有很高的并发吞吐量,但是在交易的一致性与安全风险还是存在;主要需要解决的问题有以下几个:
-
双花交易
双花交易的意思是指一笔资产被重复支付,这个做个风险在比特币网络中存在,DAG中同样有很大的风险。DAG采用异步处理数据,而交易顺序的确认上不需要等待其他节点的信息,因此在同一时刻网络的数据可能存在不一致,虽然最终会同步,但是这个特征可能让攻击者利用节点间的信息差进行双花交易。
如果两个顶点端没有明确的验证从属关系,攻击者可以在这两个顶点端的不同节点处进行双花。目前世面上的知名项目也都额外定制新的规则来防止双花。例如XDAG采用了POW+64s固定出块的方式;
-
影子链的问题
在多重交易并行处理的情况下,导致攻击者可能暗中生成一条影子链,并且不时和主链对接进行欺诈隐瞒。极短情况下影子链甚至可以代替主链成为新的共识。Byteball改进方案 是对见证人(witness)和主链的设计,对这些交易建立一个全序关系,形成交易主链,由见证人通过不断确认来形成主链。
-
智能合约的开发难度大
节点所储存的数据在某一时刻可能存在不一致的情况,这在智能合约的开发上早晨很大的难度,现在也还没有见到成熟的应用。
和其他共识机制对比:
如果对于数据库有过一些了解的朋友可以进行一下类比,区块链与传统数据库的内核比较相似,不同的共识机制,本事上是在进行一致性的过程中选择检查节点的不同。而DAG与链式结构的本质区别在于异步与同步通讯。其核心存在的问题在于无法有效的预测交易被确认的时间和周期,并且交易顺序有可能无法在多个节点间保持一致。
共识机制
优势
不足
P OW
Ÿ 实现逻辑简单
Ÿ 对网络资源要求低
Ÿ 安全程度高,去中心化
Ÿ 极度消耗算力资源
Ÿ 共识时间长
Ÿ 易分叉
P OS
Ÿ 消耗资源低
Ÿ 对网络要求高
Ÿ 中间过程实现复杂,存在安全风险
D POS
Ÿ 消耗资源低
Ÿ 对网络资源要求低
Ÿ TPS高,共识时间短
Ÿ 中间过程实现复杂,存在安全风险
D AG
Ÿ TPS理论上极高
Ÿ 去中心化程度高
Ÿ 实现过程很复杂
Ÿ 全局一致性实现较难
Ÿ 全局 排序 较难
总结:
DAG作为一个很有潜力的技术方向,目前已经有诸多采用DAG技术的项目逐步开始落地,当中比较有名包括XDAG、IOTA、字节雪球等。每个项目也都通过加如额外的限制条件来弥补DAG技术目前存在的一些交易风险,我们也会在之后的介绍中逐一进行展开分析。
从长期来看,DAG是一个非常值得关注的领域,尤其是在投资方面,在合适的发展周期下选对赛道是非常重要的,DAG为物联网提供了快速交易、低连接成本、多并发的解决方案,尤其在5G的趋势下,这类场景会更加的多元化,存在爆发的机会。IOTA如果从私募阶段开始算起,曾经有过几千倍的涨幅,我们也应该在概念炒作之后,对接下来技术成熟应用落地的红利保持期待。
主要参考:
-
SergueiPopov*:The Tangle(IOTA官网白皮书v1.3
-
轻度:DAG也许是真正的区块链
-
链捕手:一文看懂DAG技术的现状与趋势 |李强
-
XDAG项目白皮书
-
鲸准研究院丨DAG技术解析(一)
以上所述就是小编给大家介绍的《DAG会是区块链的下一个突破点吗?》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 区块链技术+区块链怎么赚钱?
- 区块链技术入门:区块链是什么
- 阿里申请可“行政干预”区块链专利,区块链变味?
- 中国区块链商学院:区块链基础知识
- 从Java到区块链:如何成为区块链开发人员
- 通过python构建一个区块链来学习区块链
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Scratch少儿趣味编程
[ 日] 阿部和广 / 陶 旭 / 人民邮电出版社 / 2014-11 / 59.00元
Scratch 是麻省理工学院设计开发的一款编程工具,是适合少儿学习编程和交流的工具和平台,有中文版且完全免费。本书结合孩子们学习的语文、数学、科学、社会、音乐、体育等科目,手把手地教大家如何用Scratch 设计程序(如设计一个自动写作文的程序),配合各式卡通形象,通俗易懂,寓教于乐。麻省理工学院教授米切尔•瑞斯尼克作序推荐。 本书图文并茂,生动风趣,适合中小学生等初学者自学或在家长的帮助......一起来看看 《Scratch少儿趣味编程》 这本书的介绍吧!