综合技术

开启区块链大航海时代的DAG 全球著名DAG项目列阵点兵

微信扫一扫,分享到朋友圈

开启区块链大航海时代的DAG 全球著名DAG项目列阵点兵
0

编者按:2019年全球的19条公链正在千帆竞争。新一代DAG公链的明星项目HLC的公链团队正在迪拜、上海、西安、北京等地日夜奋战。对于很多投资者来说,DAG是一个陌生的词语,但在火币研究的2018-2019区块链年度报告中,DAG技术以它的真正的金融级交易和安全受到了传统金融世界的关注。垂直定位于伊斯兰金融的HLC基金会的公链项目,目前正在用双底架构创造一个新的公链。区块链是一个去中心化的数据库,但是去中心化的数据库却不仅仅指BlockChain这种链式账本结构,因为还有一种技术叫做DAG,它也是分布式账本技术。

今天我们这篇文章的撰写者是DAG研究院,请读者系统了解一下HLC公链采用的DAG技术和目前全球的DAG项目实践动态。对此,特别向DAG研究院表示感谢和致敬。

长久以来,公链一直存在处理速度慢、费用高、安全隐患等问题,区块链的扩容问题因直接影响到用户体验和商业落地尤为突出。可喜的是,新出的技术会立足于更本质的问题,力求在不牺牲某一技术指标的区块能根本解决区块链的扩容问题。主流的扩容方案包括:DAG、分片、链下、多级区块。其中,DAG技术是唯一基于经典区块链设定的链上扩容技术,在安全性,确认速度和扩容能力都有较好地平衡,在近期受到了产业界还是学术届都有较大的关注。

(图片说明:HLC公链已经分别基于BLOCKCHAIN BLOCKDAG分别在西安和上海完成了P2P传输测试)

一、什么是DAG技术

DAG即Directed Acyclic Graph(有向无环图),是不同于主流区块链的一种分布式账本技术,把同步记账提升为异步记账,被不少人认为可以解决传统区块链的高并发问题,是区块链从容量到速度的一次革新。

以DAG为网络基础,解决了区块链的局限性。这允许区块链以微小的成本进行无限的扩展。支付过程很快就能完成。不过,目前还只有一小部分加密货币在使用下一代DAG体系结。

DAG技术特点

DAG相比于目前的公链技术,其实是图和链的区别,对于链而言,无法只处理一个局部,因为链的入度和出度只有一个,不能把链上的节点拆成好几个节点去处理,但是对于图却可以,因为图可以有多个出度,那么可以同时处理多个出度连接的节点。所以,它的特点是:

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

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

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

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

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

二、DAG技术实践的Transactional系列DAG

目前已经成功运行的三个DAG项目:IOTA,OByte和NANO有个共同的特点就是账本结构每个节点都是一笔交易,而且都没有用工作量证明参与共识。造成许多用户甚至DAG项目的开发人员都认为DAG项目就是无区块,无PoW。事实上这是一种误读,后面的Block DAG会介绍DAG的本质是什么以及知名的Block DAG的协议和项目。目前我们姑且给无区块、无PoW的DAG起一个狭义的定义Transactional DAG。

IOTA

IOTA的DAG协议叫做tangle,也特指tangle协议的数据结构。Tangle无交易手续费,通过发布交易必须确认两笔待确认的交易来激励用户去进行利他行为。因此,并没有挖矿存在的必要,当然也没有区块存在的必要。所以tangle中每个节点都是交易,这类DAG也称作Transactional DAG。为了防止女巫攻击,IOTA采用的是执行一个难度较小的工作量证明。IOTA的共识采用MCMC(),通过统计从叶子交易随机游走到指定交易的概率,估算出该交易被全网节点确认的概率,即置信度,来确认交易。

Tangle协议本身是完全去中心化的,但是由于无交易费,没有专业矿工去参与确认交易,造成交易量不是很大。此外,难度较小的PoW相对于ASIC矿机来说,抵抗女巫攻击的能力有限。所以算力强大的专业矿池,可以用较低成本的算力去实施双花攻击。所以目前IOTA引入了一个中心化的节点Coordinator,来监督网络的共识。不过官方承诺等到交易量比较活跃了,会取消掉coordinator的限制,拭目以待。

OByte

OByte,也就是之前的ByteBall,也是transactional DAG,即账本中每个节点都是一笔交易。OByte率先引入了基于主链的共识机制。主链是指从创世交易延伸到叶子交易的唯一一条路径。非主链的交易由于与主链的交易必然存在引用或被引用的关系,结合DAG图本身的拓扑排序以及极端情况的冲突解决机制,比如说比hash值大小,可以确认任意两个交易的顺序,从而解决双花。

