TMT观察网_独特视角观察TMT行业

干貨 | 以太坊分片:overview and finality區(qū)塊鏈

medium 2018-06-25 14:15
分享到:
導(dǎo)讀

為了理解以太坊分片機制提案的技術(shù)規(guī)范,這是一篇你不可錯過的文章

在 Ethereum Casper 101 中,Jon Choi 對 Casper 做了一個很棒很清晰的綜述,并解釋了為什么顯式最終確定性(explicit finality)對于可擴展性(scalability)大有裨益。本文旨在給出一個以太坊分片的設(shè)計概覽,并闡釋顯式最終確定性如何有助于區(qū)塊鏈分片。

為了完全理解以太坊分片機制提案的技術(shù)規(guī)范,我強烈推薦深入研究 Vitalik 寫的sharding doc .

區(qū)塊鏈可擴展性問題

不斷增長的交易。

目前的塊生成過程導(dǎo)致可擴展性受限。區(qū)塊的 gas limit 束縛了區(qū)塊的計算容量。無論是提高區(qū)塊的 gas 上限,還是大大降低區(qū)塊時間,都會導(dǎo)致高陳腐率(high stale rate),并削弱網(wǎng)絡(luò)對抗攻擊的能力。

并行不足。首先,現(xiàn)有的 EVM 按先后順序依次處理交易。其次,出于安全和去中心化的考慮,每個全節(jié)點會執(zhí)行每一筆交易,并存儲整個(或修剪后)的狀態(tài)樹。

進階閱讀:并行執(zhí)行交易 EIP 648?—?Easy parallelizability

術(shù)語

首先,讓我們來看一下在主鏈(你可以理解為現(xiàn)在的 Mainnet chain)和分片鏈(shard chain)上不同層次的對象區(qū)別:

2.jpg

-表格 1. 術(shù)語-

可以簡單地這么認為,交易都會被裝入 “collation”。與區(qū)塊類似,一個 collation 也會指向它在鏈(指的是分片鏈)上的 parent collation。 成為一個 “collator”,就意味著你有資格在 POS 分片鏈上提名一個新的 collation。

3.jpg

-圖片 1. Collation基本數(shù)據(jù)結(jié)構(gòu)一瞥-

基本的二次分片

與側(cè)鏈類似,collation 只有一小部分的證明必須記錄在主鏈上 -- 這也是我們?nèi)绾螖U展區(qū)塊鏈的基本想法:

分片鏈上的交易處于自己獨立的空間中,分片驗證人(shard validator)只需要驗證他們所關(guān)注的分片。

分片鏈也通過 POS 機制依附于主鏈,以獲得 更高層次的共識(higher level of consensus)。

為了將分片鏈加入到主鏈中,在主鏈上需要有一個叫做驗證人管理員合約(VMC)的特殊合約。VMC 是這個分片機制的核心。VMC 的目的可以概括如下:

權(quán)益證明系統(tǒng)。如果驗證者表現(xiàn)不端,其權(quán)益將會被剝削。

偽隨機采樣。通過將當前塊哈希作為種子,采樣出合格的 collator?;旧?,驗證者將它們的保證金(stake)存入 VMC,然后他們的驗證代碼地址(validation code address)將會被記錄在一個 VMC 內(nèi)部的 全局驗證人列表(a global validators pool list)。系統(tǒng)將會從驗證人列表中采樣出一個分片鏈的驗證人,并將其指定為指定“時期(period,下面會解釋什么是 period)”內(nèi),指定分片的驗證人。這種方式使得驗證者無法提前預(yù)測他們何時會成為驗證者,也無法預(yù)測會成為哪個分片的驗證人。

Collation header 驗證。VMC 有一個 addHeader(bytes collationHeader) 函數(shù),該函數(shù)用=來驗證 collation header,并記錄有效的 collation header hash。這個函數(shù)提供了即時的 鏈上 驗證。

跨分片通信(cross-shard communication)。利用 UTXO 模型,并通過在主鏈上進行交易和創(chuàng)建一個 receipt(帶有 receipt ID),用戶可以將以太存入一個指定分片。分片鏈上的用戶可以給定 receipt ID 創(chuàng)建一個消費 receipt(receipt-consuming)的交易,來花費該 receipt。

鏈上治理(on-chain governance)。將 VMC 作為議會,使得驗證人可以在鏈上進行投票。

