區(qū)塊鏈DAG架構(gòu)設(shè)計

1. 概述

????????最早的GHOST協(xié)議作為比特幣的交易處理能力擴容解決方案蜗顽;Vitalik在以太坊紫皮書描述的POS共識協(xié)議Casper陆赋,也是基于GHOST POW協(xié)議的POS變種搪缨。后來有人提出用DAG的拓撲結(jié)構(gòu)來存儲區(qū)塊,改變區(qū)塊的鏈?zhǔn)酱鎯Y(jié)構(gòu),變成DAG的網(wǎng)狀拓撲可以并發(fā)寫入狭瞎。在區(qū)塊打包時間不變的情況下柬采,網(wǎng)絡(luò)中可以并行打包N個區(qū)塊欢唾,網(wǎng)絡(luò)中的交易就可以容納N倍。

兩種同步策略

? ? ? ? 1. 同步持久化策略

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

2. IOTA

????????Tangle是一種革命性的新型無區(qū)塊分布式分類帳粉捻,在IOTA體系中轉(zhuǎn)賬無需手續(xù)費礁遣,交易速度快。但是由于異步通信以及鏈結(jié)構(gòu)的問題肩刃, 一些交易可能遲遲得不到驗證祟霍,并且隨著網(wǎng)絡(luò)的增大可用性會降低。IOTA體系中沒有區(qū)塊的概念盈包,交易的驗證都是通過網(wǎng)絡(luò)其他交易發(fā)起者進行驗證的沸呐。IOTA網(wǎng)絡(luò)中想要發(fā)起交易必須為網(wǎng)絡(luò)貢獻交易驗證從而使網(wǎng)絡(luò)能夠持續(xù)運行。


IOTA區(qū)塊拓撲圖

發(fā)起交易基本上需要三步:

? ? ? ? 1. 構(gòu)建交易集和輸入簽名

? ? ? ? 2. 找到兩個沒有確認過的交易呢燥,驗證其有效性

? ? ? ? 3. 為交易集中的每筆交易做少量的PoW(抵御女巫攻擊和批量交易攻擊)

????????在IOTA系統(tǒng)中崭添,網(wǎng)絡(luò)中的每位參與者都能進行交易并且積極參與共識。更具體點說叛氨,你直接定位了兩筆交易(主交易和分支交易)滥朱,且間接在子tangle中定位其它交易。通過這種方式力试,驗證就能同步進行徙邻,網(wǎng)絡(luò)能夠保持完全去中心化,不需要礦工傳遞信任畸裳,也不需要支付交易手續(xù)費缰犁。

????????IOTA通過引入中心化的Validation對交易進行最終確認,只有Validation確認過的交易才算確認成功。Validation代碼沒有開源帅容,沒有具體細節(jié)颇象。一些人認為Validation如果撤銷,僅靠IOTA本身的共識很難保證安全并徘。

3. byteball

????????Byteball中沒有區(qū)塊的概念遣钳,也沒有區(qū)塊容量的問題。相反麦乞,每一個新的交易都通過包含和簽名它們的哈希來參考更早(父母交易)的一個或幾個交易蕴茴。交易中的鏈接形成了一個DAG(有向無環(huán)圖)


Byteball區(qū)塊拓撲圖

????????Byteball引入(12個)見證人和主鏈來達成共識,從而對交易進行排序姐直。凡是被超過一半見證人直接或間接確認的單元視為合法單元倦淀。主鏈?zhǔn)茄刂?父鏈接到一個單鏈,可以把所有單元都關(guān)聯(lián)到一起声畏。從如何一個頂點開始都可以構(gòu)造一個主鏈撞叽,以相同規(guī)則在兩個不同的頂點選擇主鏈,兩條主鏈一旦相交會在之后完全重合插龄,重合部分稱為穩(wěn)定主鏈愿棋。所有單元要么在穩(wěn)定主鏈上,要不從穩(wěn)定主鏈沿著DAG通過少量跳躍可以到達均牢。