OByte因实现逻辑简单清晰,备受行业青睐,给许多知名DAG项目提供了较大的参考价值。OByte的不足还在于主链的顺序是12个权威节点即见证人之间通过类PBFT共识来确定,去中心化程度有待提高。其次,OByte并没有达到理想DAG项目应有的吞吐指标,普遍认为是其低效的SQL账本查询机制导致,期待今后有更高效的实现。

NANO

NANO,前身叫RaiBlocks,提出了BlockLattice的账本结构。NANO每个账户都有一条只有该账户才有操作权限的账户链。NANO将交易分成发送和接收两个过程,分别对应发送区块和接收区块来完成这两个过程。发送一笔交易时,用户会生成一个发送区块写入到自己的账户链上,此时该用户的余额已经减少。直到接收者在自己的账户链上生成接收区块。值得注意的是由于在接近的时间内有多个发送交易发送到同一个账户,彼此之间的顺序由于网络延迟其实很难确定,所以接收区块同时也负责确定这些发送交易的先后顺序。

NANO的发送交易都会包含账户链上最新区块的引用,如果存在多个交易引用同一个区块,由于只有账户所有者才有生成发送交易的权限,所以这些交易即为双花交易。NANO通过DPOS(Delegated-Proof-of-Stake)来解决双花。得到大多数票数的交易保留,其他的丢弃。有意思的是账户链在创建的时候,必须要指定一个代理人。这样可以避免投票不被代理的情况。

由于NANO的共识机制还是DPOS,仍然是一种偏中心化的解决方案。

Avanlance

Avanlance是一个基于弱稳态的DAG协议。这个弱稳态可以理解为,类似于原子核周围的电子的能量级。一般的情况下,电子接受少量的能量并不会从低能量级跃迁到高能量级,保持相对的稳定。但是吸收的能量到一定程度后,就会跃迁至高能量级达到下一个稳定的状态。Avanlanche的也有类似于SPECTRE的投票机制,一旦发现冲突的交易,会统计网络中的投票情况,也有类似于SPECTRE的投票放大的机制。周边如果某一方占优势,自己会倒向这一方,同时自己的倒向会增强该方的势力,会加速影响其他的节点。

Avalanche目前存在的问题是没有明确说怎么解决女巫攻击的问题,因为理论上可以伪造大量的节点,影响投票结果。所以,有人认为Avalanche是基于联盟链的协议,因为联盟链的节点身份是已知的,无法伪造。目前基于Avalanche实现的项目有Perlin,Perlin宣称已经解决了女巫攻击的问题。

三、DAG技术实践的Block DAG系列项目

Block DAG,顾名思义就是账本的每一个节点是区块。用账本的节点是区块还是交易来描述本身并不严谨,因为交易也可以看作是交易数为一的区块。所以Block DAG代表的是一种完全不同的DAG模型,也是一种狭义的定义。Block DAG要解决的其实是区块链的孤块率的问题,即让区块淘汰并丢弃的区块也能贡献吞吐量。比特币扩容,最直观的思路就是提高出块率或者增加区块大小。中本聪当然也会想到但是却没有这么做,是因为这两者都会增加分叉率,在比特币的最长链的竞争模型下,高分叉率代表推翻最长分叉所需算力可能远不需要50%,所以比特币是处于安全的考虑而通过牺牲扩容能力。而Block DAG就是为了解决如何在不牺牲安全性的前提下提高扩容能力。由于Block DAG是在经典的比特币的基础上进行的最简单和直观的扩容方案,几乎没有改变比特币的任何设定,即全节点通过算力自由参与而实现的完全去中心化,50%安全性保证而区别于分片分层等其他扩容方案,我们称之经典区块链设定。而这种满足经典区块链设定的DAG协议统称为Block DAG协议。

Conflux

Conflux在GHOST协议的基础上将BlockTree扩展成为Block DAG,从而极大地提高了交易地吞吐量。在GHOST协议中,通过最重子树的算法,可以唯一确定一条由至少50%算力保证的唯一的区块链,成为最重链。本质上,在不考虑安全性的情况下,比特币的最长链规则和GHOST的最重链规则在同样的出块率的情况下,吞吐量是一样的。因为除最重链之外的区块内的交易不会写入账本。

Conflux的思路是在新生成一个区块时,通过最GHOST的最重链规则,确定其中一个引用的区块为父亲区块。这样Block DAG就退化称一棵树。然后在此基础上执行GHOST协议确认最终链,即为Pivot-Chain。Pivot-Chain,类似于Inclusive协议和OByte的主链,以此作为参考可以确定所有区块的顺序。从而可以实现一层的基于状态的智能合约,也是Conflux的一大亮点。

Conflux支持交易线性排序带来的影响是理论确认速度相较于SPECTRE会比较慢,但是官方认为在实际运行中不会有太大影响。

值得注意的是,Conflux的论文附上一个对PHANTOM协议的攻击,目前已经在最新的PHANTOM的协议中修复,说明Conflux团队对DAGLabs的相关技术有较深的研究。不过据我们了解该BUG是PHANTOM的一个参考实现,PHANTOM协议本身的思路并没有该问题。

