白话DAG:第3代区块链技术DAG全面盘点(上)

2018年公链的赛道上,DAG是备受关注的的黑马,很多的技术爱好者和投资人都对DAG高度关注,那么究竟什么是DAG,目前的公链项目情况又如何,DAGX团队CEO Max为您精心解读技术与项目

1. 什么是DAG

DAG:Directed Acyclic Graph,中文意为“有向无环图”

DAG原本是计算机领域一种常用数据结构,因为独特的拓扑结构所带来的优异特性,经常被用于处理动态规划,导航中寻求最短路径,数据压缩…..等多种算法场景。

白话DAG:第3代区块链技术DAG全面盘点(上)

再看传统区块链和DAG的区别,简单的说:

  1. 单元:区块链组成单元是Block(区块),DAG组成单元是TX(交易);

  2. 拓扑:区块链是由Block区块组成的单链,只能按出块时间同步依次写入,好像单核单线程CPU; DAG是由交易单元组成的网络,可以异步并发写入交易,好像多核多线程CPU;

  3. 粒度:区块链每个区块单元记录多个用户的多笔交易,DAG每个单元记录单个用户交易。

传统区块链技术的几个问题:

  1. 效率问题:传统区块链技术基于Block区块,比特币的效率一直比较低,由于BlockChain链式的存储结构,整个网络同时只能有一条单链,基于POW共识机制出块无法并发执行; 例如比特币每十分钟出一个块,6个出块才能确认,大约需要一个小时;以太坊大幅改善,出块速度也要十几秒。

  2. 确定性问题:比特币和以太坊存在51%算力攻击问题,基于POW共识的最大问题隐患,就是没有一个确定的不可更改的最终状态;如果某群体控制51%算力,并发起攻击,比特币体系一定会崩溃; 考虑到现实世界中的矿工集团,以及正在快速发展量子计算机的逆天算力,这种危险现实存在。

  3. 中心化问题:基于区块的POW共识中, 矿工一方面可以形成集中化的矿场集团,另一方面,获得打包交易权的矿工拥有巨大权力,可以选择哪些交易进入区块,哪些交易不被处理,甚至可以只打包符合自己利益的交易,这样的风险目前已经是事实存在。

2. DAG起源

最早在区块链中引入DAG概念作为共识算法的是2013年,bitcointalik.org上由ID为avivz78的以色列希伯来大学学者提出,也就是GHOST协议,作为比特币的交易处理能力扩容解决方案; Vitalik在以太坊紫皮书描述的POS共识协议Casper,也是基于GHOST POW协议的POS变种。

后来NXT社区有人提出用DAG的拓扑结构来存储区块,解决区块链的效率问题。区块链只有一条单链,打包出块无法并发执行。如果改变区块的链式存储结构,变成DAG的网状拓扑可以并发写入。在区块打包时间不变的情况下,网络中可以并行打包N个区块,网络中的交易就可以容纳N倍。

此时 DAG跟区块链的结合依旧停留在类似侧链的解决思路,交易打包可以并行在不同的分支链条进行,达到提升性能的目的。此时DAG还是有区块的概念。

白话DAG:第3代区块链技术DAG全面盘点(上)

Nxt社区提出的DAG of blocks

2015年9月,Sergio Demian Lerner发表了 《DagCoin: a cryptocurrency without blocks》一文,提出了DAG-Chain的概念,首次把DAG网络从区块打包这样粗粒度提升到了基于交易层面,但DagCoin本身是一篇论文,没有代码实现。

2016年7月,基于Bitcointalk论坛公布的创世贴,IOTA横空出世, 随后ByteBall也闪亮登场,IOTA和Byteball是头一次DAG网络真正技术实现,也是此领域最耀眼的领军者; 此时,号称无块之链(Block Less)、独树一帜的DAG链家族雏形基本形成。