????????給每個直接位于主鏈上的單元做索引糠雨,沿著主鏈序號遞增。對于不在主鏈的單元膨处,賦值為第一個直接或者間接引用該單元的主鏈單元。擁有較小的編號的單元被認為是更早生成的砂竖,發(fā)生沖突時較小的單元有效真椿。

????????當(dāng)獲得新單元時,每個節(jié)點會持續(xù)追蹤自身的主鏈(MC)乎澄,由于網(wǎng)絡(luò)延遲突硝,每個節(jié)點的主鏈可能會不一樣。但是MC中足夠老的部分會保持不變置济,未來回溯時會回溯到某個單元解恰,這個單元及其之前的所有MC單元都是穩(wěn)定的,隨著新單元的不斷加入浙于,穩(wěn)定點的擴展方式一致护盈,所有節(jié)點達成共識(Byteball用數(shù)學(xué)證明了這個結(jié)論)。穩(wěn)定點擴展的本質(zhì)是在當(dāng)前穩(wěn)定點的某一條子鏈的路徑上出現(xiàn)了超過一半的見證人(最優(yōu)父單元選擇算法)羞酗,就可以確定穩(wěn)定點能夠朝著當(dāng)前子鏈擴展腐宋。

4、HashGraph

????????HashGraph 則是有向無環(huán)圖(DAG)的一種,采用柱狀的交易事件排序機制胸竞。HashGraph共識的目的就是在各個節(jié)點的本地將這樣一個有向無環(huán)圖中各個頂點進行排序欺嗤。


HashGraph區(qū)塊拓撲圖

????????Gossip about Gossip:本質(zhì)上意味著向本次傳播附加一些額外的信息,即兩者之間互相通信傳播內(nèi)容的兩個哈希卫枝。通過使用這些信息煎饼,就可以創(chuàng)建Hashgraph。例如上圖最下方校赤,E收到B的消息之后吆玖,創(chuàng)建新的event E2,然后將E1和E2(E所知道的且C沒有的所有數(shù)據(jù))同時發(fā)送給隨機選擇的C痒谴,此時C生成一個新的event C2衰伯。隨著時間的推移就會生成上圖的形狀。

????????Virtual Voting:節(jié)點并不需要發(fā)送實際投票积蔚。每個節(jié)點本地存有一張Hashgraph意鲸。如果兩個節(jié)點的Hashgraph相同,就能用同樣的方法計算出所有event的排序尽爆。隨著時間的推移怎顾,時間較老的event就會達成一致。Hashgraph節(jié)約了帶寬并且無需工作量證明即可實現(xiàn)共識漱贱。

????????具體細節(jié)概念不展開槐雾。

5、Conflux

????????Conflux共識機制以及實驗數(shù)據(jù)是在比特幣源代碼框架下實現(xiàn)幅狮,沿用比特幣的POW機制募强。Conflux 的理念設(shè)計是可以容許不同區(qū)塊同時生成,并運用基于DAG概念的排序算法來避免分叉的問題崇摄。利用GHOST協(xié)議不通過最長鏈來選main chain擎值,而是選擁有子樹區(qū)塊最多的那條鏈。不同于之前先確定交易順序逐抑,再確定區(qū)塊順序的設(shè)計思路鸠儿,conflux是先把區(qū)塊順序算出來,再決定要保留哪些交易厕氨。


Conflux區(qū)塊拓撲圖

????????1)樂觀地處理并發(fā)塊

????????2)將塊組織成有向無環(huán)圖(DAG)

????????3)首先同意所有塊的所有交易(假設(shè)交易不會相互沖突)

????????4)然后從約定的塊順序派生交易訂單(懶惰地解決交易沖突)

????????具體細節(jié)概念不展開进每。


6、需要注意的問題:

1. 同步通信/異步通信

??? 異步通信導(dǎo)致的交易時長不可控命斧。