SPECTRE

SPECTRE是一个支持快速确认的Block DAG协议。SPECTRE不支持交易的全序列,所以无法实现基于状态的智能合约。SPECTRE的共识算法是一个投票算法,一旦发现有冲突交易,则包含冲突交易的区块作为候选人接受所有区块的投票,每个区块一票。SPECTRE的投票有放大效应,比如说区块会跟随其过去集中票数的大多数投票,所以收敛速度很快,一点细微的票数差异就能造成优胜者的巨大优势。SPECTRE只能保证诚实区块的快速确认,对于发布时间接近的两个冲突区块,SPECTRE的确认时间是不确定的,这就是SPECTRE提出的弱活性的概念,即不能保证所有区块都能在某个合理的时间内得到最终确认。但是SPECTRE基于交易系统的共识协议,在交易系统中,只有作恶者才能制造双花交易,也就是说,双花交易并不会对诚实区块造成太大的影响。此外,制造双花交易对于时间的控制非常苛刻,一般情况下很难造成攻击。所以,SPECTRE认为这个弱活性的问题在实际项目中是可以接受的。

PHANTOM/GHOSTDAG

PHANTOM是为了解决SPECTRE协议无法支持交易线性排序的问题而新推出的BlockDAG协议,也是第一个支持交易线性排序的Block DAG协议。PHANTOM/GHOSTDAG的思想是观察在一个特定网络中,如果设定好相应的技术指标,比如说出块率,绝大多数区块传播到全网的时延,以及可承受的风险等级即多大的概率有可能出现异常,比如网络故障造成无法在区块之间形成良好的连通性。这里的连通性是指在正常情况下,区块无法直接通过拓扑排序定序的区块的最大数量。直观上理解,就是某个区块生成时,同时最多有多少个区块也同时被其他矿工挖出。或者简单理解为并发产生的区块数也可以。假设这个数字为k,如果一个DAG的子图满足任意区块的连通性都为k,则该子图为k-cluster。其中DAG中最大的k-cluster称为蓝色集,非蓝色集的区块认为是恶意的,称为红色集。

PHANTOM和GHOSTDAG协议的区别是PHANTOM是严格地去找最大的k-cluster,但是找k-cluster是NP问题(多项式复杂程度的非确定性问题),效率很低。所以有了通过贪婪算法寻找近似最大蓝色集的GHOSTDAG算法,由于PHANTOM算法不具备工程实现上的可行性,一般我们只关注GHOSTDAG算法,没有明确指出的情况下,一般说PHANTOM其实指的也是GHOSTDAG。

PHANTOM除了支持交易线性排序之外,也解决了SPECTRE的弱活性的问题,目前的问题在于PHANTOM的蓝色集比较难以稳定,确认时间会比SPCTRE长很多。

HLC公链(Halalchain)

HLC是基于GHOSTDAG和SPECTRE双层共识的BlockDAG项目。

HLC公链的核心是价值交换,所以在一层智能合约和交易确认速度的取舍上优先选择对价值交换体验更加重要的确认速度,所以选择SPECTRE作为基础共识协议。同时为了解决SPECTRE协议的弱活性问题,在SPECTRE的基础上引入了GHOSTDAG协议,确保用户体验的一致性。

此外,引入PHANTOM协议还有重要的考虑是在区块的奖励机制上需要用到PHANTOM的线性排序能力,由于区块的奖励对于确认时间要求不高,所以PHANTOM相对较低的确认速度不会造成影响。

对于普遍关注的基于状态的智能合约,HLC认为在一层实现可能会对一层的性能造成较大的影响,计划未来在二层实现。HLC公链项目已经对外宣布在2019年6月底开源。目前,HLC公链成功完成了基于BLOCKCHAIN和BLCOKDAG底层的P2P传输测试。

四、小结

DAG是面向未来的新一代区块链技术,采用异步处理机制替代链式检查点的同步策略,速度快,吞吐量高。但由于其核心不存在一个标准的一致性确认机制(即账本或日志体系),同时无法对操作顺序进行全局统一排序,因此短期看来理论基础还有待突破。但是,从长期看来,DAG是一种非常新颖且有前景的机制,为传统数据管理领域的思维打开了新的大门。DAG项目因其性能优越和扩展性强对现有的区块链项目是一个巨大冲击,从技术角度来看,DAG带给我们的是一场新的区块链实验。

阅读原文...

微信扫一扫,分享到朋友圈

开启区块链大航海时代的DAG 全球著名DAG项目列阵点兵
0
链财经

把你的devtools从webpack里删除

上一篇

Android中的RecyclerView详解

下一篇

评论已经被关闭。

插入图片

热门分类

往期推荐

开启区块链大航海时代的DAG 全球著名DAG项目列阵点兵

长按储存图像,分享给朋友