區(qū)塊鏈分片設(shè)計(jì)框架

1. 概述

????????將網(wǎng)絡(luò)的整個(gè)狀態(tài)分割成一系列被稱為分片的分區(qū)兆龙,其中包含自己獨(dú)立的狀態(tài)片及交易歷史記錄。

解決的問題:

(1) 網(wǎng)絡(luò)分片

????????利用隨機(jī)性將區(qū)塊鏈網(wǎng)絡(luò)中的各個(gè)節(jié)點(diǎn)分割成若干個(gè)小網(wǎng)絡(luò)豺旬,每一個(gè)小網(wǎng)絡(luò)即是一個(gè)分片终抽,這也是分片技術(shù)的第一步溯警。

(2) 交易分片

????????在進(jìn)行網(wǎng)絡(luò)分片后戈抄,根據(jù)網(wǎng)絡(luò)內(nèi)的每一筆交易的獨(dú)特標(biāo)識(shí)(例如哈希值)來決定這筆交易由哪個(gè)分片來處理。

(3) 狀態(tài)分片

????????在一個(gè)狀態(tài)分片的區(qū)塊鏈網(wǎng)絡(luò)中扰楼,某一個(gè)特定的分片只會(huì)保留一部分交易數(shù)據(jù)呀癣,而并非全網(wǎng)所有的交易數(shù)據(jù)。


2. 需要考慮的問題[2]

1.?????跨分片通信- 如何安全地增加跨分片通信灭抑。

2.? ? ?單分片接管攻擊- 在一個(gè)分片中攻擊者接管了大多數(shù)協(xié)調(diào)者

3.?????欺詐檢測(cè)-節(jié)點(diǎn)如何能夠得知一個(gè)無效的排序規(guī)則十艾,以便它們可以驗(yàn)證欺詐行為并且確認(rèn)是欺詐行為之后拒絕這個(gè)排序規(guī)則?

4.?????數(shù)據(jù)可用性問題- 由于某種特定的原因腾节,一些特定的分片遭到了攻擊而導(dǎo)致其脫機(jī)忘嫉。由于分片并沒有復(fù)制系統(tǒng)的全部狀態(tài),所以網(wǎng)絡(luò)不能再驗(yàn)證那些依賴于脫機(jī)分片的交易案腺。

????????解決此問題的方法是維護(hù)存檔或進(jìn)行節(jié)點(diǎn)備份庆冕,這樣就能幫助系統(tǒng)進(jìn)行故障修復(fù)以及恢復(fù)那些不可用的數(shù)據(jù)。但是劈榨,這樣就使得一些節(jié)點(diǎn)將不得不存儲(chǔ)系統(tǒng)的整個(gè)狀態(tài)访递,同時(shí)這還會(huì)引發(fā)一些中心化的風(fēng)險(xiǎn)。

5.?????火車旅館問題-? 假設(shè)用戶想要購(gòu)買一張火車票預(yù)訂一家旅館同辣,并且想要確保這個(gè)操作是原子的拷姿。如果兩者在不同的分片上,如何保證來自于跨分片的消息可以在固定的周期內(nèi)被包含在另外的分片中旱函。

6.?????隨機(jī)數(shù)產(chǎn)生- A.確定性門限簽名方法是另一種不被少數(shù)群體聯(lián)盟利用的隨機(jī)數(shù)生成方式响巢。B.使用區(qū)塊的哈希作為隨機(jī)種子。C. others

7.? ? ?用戶端保存狀態(tài)- 無狀態(tài)客戶端: 不存儲(chǔ)整個(gè)狀態(tài)樹棒妨,只存儲(chǔ)狀態(tài)樹根踪古。

8.? ? ?分叉選擇規(guī)則- 發(fā)生分叉的選擇規(guī)則


3. 以太坊

3.1 共識(shí)機(jī)制

????????由于POW共識(shí)會(huì)導(dǎo)致算力分散,容易出現(xiàn)單分片接管券腔。以太坊選擇了POS共識(shí)作為分片后的共識(shí)伏穆。但是POS存在兩個(gè)問題:

1.? ? ? 無利害攻擊問題