在階段 1,VMC 將會維護 100 個分片( SHARD_COUNT = 100 )。每個分片并行執(zhí)行,分片 i 的客戶端只需要驗證分片 i 上的交易。

“時期(period)”被定義為一個區(qū)塊時間的準備窗口(a bounding a window of block times),比如 PERIOD_LENGTH = 5 意味著每個周期有 5 個塊。這表明在每個周期內(nèi),對于每個分片只有不超過 1 個有效的 collation。

4.jpg

-圖片 2(a). 二次分片。分片狀態(tài)的證明將被記錄在主鏈VMC上。-

一旦驗證人被采樣為合格的 collator 來提案一個新的 collation,collator 必須對最近的 collation 進行驗證,并發(fā)送一筆交易來調(diào)用 addHeader 函數(shù)。注意,如果 collator 周期 10 被采樣到提交一個新的 collation,這意味著 addHeader 交易 必須被包含在周期 10 里面,也就是說,交易必須在區(qū)塊號 10 * PERIOD_LENGTH 到區(qū)塊號 (10 1) * PERIOD_LENGTH - 1 之間.

5.jpg

-圖片 2(b). 

對于一個片來說,一個period只有一個collation;一個區(qū)塊可以包含不同片的多個 addHeader 交易-

collation header hash 必須被記錄在 VMC 上,以證明它的 header 全局有效。此外,分片的所有其他驗證人必須時刻檢測 VMC 以獲得最新狀態(tài),然后驗證交易是否也有效。

在基本分片中,分叉選擇規(guī)則依賴于最長主鏈。給定一個分片,它的有效 head collation 不是簡單的“最長有效分片鏈(longest valid shard chain)”的 head collation,而是“在最長有效主鏈里面的最長有效分片鏈(the longest valid shard chain within the longest valid main chain)”。

Figure 3(a) 中有個例子,主鏈上有兩個分叉,在下圖中第二條鏈是最長有效主鏈。因為 block B3 是 head block,很容易看出 collation C3 是 head collation。

6.jpg

-圖片 3(a)-

然后 Figure 3(b) 中 block B3' 到了。假設(shè) block B3 的得分(score)高于 block B3',那么上面的鏈仍然是最長主鏈:

7.jpg

-圖片 3(b)-

最后 Figure 3(c) 到了 block 4。注意到,對于這個分片,雖然 collation C3 的得分比 collation C2 更高,但是下方的鏈是最長有效主鏈,所有現(xiàn)在 collation C2 是 head collation:

8.jpg

-圖片 3(c)-

更多內(nèi)容:另一個設(shè)計 -- Vlad Zamfir 的 sharded fork choice rule

9.jpg

-一個精巧的設(shè)計,保證區(qū)塊鏈可以在它們被最終化(finalized)之前原子化-

可擴展性與安全性之權(quán)衡

對于 去中心化,可擴展性 和 安全性 這三個屬性,區(qū)塊鏈系統(tǒng)最多只能三選其二。

— Blockchain Trilemma in Sharding FAQ

出于對系統(tǒng)安全的保證導(dǎo)致了可擴展性受限 3。當為了提高 TPS(每秒交易數(shù))將交易分配到各分片的同時,我們隨之也減少了每筆交易的計算資源。

分片的其中一個重要機制就是,如何在鏈上生成隨機數(shù)。

collator 被選中的幾率,應(yīng)該僅與驗證者的保證金相關(guān),且成比例。

如果驗證人能夠預(yù)測,或是任意選擇他們想要參與的分片,那么不誠實的驗證人既可以相互共謀,展開一個適應(yīng)性攻擊(adaptive attack)。

如果采樣不能以較高的隨機性進行選擇,那么攻擊者很可能在分片中展開 1% 攻擊:如果有 100 個分片,攻擊者可以專注于攻擊某一個分片,他們只需要 1% 的hash rate(POW)/deposit(POS) 就可以控制分片.

10.jpg

-圖片 4. 傳統(tǒng)的多數(shù)攻擊(51%攻擊)-

11.jpg

-圖片 5. 分片上的1%攻擊-

分片的區(qū)塊鏈顯式最終確定性

首先,我必須聲明,分片機制應(yīng)該同時能夠應(yīng)用于 POW 與 POS 的鏈。即使如此,顯式最終確定性這個小物件也跟 Casper 一樣,可以使得分片更加健壯。

