原文標題:《 IOSG Weekly Brief |合併在即:詳解以太坊最新科技路線 》
原文作者:Jiawei, IOSG Ventures;編輯:Olivia,IOSG Ventures
本文僅做產業學習交流之用,不構成任何投資參考
如果「The Merge」進展順利,分片將成為以太坊在 2023 年及之後的開發主軸,而距離 2015 年分片被提出,其含義已經發生了很大變化。
在Vitalik 提出「以Rollup 為中心的以太坊路線圖」和以太坊的「Endgame」之後,以太坊的大方向發生了事實上的轉變——「退居幕後」,作為Rollup 的安全性保證和資料可用性層。
Danksharding 和 Proto-Danksharding 是一系列的技術組合,表現形式在於「發現問題」、引入或提出新技術來「解決問題」的一套組合拳。
時間線拉長到未來幾年,Rollup 的整體價值將變大:以太坊上呈現多Rollup 的發展格局、跨Rollup 基礎設施高度完善、Rollup 生態高度繁榮——甚至超越以太坊本身。

圖片來源:https://consensys.net/blog/blockchain-explained/the-roadmap-to-serenity-2/ blockquote>
轉眼 2022 年已走過一半。我們回看 Vitalik 在 2018 年 Devcon 演講中提出的 Serenity Roadmap,容易發現以太坊的發展路徑幾經更迭— 對比當前的路線圖,分片被賦予新的含義,eWASM 亦少有人提及。
為了避免潛在的詐欺和用戶誤導問題,今年1 月底,以太坊基金會宣布棄用「ETH2」的說法,而是把當前的以太坊主網改稱為處理交易和執行的「執行層」,將原ETH2 的說法改稱為協調處理PoS 的「共識層」。
目前,以太坊官方的路線圖涵蓋了三部分內容:信標鏈、合併與分片。
其中,信標鏈(Beacon Chain)作為以太坊向PoS 遷移的前置工作,以及共識層的協調網絡,於2020 年12 月1 日啟用,迄今已運行近20 個月。
合併(The Merge)指目前以太坊主網與信標鏈的最終合併,也即執行層與共識層的統一,標誌著以太坊正式遷移到 PoS。在IOSG 的文章「黎明將至:以太坊合併近在咫尺」中,我們介紹了合併相關的重要進展:當前以太坊Ropsten 與Sepolia 測試網成功完成了合併,緊接著是Goerli 的合併;如果一切順利,意味著我們離主網合併不遠了。
圖片來源:https://medium.com/decipher-media/blockchain-scaling-solutions-4-1-ethereum-sharding-e88e8cacdfc
本文我們將著重討論分片(Sharding)。原因在於:
其一,假定主網合併能夠在年內順利實現,那麼 分片將緊隨其後,作為 2023 年以太坊的開發主軸。
其二,以太坊分片的概念最早由 Vitalik 在 2015 年的 Devcon 1 中提出,此後 GitHub 的 Sharding FAQ 中提出了分片的 6 個發展階段(如上圖)。然而,隨著以太坊路線圖的更新和相關 EIP 的推動,分片的含義和優先順序都產生了很大變化。當我們在討論分片時,需要先確保對其含義的理解達成一致。
綜上兩點,梳理清楚分片的來龍去脈是很重要的。本文將著重討論以太坊原分片、 Danksharding 和 Proto-Danksharding 的由來、進度和未來路線,而非具體到每個技術細節。關於 Danksharding 和 Proto-Danksharding 的詳細內容,可參考 IOSG 先前的文章:「擴容殺手鐧 Danksharding 會是以太坊分片的未來嗎」、「EIP4844:即將開啟 L2 交易費降低可預見的窪地效應」。
Quick Review
這篇文章中將會多次提到 Rollup、資料可用性和分片。
我們在這裡快速回頭看一遍三者的基本概念。
目前主流 Rollup 分為 zkRollup 和 Optimistic Rollup。前者基於有效性證明,即批量執行交易,依賴密碼學證明SNARK 來保證狀態轉換的正確性;後者「樂觀地」假設所有狀態轉換是正確的,除非被證偽;即需要一段時間窗口來確保錯誤的狀態轉換能夠被發現。
資料可用性對 zkRollup 和 Optimistic Rollup 都非常重要。對前者而言,使用者可以基於資料可用性重建二層的所有交易,以確保抗審查;對後者而言,需要使二層的所有資料都被發布,沒有被隱藏任一交易。至於當前數據可用性面臨的瓶頸與相應的解決方案,在下文中會提到。
圖片來源:https://www.web3.university/article/ethereum-sharding-an-introduction-to-blockchain-sharding
以太坊全節點對EVM 的完整狀態進行存儲,並參與所有交易驗證,這樣確保了去中心化和安全性,但隨之而來的是可擴展性的問題:交易線性執行,且需要每個節點逐一確認,這無疑是低效率的。
此外,隨著時間推移,以太坊網路資料不斷累積(目前達 786GB),運行全節點的硬體需求隨之水漲船高。全節點數量下降將引發潛在的單點故障,並削弱去中心化的程度。
直觀地看,分片相當於分工合作,即對所有節點進行分組,每筆交易只需要由單組節點進行驗證,並定期向主鏈提交交易記錄,以此實現交易的並行處理(例如有1000 個節點,原來每筆交易都必須由每個節點進行驗證;如果把他們分成10 組,每組100 個節點來驗證交易,效率顯然大大提升了)。採用分片使得在提高可擴展性的同時,也降低了單組節點的硬體需求,從而解決上述兩個問題。
原分片
圖片來源:https://vitalik.ca/general/2021/04/07/sharding.html以太坊原方案中有64 個分片,每個分片中都有獨立的提議者和委員會,提議者是被隨機選擇的一個驗證者,收集交易並進行排序;委員會是一組驗證者的集合(至少由128 個驗證者組成),每隔一定時間被隨機分配到各個分片上,並驗證交易的有效性,如果委員會的2/3 投票通過,則呼叫驗證者管理合約(VMC)向信標鏈提交交易記錄。有別於下述的「資料分片」,這種分片又稱為「執行分片」。
在聊Danksharding 之前我們不妨先花點時間了解其背景。個人猜想,Danksharding 推出的社區氛圍基礎主要來自 Vitalik 的兩篇文章。這兩篇文章為以太坊的未來發展方向定下了基調。
首先,Vitalik於2020 年10 月發表了「以Rollup 為中心的以太坊路線圖」,提出以太坊需要在中短期內對Rollup 進行集中支援。其一,以太坊基礎層擴容將聚焦於擴大區塊的資料容量,而非提高鏈上運算或 IO 操作的效率。即:以太坊分片旨在為資料 blob(而非交易)提供更多空間,以太坊無需對這些資料進行解釋,只確保資料可用。其二,以太坊的基礎設施進行調整以支援 Rollup(如 ENS 的 L2 支援、錢包的 L2 整合和跨 L2 資產轉移)。長遠來看,以太坊的未來應該作為安全性高的、人人可處理的單一執行分片,以及可擴展的資料可用性層。