一句话来概括:DAG是面向未来的新一代区块链,从图论拓扑模型宏观的看,从单链进化到树状和网状、从区块粒度细化到交易粒度、从单点跃迁到并发写入;是区块链从容量到速度的一次革新。

3. DAG发展现状

DAG系当前代表项目,最知名的无疑是DAG三架马车 —- IOTA、字节雪球、Nano(原来的Raiblocks)。

3.1 IOTA

IOTA背后最主要的创新Tangle(纠缠),是一个基于DAG全新设计的分布式账簿结构。是一个既没有块(Block)也没有链(Chain)的区块链。在Tangle中,每一个节点代表的是一个交易。IOTA里没有区块的概念,也没有挖矿和矿工的概念,没有挖矿和矿工就代表没有交易费,整个网络的吞吐量(Throughput)也很高,这是IOTA的最吸引人的亮点之处

Tangle的核心原则与区块链一致,依旧是一个分布式的数据库、P2P网络,以及共识算法来验证交易。Tangle与传统区块链之间的主要区别,就是Tangle数据结构以及共识机制。

在IOTA里没有区块的概念,取而代之的是交易网络,每一个交易都会引用过去的两条交易记录Hash,这样前一交易会证明过去两条交易的合法性,以及间接证明再之前所有交易的合法性。

这样,整个网络都参与交易合法性的验证,而不像传统区块链,只有全网中的矿工(或PoS的权益所有人)这样少量节点来验证交易合法性。因此,IOTA的共识就是它自身内化特性,可以使它在没有交易费用的情况下进行规模化使用。IOTA 中不再有区块的概念,共识的最小单位是交易。

The Tangle另外一个强大之处,就是可以随意的让交易从网络中剥离出来或者合并回去。这种离线异步处理的能力在物联网领域应用中尤为重要

IOTA定位在物联网应用区域:物联网。全球网络,其中无数设备在各自领域相互通信,工业设备如传感器或M2M,以及微支付.

IOTA目前的问题是:

  • MIT报告指出,IOTA使用了自己开发的哈希算法curl,但是curl算法的哈希值极易发生碰撞,于是就能伪造数字签名。

  • 因为共识是由全网交易确定的,那么理论上来说,如果有人能够产生1/3的交易量,他就可以将无效交易变成有效交易。另一方面,由于IOTA无手续费,所以没有矿工激励,IOTA面临着拒绝服务攻击和垃圾信息攻击可能,就像不收物业费的小区,靠业主自治很难扫清不法份子,

  • IOTA 引入闭源的中心化组件Coordinator来对全网交易进行检查(例如双花),如何有效移除Coordinator? 并建立一个具有良性激励机制的分布式“Coordinator群体”,IOTA还没有给出解决方案。

3.2 Byteball(字节雪球)

Byteball被称为区块链3.0的代表。具有DAG体系家族中最完善的应用生态,Byteball钱包内置丰富功能,包括类似Appstore模式的BotStore,自由开发者可以在上面自由开发应用,开发者非常活跃。

Byteball 在DAGCoin 的基础上, 创新性引入主链与见证人概念,鼓励验证多个父辈交易单元,形成一个随着交易增长、相互验证,安全性不断加强的数字签名Hash网络,Byteball创造性的发明了“主链”概念,也就是经过见证人认定的最短路径MC的Parents优选算法。主链创造了一个全网共识确定的交易时间序列,优雅的避免了双花问题。

Byteball中“见证人”(Witness)真正意义就是形成“共识机制”;12个“见证人”发布的交易单元,在理论上无限宽广的DAG并发交易网络中划出了一道确定性的交易时间序列。正是这道无限延伸基于时间的确定性交易序列,打造了Byteball中的主链,在宽广无序的有向无环哈希世界中形成了强健有序的唯一主干。基于见证人+主链的共识机制,双重支付等问题得到了轻松解决。