????????早期的Pos機(jī)制下,只考慮到獎(jiǎng)勵(lì)纷纫,沒有對(duì)應(yīng)的懲罰機(jī)制枕扫,產(chǎn)塊者傾向于兩個(gè)分支都添加,因?yàn)樗挥酶冻鲱~外的代價(jià)辱魁,但是增加了收益概率铡原。

2.? ? ? 遠(yuǎn)程攻擊問題

????????某個(gè)時(shí)刻偷厦,網(wǎng)絡(luò)中的大多數(shù)人從一個(gè)歷史久遠(yuǎn)的塊開始分叉商叹。

????????基于上訴兩個(gè)問題燕刻,以太坊設(shè)計(jì)了Casper共識(shí)[4]。Casper是一種基于保證金的經(jīng)濟(jì)激勵(lì)共識(shí)協(xié)議剖笙,必須先繳納保證金才可以參與出塊和共識(shí)形成卵洗,一個(gè)驗(yàn)證人作出了任何Casper認(rèn)為“無效”的事情,他的保證金將被罰沒弥咪,出塊和參與共識(shí)的權(quán)利也會(huì)被取消过蹂。

????????投注共識(shí):驗(yàn)證人對(duì)每一個(gè)高度上的每一個(gè)候選塊獨(dú)立下注,給每個(gè)塊指定一個(gè)勝出概率并公布聚至。驗(yàn)證人中的絕大多數(shù)以非常高的概率下注某個(gè)塊時(shí)酷勺,任何不包含這個(gè)塊的分叉都不可能勝出,此時(shí)我們說這個(gè)塊已最終確認(rèn)扳躬。

具體細(xì)節(jié)不展開


3.2??設(shè)計(jì)框架

以太坊分片架構(gòu)

1)? Main chain 主鏈

????????以太坊2.0的初始部署階段脆诉,是不需要對(duì)PoW鏈進(jìn)行共識(shí)更改的。相反的是贷币,我們會(huì)向PoW鏈添加一個(gè)注冊(cè)合約属划,以存入ETH轧叽。這個(gè)注冊(cè)合約會(huì)通過beacon鏈發(fā)出一個(gè)帶有各種參數(shù)的日志。它不會(huì)進(jìn)行驗(yàn)證,而是把注冊(cè)邏輯發(fā)送給beacon鏈菱农。

2)? Beacon chain 信標(biāo)鏈

Beacon鏈?zhǔn)荘oS系統(tǒng)的“主鏈”,beacon鏈的主要職責(zé)是:

1. 存儲(chǔ)并維護(hù)活躍悦污、列隊(duì)等待以及退出驗(yàn)證者的集合代芜;

2. 處理交聯(lián)(交聯(lián)是beacon鏈“了解”分片鏈更新狀態(tài)的主要手段);

3. 處理逐塊一致性瘸味,以及finality gadget宫仗;

4. 為每個(gè)分片指定所選的區(qū)塊提議者;

5. 組織驗(yàn)證者進(jìn)入委員會(huì)硫戈,對(duì)擬議的區(qū)塊進(jìn)行投票锰什;

6. 用共識(shí)規(guī)則對(duì)驗(yàn)證者實(shí)施獎(jiǎng)勵(lì)和處罰;

7. 作為一個(gè)錨點(diǎn)丁逝,其中分片會(huì)注冊(cè)它們的狀態(tài)汁胆,以促進(jìn)跨分片交易;

????????成為驗(yàn)證者的唯一機(jī)制霜幼,是往以太坊PoW主鏈發(fā)送一筆包含32 ETH 的交易至一個(gè)注冊(cè)合約嫩码。

????????在注冊(cè)器合約內(nèi)質(zhì)押的是 PoW 以太,獲得的收據(jù)可以“創(chuàng)造”出PoS 以太罪既。因?yàn)樽?cè)器合約無法撤銷铸题,所以 PoS 以太不能轉(zhuǎn)回 PoW 以太铡恕,并且只有在驗(yàn)證者退出系統(tǒng)之時(shí)才能被退回到一個(gè)分片地址,而且 PoS 以太(在初期階段)是不能交易的丢间。雙生以太并行的狀況不會(huì)持續(xù)太久探熔,除非發(fā)生以下情況[3]:

