Foresight Ventures:EIP-4844全面解析,以太坊邁向Full sharding的第一步
一級標題
Overview
以太坊
EIP-4844 ;
Proto-danksharding;
Danksharding;
KZG Commitment;
KZG Ceremony;
Dynamic state sharding;
以太坊
一級標題
以太坊
一級標題
以太坊

以太坊
一級標題
以太坊
EIP-4844 = Proto-Danksharding;
Proto 來自以太坊研究者的名稱
二級標題

二級標題
正文
以太坊
二級標題
1. Proto-danksharding 概述
Proto-Danksharding 主要引入了一種新的transaction type,也就是blob-carrying transaction。至此,Rollup 的數據通過blob 的形式以更低的成本向layer 1 傳輸,並作非永久存儲。同時,blob 遠大於現在的calldata,可以更好地支持rollup 上的高TPS。
關於blob:
以太坊
以太坊
作用
成本
成本
作用
容量
成本
成本
Data blob 的設計初衷是支持rollup高通量的交易,相比同等大小的calldata(使用鏈上存儲),blob 的成本將會降低很多(不需要永久存儲)。因此,rollup 在維持數據可用性上花費的gas 相比之前會顯著降低。
容量
每個blob 的大小約為125 kB(fact: 當前平均block size 只有~ 90 kB)。
3. Blob-carrying transaction 的價值和挑戰
Ethereum 當前平均區塊大小只有~ 90 kB,但是一個blob 就有~ 125 kB
解決方案
解決方案
根據EIP-4844 的設計,每個slot 正常情況下約為1 MB,因此每年增加的數據量為: 1 MB/block * 5 block/min * 43200 min/month * 12 month/year = 2.47 TB per year解決方案;
正文
解決方案
4. KZG Commitment
從短期擴容效果看,由於每個節點仍然需要儲存全量歷史數據,在實現EIP-4844 的同時,對一段時間窗以外的blob(具體的limit time 還沒有最終確定,可能是1 個月或是1年)進行
這兩種解決方案從不同程度上緩解了blob-carrying transaction 在存儲空間上的tradeoff。
以太坊
KZG Commitment 是EIP-4844 中採用的多項式承諾方案
解析KZG commitment
以太坊
以太坊
參考Dankrad Feist 演講中的示意圖,KZG root 類似Merkle root,區別在於KZG root 承諾一個多項式,即所有position 都在這個多項式上。基於proto-danksharding 的場景,KZG root 承諾了一堆數據,其中的任何一個數據都可以被驗證屬於這個整體。
Prover:提供證明,計算data 的commitment,prover 無法改變給定的多項式,並且用於證明的commitment 只對當前這一個多項式有效;
成本
成本
Verifier:接收prover 發送的commitment value 並進行驗證,確保prover 提供了有效的證明。
成本
安全
安全
不需要提交額外的proof,因此成本更低、更省bandwidth;
更兼容
安全
5. KZG Ceremony(trusted setup)
更兼容以太坊
以太坊
以太坊
以太坊
trust setup
最近社區參與熱情高漲的KZG Ceremony 就是為EIP-4844 採用的KZG commitment 提供trust setup;
以太坊
必要性
參考Vitalik 的流程圖,任何人都可以作為participants 貢獻secret 並與之前的結果進行混合產生一個新的result,以此類推,通過套娃的形式獲得最終的SRS,並協助完成KZG commitment 的trust setup
EIP-4844 中採用了一種常見的multi-participant trust setup,即powers-of-tau;
遵循1-of-N 可信模型,不管多少人參與generating setup 的過程,只要有一個人不洩漏自己的生成方式,可信初始化就是有效的;
必要性
Rollup
KZG commitment 的trust setup 可以簡單理解為:生成一個在每次執行cryptographic protocol 時需要依賴的一個參數,類似於zk-snark 需要可信初始化;
Prover 在提供證明時,KZG commitment C = f(s)g 1 。其中f 是評估函數,s 就是KZG trusted setup 最終獲得的final secret;
可以發現不同的是,calldata 只包含一些數據量小的,比如state delta、KZG commitment,而將包含大量交易數據的transaction batch 放到了blob 裡。
安全性
安全性
以太坊
成本
成本
安全性
Data availability: Blob 存儲在信標鏈上,等同於layer 1 的安全性;
成本
成本
Proto-Danksharding 引入了新的交易類型,低成本數據格式blob 的加入無疑會讓rollup 的成本進一步降低,取決於實際鏈上應用和實現進展,優化後rollup 的成本可能降低x 10 甚至x 50 ;
同時EIP-4844 引入了blob fee;
Gas 和blob 將會分別有可調節的gas price 和limit;
Blob 的收費單元還是gas,gas amount 隨traffic 變動,以此維持每個block 平均掛8 個blob 的目標(限制額外增加的數據量)
Precompile 的實現
Blob 中的數據本身無法被直接觸達,EVM 只能獲取data blob 的commitment。因此需要rollup 提供precompile 來驗證commitment 的有效性.
下面分析兩種EIP-4844 中提到的precompile 算法
Blob verification precompile
Point evaluation precompile(對數學原理感興趣參考vitalik 的解析)
證明多個commitments 指向同一數據;
主要針對zk-rollup,rollup 需要提供2 種commitments: 1. KZG commitment; 2. zk-rollup 本身的commitment;
對於optimistic rollup,大多數已經採用了multi-round fraud proof 的機制,final round fraud proof 所需的數據量較小。因此,採用point evaluation precompile 能達到更低的成本
證明versioned hash 和blob 是有效對應的;
optimistic rollup 在提交欺詐證明時需要access 全量數據,因此先驗證versioned hash 和blob 合法,再進行fraud proof verification
三、Danksharding: 邁向full sharding 的重要一步
Danksharding 的命名來自以太坊研究員Dankrad Feist
1. 擴容:進一步擴充Rollup 的緩存空間
在proto-danksharding 實現後,由於新的交易格式引入了blob,每個區塊可以平均額外獲得1 MB 的緩存空間。 Danksharking 實現後,每個區塊額外16 MB,最大允許32 MB。
2. Data availability:存儲和驗證策略更高效
相比proto-danksharding 要求全節點下載全量數據,Danksharking 實現後以太坊節點只需要對blob 抽樣。 Sampling 後的數據會分佈在全網節點中,並可以組成完成的data blob。
DAS:高效抽樣檢查
由於每個節點不再保存全量歷史數據,從數據可用性、備份和抽樣檢查的角度出發,安全性由至少一個節點保存全量數據變為多個節點存儲部分數據,並最終還原完整數據。
以太坊
雖然乍一看對單點的依賴安全性遠高於對多點的依賴,但是以太坊網絡中的節點數量夠多,完全可以保證數據備份的需求,因此安全性並不會有很大變化。4. 新的挑戰:對block builder 的要求提升
以太坊
優勢
優勢

1. Dynamic state sharding
優勢
正文
以太坊
團隊
產品
產品
團隊
團隊
技術
技術
進度
進度
技術
技術
進度
進度
將在2023-02-02 launch betanet,值得關注。
五、對sharding 的思考和展望