Byteball取消了区块链和工作量证明(POW)挖掘的概念,而是选择了DAG数据存储技术。 与基于传统区块链的加密货币相比,这具有强大的优势,Byteball 中的所有交易都是以加密方式相互关联的。 新产生交易将添加到tips交易单元后面。 这样让网络上的所有节点(用户)都参与验证交易,完全的分布式。

这不仅可以更快地验证付款,还可以让网络保持足够的分散。 避免在比特币中的一些问题:例如可能威胁网络的大型集中式矿池;同时Byteball通过收取存储在DAG网络的每字节数据存储费用,通过类似Gas机制减少网络上的SPAM垃圾信息。

有人说Byteball的Witness存在中心化依赖,这里也为Witness正名,在Byteball的Witness节点设计中,witness节点是高度安全的,仅仅能发出见证单元,无法接触交易, 所以Witness并不是矿工,Witness扮演的是WatchMan的角色,帮系统锚定交易发生时间顺序,没有留出作恶的空间; 另外Witenss 数量也可以根据需要设置和选择,并不局限于目前的12个见证人。

Byteball由于每个交易都有发起者的私钥签名,同时每笔交易都验证与引用从前发生的交易,以此编织成一个巨大的网络,对网络的篡改牵一发而动全身,同时不可能有人拥有全网所以用户的私钥,所以Byteball具备银行级最终确定性。

Byteball正在积极地尝试替代现有的数字货币,如比特币,或者更夸张的说,是去取代美元,欧元和所有其他法币,至少长期来看是这样。就像比特币要做的一样。

Byteball的问题是:由于主链算法和见证人发布频率有关系,交易确认的时间是不确定的。由于Byteball 基于关系数据库来存储数据,SQL语言过于紧耦合算法逻辑。 在一定程度上限制了Byteball目前的扩展能力和速度。

3.3 NANO (XRB)

Nano(原名RaiBlocks XRB),是一种基于区块点阵(Block Lattice)结构的新型加密货币。

Nano是一个很有意思的项目,Nano创新性的采用了一个用户一条链的方式,只记录自己的交易,也只有自己可以修改记录,不与其它帐户共享数据,从而使所有的交易都可以并行执行,能提供秒级的交易速度和无限可扩展性,并且允许他们异步地更新到网络的其余部分,从而以极小的资源开销获得快速的交易确认。

Nano一个节点可以存贮所有账户的历史账本,也可以只存贮每个账户的最后修剪记录。当一笔交易发生的时候,发出金额的一方会生成一个send tx的区块,包含记录扣除的金额;而收款账户则生成receive tx区块记录对应获得的金额。交易数据的收发是可以异步进行的,所以就算同时有多笔金额汇入一个账户也没有问题,最终的金额是收到的金额的加法。如果接收方不在线也没关系,未到账的金额会单独标记,等到接收账户上线之后,这笔金额就会从未结算区打入接收区块,完成交易。

NANO使用了DPOS共识机制,账户可以指定代表为其投票,得票最多的代表将处理分叉,这个代表会将分叉广播到网络,并观察来自高权账户节点在固定时间内的投票接结果,以此来确定保留哪一个区块。DPOS可以保证区块的合理低能耗运行。NANO也使用到了POW机制,确认交易需要非常少的工作证明(PoW)。

NANO的问题:没有被充分测试、缺乏同行评议。共识算法可能有严重缺陷的风险。例如,如果没有足够的法定人数投票来解决网络冲突会发生什么?另一个大问题:如果NANO网络的某些部分长时间分离,当分离的网络重新加入时会发生什么?重新加入的网络是否会在不可避免发生的投票过程中瘫痪?

文章作者: DAGX 我要纠错
声明:本文由入驻金色财经的作者撰写,观点仅代表作者本人,绝不代表金色财经赞同其观点或证实其描述。
提示:投资有风险,入市须谨慎。本资讯不作为投资理财建议。

金色财经 > 区块链 > 白话DAG:第3代区块链技术DAG全面盘点(上)