1. 狀態(tài)轉(zhuǎn)換即將實(shí)現(xiàn),參與者可以選擇撤銷注冊(cè)器合約烘挫,PoS 以太可以轉(zhuǎn)換成等價(jià)值的 PoW 以太诀艰。

2. PoW 鏈變成一個(gè)分片或者存儲(chǔ)合約,PoW 以太會(huì)被逐漸淘汰饮六,并在匹配地址上自動(dòng)轉(zhuǎn)換為 PoS 以太(向后兼容)其垄。

3)? Shard chain 分片鏈

????????分片鏈只有一小部分的證明必須記錄在主鏈上。 分片鏈上的交易處于自己獨(dú)立的空間中卤橄,分片驗(yàn)證人只需要驗(yàn)證他們所關(guān)注的分片绿满。 分片鏈也通過 POS 機(jī)制依附于主鏈,以獲得更高層次的共識(shí)(higher level ofconsensus)窟扑。

????????跨分片通信喇颁。利用 UTXO 模型,并通過在主鏈上進(jìn)行交易和創(chuàng)建一個(gè)receipt辜膝,用戶可以將以太存入一個(gè)指定分片无牵。分片鏈上的用戶可以給定 receipt ID 創(chuàng)建一個(gè)消費(fèi) receipt的交易,來花費(fèi)該 receipt厂抖。


3.1 細(xì)節(jié)補(bǔ)充

1) 節(jié)點(diǎn)類型:

A. Proposer

????????Proposer是交易池的維護(hù)者茎毁。負(fù)責(zé)為proposal(collation

header)做準(zhǔn)備而收集交易,并負(fù)責(zé)廣播collation body忱辅。任何人都可以成為proposer七蜘。

B. Collator

????????Collator是由為隨機(jī)函數(shù)選出的合法collator,其身份的合法性只在指定時(shí)間段和指定分片內(nèi)有效墙懂。它的主要作用就是collates the proposal以建立collation橡卤。Collator從所有分片的collator pool中選出。

C. Executor

????????Executor執(zhí)行狀態(tài)交易函數(shù)损搬。其實(shí)proposer也應(yīng)該是executor碧库,都是擁有獲取交易所花費(fèi)gas和選擇高手續(xù)費(fèi)的交易等能力的身份。

?

2) 交易的執(zhí)行流程

交易執(zhí)行流程

? ? ? ? 以太坊主鏈每個(gè)時(shí)間段新生成的區(qū)塊巧勤,都會(huì)將在此時(shí)間點(diǎn)之前的五個(gè)區(qū)塊打包在內(nèi)嵌灰。這也被成為“LookAhead”。每個(gè)validator都會(huì)借由LookAhead來確認(rèn)在未來他們將負(fù)責(zé)驗(yàn)證的是哪個(gè)分片颅悉。也就是驗(yàn)證者是先得知會(huì)被劃分到哪個(gè)分片的沽瞭。在指定時(shí)間段內(nèi),每個(gè)區(qū)塊的驗(yàn)證者都會(huì)面臨新一輪的隨機(jī)選擇(共5個(gè)區(qū)塊剩瓶,共五個(gè)validator)驹溃。當(dāng)?shù)竭_(dá)主鏈出塊時(shí)間城丧,所有validator都會(huì)將已校驗(yàn)的交易發(fā)送到交易池中。檢驗(yàn)發(fā)起者需要向交驗(yàn)者支付激勵(lì)豌鹤。交驗(yàn)者下載潛在的分片提案亡哄。驗(yàn)證者驗(yàn)證數(shù)據(jù)的有效性,并挑選當(dāng)前分片中最新區(qū)塊傍药,然后將collation header提交給主鏈磺平。由礦工負(fù)責(zé)挖礦生成新的主鏈的區(qū)塊。


SMC框架

????????可以簡(jiǎn)單地這么認(rèn)為拐辽,分片中的交易都會(huì)被裝入“校對(duì)塊” (collation)。 與側(cè)鏈類似擦酌,校對(duì)器(collator)只有一小部分會(huì)被記錄到主鏈