在一般的 POW 鏈中,最終確定性是概率性,隱式的。簡單來說,即使區(qū)塊獲得了數(shù)以千次的確認,仍有可能對鏈進行重寫。相反,將 Casper the Friendly Finality Gadget (“FFG”) 加密經(jīng)濟機制應(yīng)用于 POS ,顯式地在協(xié)議內(nèi)(in-protocol)強制保證對我們來說,是否是最終確定 (we-can-check-if-its-finalized-for-us)。

[來自 Vlad] 協(xié)議內(nèi)顯式最終確定性閾值有個經(jīng)濟風(fēng)險:它在 2/3 1 和 1/3 1 之間創(chuàng)造了一個理想的 卡特爾大?。╟artel size)。相應(yīng)地,任何不在 2/3 1 同盟節(jié)點(coalition),其最終確定性的邊際貢獻就將為 0。

在基本分片中,分片鏈錨定與主鏈之上。

對于分片驗證人,我們希望分片,區(qū)塊鏈容量在階段 1 擴容 100 倍,因此這 100 個分片的所有驗證人,都將需要監(jiān)測 VMC 狀態(tài)來獲得正確有效的 head collation。對于驗證人來說,重要的一點是,要盡快確信他們是否是 collator。對于普通用戶而言,如果我們在階段 2 應(yīng)用跨分片交易,普通用戶也將需要在 VMC 上檢索他們的保證金信息(receipt ID)。

顯式最終確定性,將會有助于緩解主鏈與大量分片鏈之間同步的不確定性。

無狀態(tài)客戶端的基本原則是,它不存儲整個狀態(tài)樹,相反,無狀態(tài)客戶端只存儲狀態(tài)樹根。歸檔客戶端(archival clients)存儲整個狀態(tài)樹,并提供給定 collation 所需 的 Merkle 分支。有了這些 Merkle 分支,無狀態(tài)客戶端就能夠構(gòu)建部分的狀態(tài)樹,并驗證 collation 。

一旦完成驗證人采樣并再混洗(reshuffle),就會立刻觸發(fā)同步。有了無狀態(tài)客戶端機制,再混洗(也就是改變驗證者檢測的分片,并同步分片鏈)的成本低至(接近)0,因為它們只需要驗證最新的 collation(也就是有著最高得分的 collation)來同步分片。

12.jpg

-圖片 6. 無狀態(tài)客戶端模型Figure 6. Stateless client model-

因為同步過程可能非常快,無狀態(tài)客戶端模型就可能在每個 collation 之間再混洗成。這不僅會減輕存儲壓力和開銷,也會使系統(tǒng)更安全,因為頻繁采樣能夠獲得適應(yīng)性攻擊的抵抗能力。

Casper FFG 將會提供顯式最終確定性閾值after about 2.5 “epoch times”,也就是說,125 個區(qū)塊時間 。如果在再混洗期間,驗證人能夠驗證超過 125 / PERIOD_LENGTH = 25 collation,分片系統(tǒng)能夠從顯式最終確定性中受益,確信從現(xiàn)在起的前 25 個 collation 可以最終確定。

當然了,如果在同步時有更多 collation 得到驗證,就會更加安全。

結(jié)束語

希望我已經(jīng)對當前以太坊的分片設(shè)計概念作出了簡單介紹,以及顯式最終確定性如何有益于分片機制。如果想要深入了解協(xié)議設(shè)計,請訪問 ETHResear.ch 和 sharding doc。

如有任何錯誤,或是表述不清,歡迎指正!

特別感謝 Vitalik Buterin 的杰出工作,Jon Choi 督促我寫下這篇文章,Dr.Chang-Wu Chen 修繕,Brian Chen 給予反饋 以及 Vlad Zamfir 的分享。

分片 驗證 collation 交易 區(qū)塊
分享到:

1.TMT觀察網(wǎng)遵循行業(yè)規(guī)范,任何轉(zhuǎn)載的稿件都會明確標注作者和來源;
2.TMT觀察網(wǎng)的原創(chuàng)文章,請轉(zhuǎn)載時務(wù)必注明文章作者和"來源:TMT觀察網(wǎng)",不尊重原創(chuàng)的行為TMT觀察網(wǎng)或?qū)⒆肪控?zé)任;
3.作者投稿可能會經(jīng)TMT觀察網(wǎng)編輯修改或補充。


專題報道