圖片來源:https://vitalik.ca/general/2021/12/06/endgame.html
此後,Vitalik 在2021 年12 月發表的《Endgame》中描述了以太坊的最終圖景:區塊產出是中心化的,但區塊驗證實現去信任且高度去中心化,同時確保抗審查。底層鏈為區塊的資料可用性提供保證,而 Rollup 為區塊的有效性提供保證(在 zkRollup 中,透過 SNARK 來實現;在 Optimistic Rollup 中,只需有一個誠實參與者運行詐欺證明節點)。類似於 Cosmos 的多鏈生態,以太坊的未來將是多 Rollup 共存的——它們都基於以太坊提供的數據可用性和共享安全性。使用者依賴橋在不同 Rollup 之間活動,而無需支付主鏈的高額費用。
上述兩篇文章基本上確定了以太坊的發展方向:優化以太坊的基礎層建設,為Rollup服務。以上論點也許基於這樣一個看法:既然Rollup 已經被驗證有效並且得到良好的採用,那麼「與其將花上幾年時間等待一個不確定且複雜的擴容方案(註:指原分片),不如將注意力放在基於Rollup 的方案上」。
在此之後,Dankrad 提出了新分片方案 Danksharding。以下我們把 Danksharding 的具體技術組成拆分出來理解。
Proto-Danksharding 提出的背景在於,雖然Rollup 方案對比以太坊主鏈而言顯著降低了交易費用,但還沒有到足夠低的理想程度。這是由於以太坊主鏈上提供資料可用性的 CALLDATA 仍然佔據較大的花費 (16gas / byte)。在原先的設想中,以太坊提出在資料分片中提供每個區塊 16MB 的專用資料空間給 Rollup 使用,但距離資料分片的真正實施仍舊遙遙無期。 今年2 月25 日,Vitalik 和DankRad 等提出了EIP-4844(Shard Blob Transactions)提案,也即Proto-Danksharding,旨在以簡單、前向相容的方式擴展以太坊的數據可用性,使其在Danksharding 推出之後仍然可用。該提案的變更僅發生在共識層上,不需要執行層的用戶端、使用者和 Rollup 開發者進行額外的適配工作。 Proto-Danksharding 實際上並未執行分片,而是為將來的分片引入了一種稱為「Blob-carrying Transactions」的交易格式。這種交易格式區別於普通交易在於其額外攜帶了稱為 blob 的資料區塊(約為 125kB),使區塊實際上變大,從而提供比 CALLDATA(約為 10kB)更加廉價的資料可用性。 然而,「大區塊」的普遍問題是對磁碟空間的要求不斷累加,採用Proto-Danksharding將使以太坊每年額外增加2.5TB 的儲存量(目前全網路資料僅986GB)。因此,Proto-Danksharding 設定了一段時間視窗(例如 30 天),在此之後對 blob 做刪除操作,使用者或協定可以在這段時間內對 blob 資料進行備份。 即,以太坊的共識層僅僅作為一個高度安全的「即時公告板」,確保這些數據在足夠長的時間裡面是可用的,並使其他用戶或協議有足夠的時間來備份數據,而非由以太坊永久保留所有的blob 歷史數據。 這麼做的原因是,對儲存來說,每年新增的2.5TB 不在話下,但對以太坊節點卻帶來不小的負擔。至於可能導致的信任假設問題,實際上只需有一個資料儲存方是誠實的(1 of N),系統就可以正常運作,而不需要即時參與驗證、執行共識的驗證者節點集(N/2 of N)來儲存這部分歷史資料。 那麼,有沒有誘因來推動第三方儲存這些資料呢?作者暫時沒有發現激勵方案的推出,但Vitalik 本人提出了幾個可能的資料儲存方: 1 、針對應用的協定(例如Rollup)。它們可以要求節點儲存與應用相關的歷史數據,如果歷史資料遺失,會對這部分應用造成風險,因此它們有動力去做儲存; 2、BitTorrent; 3、以太坊的Portal Network,這是一個提供對協議的輕量級訪問的平台; 4、區塊鏈瀏覽器、API 提供者或其他資料服務商; 5、個人愛好者或從事資料分析的學者; 6、 The Graph 等第三方索引協定。 在Proto-Danksharding 我們提到新的交易格式使得區塊實際上變大了,並且Rollup 也累積了大量數據,節點需要下載這些數據來保證數據可用性。 DAS 的想法是:如果可以把資料分成N 個區塊,每個節點隨機地下載其中的K 個區塊,就能驗證所有數據是否可用,而無需下載所有數據,這樣就能大大減少節點的負擔。但如果某個資料塊遺失了怎麼辦?僅僅透過隨機下載 K 個區塊很難發現某個區塊遺失了。 為了實現 DAS,引進了糾刪碼(Erasure Coding)技術。糾刪碼是一種編碼容錯技術,基本原理是把資料分段,加入一定的校驗並使各個資料段之間產生關聯,即使某些資料段遺失,仍然能透過演算法將完整的資料計算出來。 如果把糾刪碼的冗餘比例設為50%,那麼意味著只需要有50% 的區塊數據可用,網路中的任何人就可以重建所有區塊數據,並且進行廣播。如果攻擊者想要欺騙節點,則必須隱藏掉超過 50% 的區塊,但只要進行多次隨機採樣,這種情況幾乎不會發生。 (例如,假設對區塊進行了30 次隨機採樣,這些區塊都恰好被攻擊者隱藏掉的幾率是 既然節點不下載所有數據,而是依靠糾刪碼來重建數據,那麼首先要確保糾刪碼被正確編碼,否則用錯誤編碼的糾刪碼當然沒辦法重建資料。 這樣,進一步引入了KZG 多項式承諾(KZG Polynomial Commitments),多項式承諾是一個「代表」多項式的簡化形式,用於證明多項式在特定位置的值與指定的數值一致,而無需包含該多項式的所有資料。 Danksharding 中透過採用 KZG 承諾來實現糾刪碼的驗證。 如果我們可以把所有數據都放在一個KZG 承諾中當然很省事,但是構建這個KZG 承諾,或者一旦有部分數據不可用,重建這個數據——兩者的資源需求都是巨大的。 (實際上,單一區塊的資料需要多個 KZG 承諾來保證)而同樣為了降低節點負擔從而避免中心化,Danksharding 中把 KZG 承諾進行了進一步的拆分,提出了二維 KZG 承諾框架。 當我們依序解決上述問題之後,依靠DAS,節點或輕客戶端只需要隨機下載K 個數據區塊,就能夠驗證所有資料是可用的;這樣一來,即便引入「大區塊」之後,也不會過度加重節點的負擔。 (註:特別地,Danksharding 中採用的糾刪碼演算法是Reed-Solomon 編碼;KZG 承諾是由Kate、Zaverucha 和Goldberg 發表的多項式承諾方案。 在當前情況下,PoW 礦工和PoS 驗證者既是區塊構建者(Builder),又是區塊提議者(Proposer)——在PoS 中,驗證者可以用MEV 的利潤獲取更多新的驗證者席位,從而有更多機會去實現MEV;此外,大型驗證池顯然比普通驗證人有更強大的MEV 捕獲能力,這導致了嚴重的中心化問題。於是,PBS 提出把 Builder 和 Proposer 分開。 PBS 的想法如下:Builder 們建立一個排好序的交易列表,並且把出價提交給 Proposer。 Proposer 只需要接受出價最高的交易列表,且任何人在拍賣的獲勝者被選出之前,無法知道交易列表的具體內容。 這種分離和拍賣的機制引入了博弈和Builder 之間的「內卷」:畢竟每個Builder 捕獲MEV 的能力不盡相同,Builder 需要權衡潛在的MEV 利潤、以及拍賣出價之間的關係,這樣實際上減少了MEV 的淨收入;而無論最終Builder 提交的區塊是否能夠順利產出,都需要向Proposer 支付競價的費用。這樣一來,Proposer(廣義來說是所有驗證者集,在一定時間內隨機重選)相當於分享了一部分 MEV 的收入,削弱了 MEV 的中心化程度。 以上介紹了 PBS 在解決 MEV 方面的優勢,而引入 PBS 還有另一個原因。在Danksharding 中,對Builder 的要求是:在1 秒左右計算出32MB 數據的KZG 證明,這需要32-64 核的CPU;並且在一定時間內以P2P 的方式廣播64MB 的數據,這需要2.5Gbit/ s 的頻寬。顯然驗證者無法滿足這樣的要求。 於是PBS 把兩者分開,Proposer 仍然作為一般驗證者節點,負責選擇交易列表,並廣播區塊頭;而Builder 作為一個專門的角色,負責上述工作和建立交易清單。 去年10 月,Vitalik 提出了雙Slot PBS 方案(註:每個Slot 為12 秒,是信標鏈的時間單位),但具體的PBS 方案仍然在討論中。 但PBS 也帶來一個問題,如果某個Builder 總是出最高價(甚至寧願承擔經濟損失)來贏得拍賣,那麼他實際上有了審查交易的能力,可以選擇性地不把某些交易包含在區塊中。 為此,Danksharding 進一步引入了抗審查清單crList(即Censorship Resistance List),即Proposer 有權指定一個交易列表,這個交易列表必須被Builder 所包含;在贏得拍賣後,Builder 需要證明crList 中的交易都已經被包含在內(或區塊已滿),否則該區塊將被視為無效。 把上述的數據可用性採樣(DAS)、區塊構建者和提議者分離(PBS)以及抗審查列表(crList)組合起來,就得到了完整的Danksharding。我們發現,「分片」的概念其實已經被淡化了,儘管保留了 Sharding 的叫法,但實際上的重點已經放在對資料可用性的支援上。 那麼 Danksharding 比較原分片有哪些優點呢? (Dankrad 本人在這裡列舉了Danksharding 的10 個優點,我們選取兩個來具體解釋) p> 在原分片中,每個單獨的分片都有其提議者和委員會,分別對分片內的交易驗證進行投票,並由信標鏈的提議者收集所有投票結果,這項工作很難在單一Slot 內完成。而在 Danksharding 中只在信標鏈上存在委員會(廣義的驗證者集,一定時間內隨機重選),由這個委員會來驗證信標鏈區塊和分片資料。這相當於把原來的 64 組提議者和委員會簡化為 1 組,無論是理論還是工程實現的複雜度都大大降低了。 Danksharding 的另一個優點是,以太坊主鍊和 zkRollup 之間有可能實現同步呼叫。上文我們談到,在原分片中信標鏈需要收集所有分片的投票結果,這會產生確認的延遲。而在 Danksharding 中,信標鏈的區塊和分片資料由信標鏈的委員會進行統一認證,也即同個信標區塊的交易可以即時存取分片的資料。這樣激發了更多可組合性的想像空間:例如 StarkWare 提出的分散式 AMM(dAMM),能夠跨 L1/L2 進行 Swap 或共享流動性,從而解決流動性碎片化的問題。 在 Danksharding 實施後,以太坊將變成 Rollup 的統一結算層和資料可用性層。 在上圖中,我們對 Danksharding 做一個總結。 綜上,我們大致可以看到,未來的2 至3 年內,以太坊路線圖的指向性是非常明顯的-圍繞著服務Rollup 而展開。儘管在此過程中路線圖改變與否仍然是未知數:Danksharding 預計將在未來 18-24 個月內實現,而 Proto-Danksharding 將在 6-9 個月內實現。但至少我們明確了 Rollup 作為以太坊的擴容基礎,佔據著一定的主導地位。 根據Vitalik 提出的展望,在此我們也提出一些預測性思考和猜想: 一是類似Cosmos 的多鏈生態,未來以太坊上將出現多Rollup 的競爭格局,由以太坊為它們提供安全性和數據可用性的保證。 二是跨 L1/Rollup 基礎設施將成為剛需。跨域 MEV 將帶來更複雜的套利組合,類似上述提到的 dAMM 帶來更豐富的可組合性。 三是多 Rollup 的生態應用將超越以太坊本身。由於以太坊的定位退居其次,作為 Rollup 的資料可用性層,我們猜測更多的應用會遷移到 Rollup 上面去做(若第二點成立);或至少在以太坊和 Rollup 上面同時做應用。 Proto-Danksharding

圖片來源:https://l2fees.info/
Danksharding 資料可用性取樣(DAS)

圖片來源:https://notes.ethereum. org/@hww/workshop_feb_2022
區塊提議者與建構者分離(PBS)

圖片來源:https: //ethresear.ch/t/two-slot-proposer-builder-separation/10980
抗審查清單(crList)

圖片來源:https://notes.ethereum.org/@hww/workshop_feb_2022
小結

圖片來源:https://notes.ethereum.org/@hww/workshop_feb_2022
Closing Thoughts

參考資料:
https://consensys.net/blog/blockchain-explained/the-roadmap- to-serenity-2/
https://www.web3.university/article/ethereum-sharding-an-introduction-to-blockchain-sharding
https://ethereum -magicians.org/t/a-rollup-centric-ethereum-roadmap/4698
https://vitalik.ca/general/2021/12/06/endgame.html
https://notes.ethereum.org/@vbuterin/proto_danksharding_faq
https://twitter.com/pseudotheos/status/1504457560396468231
://ethosquo. beacon-chain/
https://notes.ethereum.org/@vbuterin/pbs_censorship_resistance#How-does-proposerbuilder-separation-PBS-work
https://notes. ethereum.org/@fradamt/H1ZqdtrBF
https://cloud.tencent.com/developer/article/1829995
https://medium.com/coinmonks/builder-proposer -separation-for-ethereum-explained-884c8f45f8dd
https://dankradfeist.de/ethereum/2021/10/13/kate-polynomial-commitments-mandarin.html
httpshttps
://members.delphidigital.io/reports/the-hitchhikers-guide-to-ethereum
https://vitalik.ca/general/2019/09/22/plonk.html
原文連結 blockquote>
歡迎加入律動 BlockBeats 官方社群:
Telegram 訂閱群:https://t.me/theblockbeats
Telegram 交流群:https://t.me/BlockBeats_App
Twitter 官方帳號:https://twitter.com/BlockBeatsAsia