????????以太坊2.0將以太網(wǎng)絡(luò)分為兩層俱诸,上層為現(xiàn)有的以太坊(也叫主鏈),基本保持不變赊舶;下層為各個(gè)分片睁搭,他們相互獨(dú)立,擁有不同的賬戶空間笼平。各個(gè)分片延生屬于自己的鏈园骆,并將最新區(qū)塊頭發(fā)給主鏈。主鏈?zhǔn)占鱾€(gè)分片的區(qū)塊頭寓调,然后生成主鏈區(qū)塊锌唾。值得注意的是,在主鏈上只保存各個(gè)分片的區(qū)塊頭夺英,具體交易并不在主鏈上保存晌涕。


分片鏈與主鏈

4. Zilliqa[5]

????????Zilliqa通過Pow算法完成網(wǎng)絡(luò)節(jié)點(diǎn)的劃分過程:選出1個(gè)Boss分片和多個(gè)工作分片,每個(gè)分片有不低于600個(gè)節(jié)點(diǎn)痛悯。其設(shè)計(jì)思想來源于谷歌提出的Map-reduce編程模型的思想余黎。

????????1) Map:網(wǎng)絡(luò)上的每一筆交易會(huì)根據(jù)發(fā)送者的地址被映射到工作分片中,工作分片通過pBFT共識(shí)算法在各自的分片當(dāng)中驗(yàn)證交易载萌,最終形成當(dāng)前工作分片中的子區(qū)塊惧财。

????????2)Reduce(Merge):工作分片將子區(qū)塊發(fā)送到Boss分片,Boss分片將多個(gè)子區(qū)塊進(jìn)行驗(yàn)證扭仁、打包垮衷,合并生成最終區(qū)塊,保存在各個(gè)節(jié)點(diǎn)當(dāng)中斋枢。

????????在Zilliqa的設(shè)計(jì)中帘靡,每600-800個(gè)節(jié)點(diǎn)就會(huì)被分配為一個(gè)網(wǎng)絡(luò)分片,而由多個(gè)分片形成的并行網(wǎng)絡(luò)就是分片網(wǎng)絡(luò)瓤帚。通過多重簽名協(xié)議讓PBTF共識(shí)更高效描姚,理論上在pBTF共識(shí)下涩赢,只有分片數(shù)量小于50個(gè)節(jié)點(diǎn)的時(shí)候,它的效率才能達(dá)到最佳轩勘。通過多重簽名優(yōu)化和壓縮通信的次數(shù)和數(shù)據(jù)的大小筒扒,而從達(dá)到優(yōu)化通信成本的目的。

????????節(jié)點(diǎn)通過pow驗(yàn)證的方式才準(zhǔn)許其節(jié)點(diǎn)進(jìn)入網(wǎng)絡(luò)绊寻,PoW來防止女巫節(jié)點(diǎn)攻擊花墩、確認(rèn)節(jié)點(diǎn)身份并隨機(jī)進(jìn)行分片。參與共識(shí)協(xié)議的每個(gè)礦工都可以獲得對(duì)應(yīng)的獎(jiǎng)勵(lì)澄步。每個(gè)節(jié)點(diǎn)依然保持所有歷史記錄冰蘑,并沒有解決存儲(chǔ)空間的擴(kuò)展性問題。

5.?QuarkChain

????????QuarkChain由兩層區(qū)塊鏈結(jié)構(gòu)組成村缸,第一層為分片層(可以理解為子鏈層)祠肥,用于交易記賬;第二層為一條根鏈梯皿,用于確認(rèn)分片中的交易仇箱。在不影響根鏈的情況下,分片層的分片數(shù)量可以動(dòng)態(tài)增加东羹,從而來提高系統(tǒng)的整體吞吐量剂桥。


????????QuarkChain的分片技術(shù)沒有采取任何的隨機(jī)機(jī)制來合理分配分片上的節(jié)點(diǎn),因此安全性方面存在潛在的隱患属提∪ǘ海跨分片交易過多,或者網(wǎng)絡(luò)中存在大量的跨分片交易垒拢,QuarkChain 網(wǎng)絡(luò)中的吞吐量也會(huì)下降旬迹。

QuarkChain中跨分片交易的流程分為三步:

????????① 發(fā)送方所屬分片內(nèi)記錄交易信息,分片內(nèi)打包成小塊求类,10秒一個(gè)區(qū)塊

