技术分享——白话解读Vite公链DAG技术



  • 前言
    DAG 技术即 Directed Acyclic Graph (DAG),也叫有向无环图,是在分布式的分散环境中人们发送数据的另一种方法,不是区块链技术。它原本是计算机的一种数据结构,一般用来处理动态规划问题。最早提出这个概念的是 Sergio Demian Lerner,在 2015 年 9 月发表了《DAG Coin Draft》的文章,提出了 DAG-chain (DAG 链)的概念。DAG虽然不是区块链技术,但是现在通过DAG技术实现的去中心化网络仍旧被归在区块链板块中。目前比较流行的项目有IOTA,Nano,ByteBall ,VITE 等,这些项目都在DAG的基础上做了改进。

    DAG技术原理
    与传统区块链相比,DAG不再是单一的链式结构,如果区块链是线,那DAG就是网络,可以在整个网络进行扩展,可以异步并发的写入很多交易,由于DAG支持高并发的特点,多个区块可以同时写入到全网中,与普通的区块链技术只能一个一个区块的写入的特点相比,DAG处理区块的交易效率会明显提高很多。

    依据DAG有向无环图,每一笔交易都直接参与了维护全网。每发生一笔交易,都会产生一个新的区块,这个新的区块会加入到网络中并连接到前面的区块,随着时间的推移,所有的交易区块会相互连接,形成一个有向无环图状结构,每一个区块都可以向上追溯到创世区块,如果想要更改某一个区块的数据,那就需要向上更改创世区块的数据。

    在下图中四种技术方案对比,从左往右,安全性逐渐提高,但是性能越逐渐降低,导致交易速度越慢。最左侧是中心化系统中常见的基于组合的结构,最右侧是典型的区块链账本,介于两者之间的是DAG账本。

    cc975d874d0d3197cc883c4c813190f4.jpg

    DAG技术的特点
    DAG相比于目前的公链技术,有如下两个特点:

    ❶ 交易速度快,可以在网络中并行打包区块,在网络中容纳更多的交易同时进行,记账无需等待,交易确认速度快。
    ❷ 拓展性强,因为各个节点无需等待同步其他的节点的数据就可计算,使得记账节点很容易延展。

    对于链式网络而言,不是节点的处理能力不强,只是链式结构不能并行计算,浪费的时间其实主要为等待时间:一个是发起交易,需要将交易同步所有节点,另一个是当有一个节点确认,需要向全网同步。

    对于DAG而言则不存在这样的问题,钱包发起交易时不需要等待自己之前有多少交易,只需要经历局部校验、全网广播、其他局部校验,相当于是把交易确认分散化,每一个节点都在做类似于拼图的工作,把自己的和别人确认的交易拼接起来。

    区块链技术被大家诟病最多的一点就是交易速度的问题,DAG技术恰好解决了这一问题,通过使用DAG技术,区块链将会在日常生活中有更多的落地应用。

    Vite公链DAG技术
    Vite 采用一种称为 Block-Lattice 的 DAG 账本结构,每个账户地址对应一条链,每个交易引用本账户前一个交易的哈希;交易分为 “请求交易” 和 “响应交易” 两种,一个响应交易需要引用对应的请求交易的哈希。这样就构成了一种栅格状的 DAG 结构。这种账本结构允许互不相干的交易 “并行” 写入,降低冲突概率,提高系统吞吐能力。

    然而Block-Lattice 的 DAG 账本也有一定的缺陷,它的防篡改特性较差,会产生安全隐患,因此迄今为止,除了 Nano 采用了该结 构之外,还没有其他项目采用。这是由于交易是按账户分组的,一个交易只会附加到其所属账户的账户链末端,其他账户产生的交易不会自动成为该交易的后继节点,因此,一些交易被回滚的概率不会随时间推移而降低。

    为了弥补该缺陷,Vite 通过引入一种额外的链式结构 Snapshot Chain,并且改进了共识算法,成功的弥补了 block-lattice 安全性方面的不足,后续将为大家详细介绍Vite项目的Snapshot Chain,本文不再赘述。

    f0de7d4494354bf736a1f1ca1406329d.jpg

    总结
    DAG是新一代的区块链技术,DAG的高性能与高扩展性,正好能弥补目前区块链技术的缺陷,它的普及将给区块链带来新的变革。Vite是采用DAG技术的代表,以DAG技术为基础,Vite的产品会更加友好,生态会更加完善,让我们拭目以待。


Log in to reply
 

Suggested Topics