2. 節(jié)點一致性

??? 異步通信導(dǎo)致節(jié)點間賬本的不一致性田晚。

3. 女巫攻擊和影子鏈

??? DAG允許并行交易的特性導(dǎo)致攻擊者可能暗中生成影子鏈進行攻擊。交易免手續(xù)費容易導(dǎo)致女巫攻擊国葬。

4. 智能合約

????不存在全局排序機制肉瓦,導(dǎo)致系統(tǒng)支持的操作類型受限遭京,難以實現(xiàn)圖靈完備的智能合約體系。需要一個機構(gòu)確保智能合約的運行泞莉,主鏈和Coordinator實現(xiàn)類似的效果哪雕。

????DAG異步通信在運行智能合約時,節(jié)點間可能會出現(xiàn)偏差鲫趁。

5. 網(wǎng)絡(luò)傳輸數(shù)據(jù)量

????DAG結(jié)構(gòu)在全網(wǎng)N個節(jié)點時斯嚎,每一個消息都需要在設(shè)備間進行點對點通信,共需要N*N次數(shù)據(jù)發(fā)送。大量節(jié)點接入后,網(wǎng)絡(luò)傳輸數(shù)據(jù)量會出現(xiàn)大幅增長

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末浩螺,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子钉疫,更是在濱河造成了極大的恐慌,老刑警劉巖巢价,帶你破解...
    沈念sama閱讀 222,252評論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件牲阁,死亡現(xiàn)場離奇詭異,居然都是意外死亡壤躲,警方通過查閱死者的電腦和手機城菊,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來碉克,“玉大人凌唬,你說我怎么就攤上這事÷┞螅” “怎么了客税?”我有些...
    開封第一講書人閱讀 168,814評論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長撕贞。 經(jīng)常有香客問我更耻,道長,這世上最難降的妖魔是什么麻掸? 我笑而不...
    開封第一講書人閱讀 59,869評論 1 299
  • 正文 為了忘掉前任酥夭,我火速辦了婚禮赐纱,結(jié)果婚禮上脊奋,老公的妹妹穿的比我還像新娘。我一直安慰自己疙描,他們只是感情好诚隙,可當(dāng)我...
    茶點故事閱讀 68,888評論 6 398
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著起胰,像睡著了一般久又。 火紅的嫁衣襯著肌膚如雪巫延。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,475評論 1 312
  • 那天地消,我揣著相機與錄音炉峰,去河邊找鬼。 笑死脉执,一個胖子當(dāng)著我的面吹牛疼阔,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播半夷,決...
    沈念sama閱讀 41,010評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼婆廊,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了巫橄?” 一聲冷哼從身側(cè)響起淘邻,我...
    開封第一講書人閱讀 39,924評論 0 277
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎湘换,沒想到半個月后宾舅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,469評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡枚尼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,552評論 3 342
  • 正文 我和宋清朗相戀三年贴浙,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片署恍。...
    茶點故事閱讀 40,680評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡崎溃,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出盯质,到底是詐尸還是另有隱情袁串,我是刑警寧澤,帶...
    沈念sama閱讀 36,362評論 5 351
  • 正文 年R本政府宣布呼巷,位于F島的核電站囱修,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏王悍。R本人自食惡果不足惜破镰,卻給世界環(huán)境...
    茶點故事閱讀 42,037評論 3 335
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望压储。 院中可真熱鬧鲜漩,春花似錦、人聲如沸集惋。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽刮刑。三九已至喉祭,卻和暖如春养渴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背泛烙。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評論 1 274
  • 我被黑心中介騙來泰國打工理卑, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蔽氨。 一個月前我還...
    沈念sama閱讀 49,099評論 3 378
  • 正文 我出身青樓傻工,卻偏偏與公主長得像,于是被迫代替她去往敵國和親孵滞。 傳聞我的和親對象是個殘疾皇子中捆,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,691評論 2 361

推薦閱讀更多精彩內(nèi)容