乾貨| 以太坊分片:overview and finality
星球君的朋友们
2018-06-25 02:02
本文约4732字,阅读全文需要约19分钟
以太坊分片的設計概覽。

本文來自:CSDN本文來自:liuchengxu區塊鏈可擴展性問題

原文鏈接:

原文鏈接:https://medium.com/@icebearhww/ethereum-sharding-and-finality-65248951f649

Ethereum Casper 101

區塊鏈可擴展性問題sharding doc .

區塊鏈可擴展性問題


  • 區塊鏈可擴展性問題

  • 區塊鏈可擴展性問題

  • 區塊鏈可擴展性問題


不斷增長的交易。EIP 648 — Easy parallelizability

並行不足。首先,現有的EVM 按先後順序依次處理交易。其次,出於安全和去中心化的考慮,每個全節點會執行每一筆交易,並存儲整個(或修剪後)的狀態樹。

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

圖片描述

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

圖片描述

基本的二次分片

基本的二次分片

基本的二次分片


  • 分片鏈的共識依賴於主鏈

  • 分片鏈的共識依賴於主鏈


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

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


  • 驗證人管理員合約(Validator Manager Contract, VMC)

  • 驗證人管理員合約(Validator Manager Contract, VMC)

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

  • 權益證明系統。如果驗證者表現不端,其權益將會被剝削。

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


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

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

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

圖片描述

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

圖片描述

圖片描述

-圖片2(b). 對於一個片來說,一個period只有一個collation;一個區塊可以包含不同片的多個addHeader 交易-

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

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

圖片描述

然後Figure 3(b) 中block B3' 到了。假設block B3 的得分(score)高於block B3',那麼上面的鏈仍然是最長主鏈:

圖片描述

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

圖片描述

更多內容:另一個設計-- Vlad Zamfir 的sharded fork choice rule

圖片描述

圖片描述

圖片描述

— Blockchain Trilemma in Sharding FAQ

-一個精巧的設計,保證區塊鏈可以在它們被最終化(finalized)之前原子化-3可擴展性與安全性之權衡

對於去中心化,可擴展性和安全性這三個屬性,區塊鏈系統最多只能三選其二。


  • 出於對系統安全的保證導致了可擴展性受限

  • 。當為了提高TPS(每秒交易數)將交易分配到各分片的同時,我們隨之也減少了每筆交易的計算資源。


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

-圖片4. 傳統的多數攻擊(51%攻擊)-

圖片描述

圖片描述

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

分片的區塊鏈顯式最終確定性

隱式最終確定性vs 顯式最終確定性隱式最終確定性vs 顯式最終確定性首先,我必須聲明,分片機制應該同時能夠應用於POW 與POS 的鏈。即使如此,顯式最終確定性這個小物件也跟Casper 一樣,可以使得分片更加健壯。Casper the Friendly Finality Gadget (“FFG”)在一般的POW 鏈中,最終確定性是概率性,

隱式的

加密經濟機制應用於POS ,顯式地在協議內(in-protocol)強制保證對我們來說,是否是最終確定(we-can-check-if-its-finalized-for-us)。

[來自Vlad] 協議內顯式最終確定性閾值有個經濟風險:它在2/3 + 1 和1/3 + 1 之間創造了一個理想的卡特爾大小(cartel size)。相應地,任何不在2/3 + 1 同盟節點(coalition),其最終確定性的邊際貢獻就將為0。

主鏈最終確定性依賴

主鏈最終確定性依賴

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

顯式最終確定性,將會有助於緩解主鏈與大量分片鏈之間同步的不確定性。顯式最終確定性有助於無狀態客戶端 。

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

圖片描述

圖片描述

圖片描述after about 2.5 “epoch times”-圖片6. 無狀態客戶端模型Figure 6. Stateless client model-因為同步過程可能非常快,無狀態客戶端模型就可能在每個collation 之間再混洗成。這不僅會減輕存儲壓力和開銷,也會使系統更安全,因為頻繁採樣能夠獲得適應性攻擊的抵抗能力。結束語

結束語

結束語

希望我已經對當前以太坊的分片設計概念作出了簡單介紹,以及顯式最終確定性如何有益於分片機制。如果想要深入了解協議設計,請訪問ETHResear.chsharding doc


星球君的朋友们
作者文库