主站蜘蛛池模板: 合肥汽车充电桩_安徽充电桩_电动交流充电桩厂家_安徽科帝新能源科技有限公司 | 哲力实业_专注汽车涂料汽车漆研发生产_汽车漆|修补油漆品牌厂家 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 12cr1mov无缝钢管切割-15crmog无缝钢管切割-40cr无缝钢管切割-42crmo无缝钢管切割-Q345B无缝钢管切割-45#无缝钢管切割 - 聊城宽达钢管有限公司 | 博医通医疗器械互联网供应链服务平台_博医通 | 托盘租赁_塑料托盘租赁_托盘出租_栈板出租_青岛托盘租赁-优胜必达 | 校服厂家,英伦校服定做工厂,园服生产定制厂商-东莞市艾咪天使校服 | 金属雕花板_厂家直销_价格低-山东慧诚建筑材料有限公司 | 细石混凝土泵_厂家_价格-烟台九达机械有限公司 | 广东佛电电器有限公司|防雷开关|故障电弧断路器|智能量测断路器 广东西屋电气有限公司-广东西屋电气有限公司 | 冷却塔厂家_冷却塔维修_冷却塔改造_凉水塔配件填料公司- 广东康明节能空调有限公司 | 高速龙门架厂家_监控杆_多功能灯杆_信号灯杆_锂电池太阳能路灯-鑫世源照明 | 扬子叉车厂家_升降平台_电动搬运车|堆高车-扬子仓储叉车官网 | 防弹玻璃厂家_防爆炸玻璃_电磁屏蔽玻璃-四川大硅特玻科技有限公司 | 精密五金加工厂-CNC数控车床加工_冲压件|蜗杆|螺杆加工「新锦泰」 | 煤矿人员精确定位系统_矿用无线通信系统_煤矿广播系统 | 设定时间记录电子秤-自动累计储存电子秤-昆山巨天仪器设备有限公司 | 防渗土工膜|污水处理防渗膜|垃圾填埋场防渗膜-泰安佳路通工程材料有限公司 | 双段式高压鼓风机-雕刻机用真空泵-绍兴天晨机械有限公司 | 陶氏道康宁消泡剂_瓦克消泡剂_蓝星_海明斯德谦_广百进口消泡剂 | 线材成型机,线材折弯机,线材成型机厂家,贝朗自动化设备有限公司1 | 成都竞价托管_抖音代运营_网站建设_成都SEM外包-成都智网创联网络科技有限公司 | 磷酸肌酸二钠盐,肌酐磷酰氯-沾化欣瑞康生物科技 | 论文查重_免费论文查重_知网学术不端论文查重检测系统入口_论文查重软件 | 智能垃圾箱|垃圾房|垃圾分类亭|垃圾分类箱专业生产厂家定做-宿迁市传宇环保设备有限公司 | 广东护栏厂家-广州护栏网厂家-广东省安麦斯交通设施有限公司 | 三氯异氰尿酸-二氯-三氯-二氯异氰尿酸钠-优氯净-强氯精-消毒片-济南中北_优氯净厂家 | 壹作文_中小学生优秀满分作文大全 | 无尘烘箱_洁净烤箱_真空无氧烤箱_半导体烤箱_电子防潮柜-深圳市怡和兴机电 | 知网论文检测系统入口_论文查重免费查重_中国知网论文查询_学术不端检测系统 | 伸缩节_伸缩器_传力接头_伸缩接头_巩义市联通管道厂 | 神超官网_焊接圆锯片_高速钢锯片_硬质合金锯片_浙江神超锯业制造有限公司 | 破碎机锤头_合金耐磨锤头_郑州宇耐机械工程技术有限公司 | 橡胶膜片,夹布膜片,橡胶隔膜密封,泵阀设备密封膜片-衡水汉丰橡塑科技公司网站 | 乳化沥青设备_改性沥青设备_沥青加温罐_德州市昊通路桥工程有限公司 | 台式低速离心机-脱泡离心机-菌种摇床-常州市万丰仪器制造有限公司 | sfp光模块,高速万兆光模块工厂-性价比更高的光纤模块制造商-武汉恒泰通 | 齿轮减速机_齿轮减速电机-VEMT蜗轮蜗杆减速机马达生产厂家瓦玛特传动瑞环机电 | 压片机_高速_单冲_双层_花篮式_多功能旋转压片机-上海天九压片机厂家 | 钢木实验台-全钢实验台-化验室通风柜-实验室装修厂家-杭州博扬实验设备 | 浙江工业冷却塔-菱电冷却塔厂家 - 浙江菱电冷却设备有限公司 | 重庆波纹管|重庆钢带管|重庆塑钢管|重庆联进管道有限公司 |