????????② 發(fā)送方所屬分片提交區(qū)塊信息到根鏈奔垦,60秒一個(gè)區(qū)塊。

????????③ 根鏈確認(rèn)之后接收方分片進(jìn)行同步信息尸疆,10秒一個(gè)區(qū)塊椿猎。

????????QuarkChain上采用了分片和根鏈層的協(xié)同挖礦,協(xié)同挖礦的目標(biāo)是通過激勵(lì)機(jī)制和難度算法使得算力能均勻的分配到網(wǎng)絡(luò)上寿弱。在實(shí)際的區(qū)塊鏈網(wǎng)絡(luò)和pow共識(shí)機(jī)制中犯眠,僅靠難度算法和激勵(lì)機(jī)制并不能完全杜絕礦工聯(lián)合作惡的問題,而QuarkChain在此問題上沒有提供更好的解決方案症革。

????????QuarkChain提供了一個(gè)簡(jiǎn)單的賬戶管理系統(tǒng)筐咧。用戶只需要一個(gè)帳戶即可管理所有分片上的地址。在QuarkChain的設(shè)計(jì)中,每個(gè)分片中都會(huì)存在著一個(gè)賬戶的地址量蕊,其中一個(gè)擁有私鑰的帳戶可以在任何分片上執(zhí)行交易铺罢。實(shí)質(zhì)上當(dāng)一個(gè)用戶在沒有余額的分片上進(jìn)行交易時(shí),首先需要由擁有余額的分片賬戶轉(zhuǎn)到目標(biāo)賬戶残炮,然后用戶才能進(jìn)一步進(jìn)行操作韭赘。根本的結(jié)構(gòu)上還是需要對(duì)不同分片上的地址進(jìn)行跨分片交易才能做到金額調(diào)動(dòng)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末势就,一起剝皮案震驚了整個(gè)濱河市泉瞻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌苞冯,老刑警劉巖袖牙,帶你破解...
    沈念sama閱讀 222,252評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異抱完,居然都是意外死亡贼陶,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,886評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門巧娱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人烘贴,你說我怎么就攤上這事禁添。” “怎么了桨踪?”我有些...
    開封第一講書人閱讀 168,814評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵老翘,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我锻离,道長(zhǎng)铺峭,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,869評(píng)論 1 299
  • 正文 為了忘掉前任汽纠,我火速辦了婚禮卫键,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘虱朵。我一直安慰自己莉炉,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,888評(píng)論 6 398
  • 文/花漫 我一把揭開白布碴犬。 她就那樣靜靜地躺著絮宁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪服协。 梳的紋絲不亂的頭發(fā)上绍昂,一...
    開封第一講書人閱讀 52,475評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼窘游。 笑死唠椭,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的张峰。 我是一名探鬼主播泪蔫,決...
    沈念sama閱讀 41,010評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼喘批!你這毒婦竟也來了撩荣?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,924評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤饶深,失蹤者是張志新(化名)和其女友劉穎餐曹,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體敌厘,經(jīng)...
    沈念sama閱讀 46,469評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡台猴,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,552評(píng)論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了俱两。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片饱狂。...
    茶點(diǎn)故事閱讀 40,680評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖宪彩,靈堂內(nèi)的尸體忽然破棺而出休讳,到底是詐尸還是另有隱情,我是刑警寧澤尿孔,帶...
    沈念sama閱讀 36,362評(píng)論 5 351
  • 正文 年R本政府宣布俊柔,位于F島的核電站,受9級(jí)特大地震影響活合,放射性物質(zhì)發(fā)生泄漏雏婶。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,037評(píng)論 3 335
  • 文/蒙蒙 一白指、第九天 我趴在偏房一處隱蔽的房頂上張望留晚。 院中可真熱鬧,春花似錦侵续、人聲如沸倔丈。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,519評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)需五。三九已至,卻和暖如春轧坎,著一層夾襖步出監(jiān)牢的瞬間宏邮,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,621評(píng)論 1 274
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蜜氨,地道東北人械筛。 一個(gè)月前我還...
    沈念sama閱讀 49,099評(píng)論 3 378
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像飒炎,于是被迫代替她去往敵國(guó)和親埋哟。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,691評(píng)論 2 361

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