区块链DAG架构设计

1. 概述

        最早的GHOST协议作为比特币的交易处理能力扩容解决方案;Vitalik在以太坊紫皮书描述的POS共识协议Casper,也是基于GHOST POW协议的POS变种。后来有人提出用DAG的拓扑结构来存储区块,改变区块的链式存储结构,变成DAG的网状拓扑可以并发写入。在区块打包时间不变的情况下,网络中可以并行打包N个区块,网络中的交易就可以容纳N倍。

两种同步策略

        1. 同步持久化策略

        2. 异步持久化策略:一致性不可控

2. IOTA

        Tangle是一种革命性的新型无区块分布式分类帐,在IOTA体系中转账无需手续费,交易速度快。但是由于异步通信以及链结构的问题, 一些交易可能迟迟得不到验证,并且随着网络的增大可用性会降低。IOTA体系中没有区块的概念,交易的验证都是通过网络其他交易发起者进行验证的。IOTA网络中想要发起交易必须为网络贡献交易验证从而使网络能够持续运行。


IOTA区块拓扑图

发起交易基本上需要三步:

        1. 构建交易集和输入签名

        2. 找到两个没有确认过的交易,验证其有效性

        3. 为交易集中的每笔交易做少量的PoW(抵御女巫攻击和批量交易攻击)

        在IOTA系统中,网络中的每位参与者都能进行交易并且积极参与共识。更具体点说,你直接定位了两笔交易(主交易和分支交易),且间接在子tangle中定位其它交易。通过这种方式,验证就能同步进行,网络能够保持完全去中心化,不需要矿工传递信任,也不需要支付交易手续费。

        IOTA通过引入中心化的Validation对交易进行最终确认,只有Validation确认过的交易才算确认成功。Validation代码没有开源,没有具体细节。一些人认为Validation如果撤销,仅靠IOTA本身的共识很难保证安全。

3. byteball

        Byteball中没有区块的概念,也没有区块容量的问题。相反,每一个新的交易都通过包含和签名它们的哈希来参考更早(父母交易)的一个或几个交易。交易中的链接形成了一个DAG(有向无环图)


Byteball区块拓扑图

        Byteball引入(12个)见证人和主链来达成共识,从而对交易进行排序。凡是被超过一半见证人直接或间接确认的单元视为合法单元。主链是沿着子-父链接到一个单链,可以把所有单元都关联到一起。从如何一个顶点开始都可以构造一个主链,以相同规则在两个不同的顶点选择主链,两条主链一旦相交会在之后完全重合,重合部分称为稳定主链。所有单元要么在稳定主链上,要不从稳定主链沿着DAG通过少量跳跃可以到达。


        给每个直接位于主链上的单元做索引,沿着主链序号递增。对于不在主链的单元,赋值为第一个直接或者间接引用该单元的主链单元。拥有较小的编号的单元被认为是更早生成的,发生冲突时较小的单元有效。

        当获得新单元时,每个节点会持续追踪自身的主链(MC),由于网络延迟,每个节点的主链可能会不一样。但是MC中足够老的部分会保持不变,未来回溯时会回溯到某个单元,这个单元及其之前的所有MC单元都是稳定的,随着新单元的不断加入,稳定点的扩展方式一致,所有节点达成共识(Byteball用数学证明了这个结论)。稳定点扩展的本质是在当前稳定点的某一条子链的路径上出现了超过一半的见证人(最优父单元选择算法),就可以确定稳定点能够朝着当前子链扩展。

4、HashGraph

        HashGraph 则是有向无环图(DAG)的一种,采用柱状的交易事件排序机制。HashGraph共识的目的就是在各个节点的本地将这样一个有向无环图中各个顶点进行排序。


HashGraph区块拓扑图

        Gossip about Gossip:本质上意味着向本次传播附加一些额外的信息,即两者之间互相通信传播内容的两个哈希。通过使用这些信息,就可以创建Hashgraph。例如上图最下方,E收到B的消息之后,创建新的event E2,然后将E1和E2(E所知道的且C没有的所有数据)同时发送给随机选择的C,此时C生成一个新的event C2。随着时间的推移就会生成上图的形状。

        Virtual Voting:节点并不需要发送实际投票。每个节点本地存有一张Hashgraph。如果两个节点的Hashgraph相同,就能用同样的方法计算出所有event的排序。随着时间的推移,时间较老的event就会达成一致。Hashgraph节约了带宽并且无需工作量证明即可实现共识。

        具体细节概念不展开。

5、Conflux

        Conflux共识机制以及实验数据是在比特币源代码框架下实现,沿用比特币的POW机制。Conflux 的理念设计是可以容许不同区块同时生成,并运用基于DAG概念的排序算法来避免分叉的问题。利用GHOST协议不通过最长链来选main chain,而是选拥有子树区块最多的那条链。不同于之前先确定交易顺序,再确定区块顺序的设计思路,conflux是先把区块顺序算出来,再决定要保留哪些交易。


Conflux区块拓扑图

        1)乐观地处理并发块

        2)将块组织成有向无环图(DAG)

        3)首先同意所有块的所有交易(假设交易不会相互冲突)

        4)然后从约定的块顺序派生交易订单(懒惰地解决交易冲突)

        具体细节概念不展开。


6、需要注意的问题:

1. 同步通信/异步通信

    异步通信导致的交易时长不可控。

2. 节点一致性

    异步通信导致节点间账本的不一致性。

3. 女巫攻击和影子链

    DAG允许并行交易的特性导致攻击者可能暗中生成影子链进行攻击。交易免手续费容易导致女巫攻击。

4. 智能合约

    不存在全局排序机制,导致系统支持的操作类型受限,难以实现图灵完备的智能合约体系。需要一个机构确保智能合约的运行,主链和Coordinator实现类似的效果。

    DAG异步通信在运行智能合约时,节点间可能会出现偏差。

5. 网络传输数据量

    DAG结构在全网N个节点时,每一个消息都需要在设备间进行点对点通信,共需要N*N次数据发送。大量节点接入后,网络传输数据量会出现大幅增长

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容