分片是什麼,跟一般認知的「把鏈拆成好幾條」有什麼不同?
分片這個詞最早的直覺理解確實是「把一條鏈拆成好幾條平行的鏈(shard),每條各自處理一部分交易」,這種設計稱為執行分片(execution sharding)——Ethereum 最初的分片規劃就是這個方向,打算切成 64 條平行鏈。但這個設計後來被放棄了,因為 Rollup(Layer 2 卷疊技術)比預期更早證明自己能有效處理交易執行,反而讓 Ethereum 主鏈不再需要自己執行分片。
現在提到分片,多半指的是資料分片(data sharding,具體實作稱為 danksharding)——這是完全不同的概念,主鏈本身仍然是一條鏈,不會被拆成多條,分片拆的是「驗證資料可用性」這件事:節點不需要下載全部資料才能確認資料是真的存在、沒有被竄改,而是透過抽樣驗證一小部分,就能以高機率確認整份資料的完整性。
分片為什麼存在,解決了什麼問題?
區塊鏈可擴展性有一個根本困境:如果要求每個節點都完整下載、驗證、儲存全部交易資料,隨著使用量增加,能負擔得起這種硬體與頻寬需求的節點會越來越少,網路逐漸走向中心化;但如果放寬要求、讓節點只驗證部分資料,又要如何確保沒有被驗證到的那部分資料是誠實、完整的?
分片要解決的正是這個矛盾:在不要求每個節點處理全部資料的前提下,依然能維持對整個網路資料完整性的高度信心。以 Ethereum 的資料分片路線來說,具體要解決的問題是 Layer 2 Rollup 需要把大量交易資料回傳到主鏈才能繼承主鏈的安全性,但主鏈的資料頻寬有限,分片(透過資料可用性抽樣)讓主鏈能在不要求所有節點下載全部資料的情況下,安全地承載遠超過去的資料吞吐量。
分片具體怎麼運作,Ethereum 目前的資料分片實作進展到哪一步?
Ethereum 的資料分片路線分成幾個階段推進:第一步是 2024 年 3 月透過 Dencun 升級啟用的 EIP-4844(原型資料分片,proto-danksharding),引入了名為 blob 的新交易類型,讓 Layer 2 可以用比原本便宜許多的方式把資料回傳主鏈,但這個階段還沒有導入真正的資料可用性抽樣機制。第二步是 Fusaka 升級導入 PeerDAS(點對點資料可用性抽樣),讓節點可以透過隨機抽樣一小部分資料,就能以高機率驗證整批資料確實可得,不需要每個節點都下載全部 blob 資料,這是邁向完整資料分片(full danksharding)的關鍵一步。
完整資料分片的目標,是讓主鏈能承載的資料量再大幅提升一個量級,直接影響的是 Layer 2 Rollup 能便宜、安全地處理多少交易量,而不是直接讓 Ethereum 主鏈本身的交易執行速度變快——這也是為什麼理解分片時,需要先分清楚它處理的是「資料可用性」問題,不是「執行速度」問題。
分片對我有什麼影響,該注意什麼?
如果你主要使用 Layer 2 網路(例如各種 Rollup)而不是直接在主鏈上操作,分片技術的進展會直接反映在你實際感受到的手續費上——資料分片讓 Layer 2 把資料回傳主鏈的成本大幅降低,這是近年 Layer 2 手續費持續下降的關鍵技術原因之一,未來完整資料分片上線後,這個下降趨勢預期會延續。
需要留意的是,「分片」這個詞在不同時期、不同語境下指涉的技術方案並不相同——早期文章談的可能是已經被放棄的執行分片規劃,近期文章談的則是資料分片/danksharding,兩者是完全不同的技術路線,解決的問題也不一樣,看到「分片」這個詞時,最好先確認文章討論的是哪個時期、哪種具體實作,才不會把已經過時的規劃當成現在的技術現況。
Ethereum 於 2024 年 3 月透過 Dencun 升級啟用 EIP-4844(原型資料分片),這是資料分片路線邁出的第一步,隨後 Fusaka 升級導入 PeerDAS 作為邁向完整資料分片(danksharding)的關鍵里程碑,取代了 Ethereum 最初規劃、後來因為 Rollup 提早成功而放棄的 64 條並行執行分片方案。
資料分片的優點是能在不犧牲節點去中心化門檻的前提下,大幅提升主鏈能安全承載的資料量,讓 Layer 2 生態受益;缺點是這是一項複雜的密碼學工程(涉及糾刪碼、資料可用性抽樣等技術),開發與安全驗證週期長,從 proto-danksharding 到完整 danksharding 之間需要經過多個升級階段逐步推進,短期內效果有限,效益要等到完整實作上線後才會完全顯現。