iT邦幫忙

2025 iThome 鐵人賽

DAY 9
0
自我挑戰組

以太坊擴容之路:從 Layer 1 到 Layer 2 的技術全攻略系列 第 9

Day 9 - L1 擴容(三):資料可用性分片

  • 分享至 

  • xImage
  •  

上集回顧

前一天我們提到以太坊的分片,也介紹了三種分片類型(網路、交易、狀態分片),並且提到分片的優缺點。最後,我們還提到以太坊目前的發展路線 - rollup-centric roadmap。

原先在 The Merge 後,其實是計劃要推出分片鏈的,也就是鏈上的執行分片。然而,由於執行層遇到困難,再加上 rollup 的快速發展,因此後來才轉為 rollup-centric 的發展路線。

引言

由於以太坊目前以 L2 鏈下擴容為主要發展路線,原先在 L1 鏈上分片的計劃也就暫時擱置。昨天提到的這種分片,其實又可以被歸類為「執行分片」,也就是在原先的主鏈上,將節點分為多個分片鏈,各自執行、驗證交易。

隨著 rollup-centric 的路線被確認,原先在主鏈上被執行、驗證的交易,也被 offload 到 Layer 2(鏈下)。然而,Layer 2 最終還是需要主鏈(L1)儲存資料,以確保其資料正確性與安全性。

因此,以太坊主鏈(L1)開始發展出「資料可用性分片」的概念,以及 Danksharding、EIP-4844 等實作與標準。

Danksharding

下圖是原先以太坊的設計,在圖中可以看到已經被擱置的分片鏈(Shard chain)。原先,分片鏈打算被作為交易執行、資料儲存的場所,但隨著 rollup 與 L2 的發展,社群決定將交易執行搬到 rollup 上,並且將以太坊 L1 分片作為最終的資料可用性層。

而 Danksharding 則是在這個脈絡下,將以太坊分片打造為資料可用性層的一個技術。


Image Source

Danksharding 由 Dankrad Feist 於 2021 年提出。原先分片鏈(Sharding)的設計是,將 L1 作為執行分片,並將資料放在不同的鏈;而 Danksharding 的設計則是,將 L1 作為資料可用性分片(Data Availability Sharding),並將所有資料放在同一個區塊中。

rollup 處理過的交易們,會被壓縮打包起來,發佈到以太坊主鏈上。交易的有效性,則透過主鏈節點驗證來確保。然而,由於這些壓縮的交易們,仍然需要與主鏈上的其他交易競爭區塊空間,因此,導致 rollup 手續費仍不夠低廉。

Danksharding 則是打算創造一個 rollup 專屬的資料空間,降低 rollup 發布資料的成本。這個專屬空間被稱為 Blob(Binary Large Object),專門讓 rollup 儲存資料,但Blob 中的資料不會被永久儲存。

Block Proposer 會在區塊後附加一些 Blob,Blob 中不包含智能合約程式碼,而是僅包含 rollup 的資料。此外,主網節點只會驗證 Blob 中的資料,而不會執行其中的交易。

KZG Commitments

Blob 由 Danksharding 引入,為了儲存 rollup 壓縮打包的交易。然而,節點還要能驗證這些資料。因此,Danksharding 使用 KZG Commitment 這種加密技術,Block Proposer 會替每一個 Blob 建立一個唯一的 Commitment,並且把 KZG Commitment 放在 Block header 中。

其他的節點或輕節點則無需下載整個 Blob,只要透過 DAS(Data Availability Sampling)隨機抽樣一部分的 KZG,就能驗證整個 Blob 的資料是否完整可用。

PBS(Proposer Builder Separation)

引入 Blob 跟 DAS 後,一個區塊的建構除了交易外,還多了 Blob 的部分,使得整個區塊打包過程變得更複雜,也更容易產生 MEV(Maximal Extractable Value)。

原本由同一個 Proposer 負責打包交易、發佈區塊,但引入 PBS 將 Proposer、Builder 分離後,由 Builder 專門負責打包交易與 Blob 為一個區塊,Proposer 會負責從多個 Builder 中挑一個最適當的 Block。

如此一來,降低了中心化程度,也降低了 Proposer 從 MEV 中套利的可能。

結語

今天簡介了 Danksharding 這個概念,以太坊從執行分片轉為資料可用性分片,交易的執行與狀態轉移由 L2 rollup 確保,L1 則確保資料可用性與安全性。

我們還提到 Danksharding 引入的新機制,如 Blob、KZG、PBS 等等。老實說,我自己也是第一次看這些內容,文中講得非常淺薄,還甚至可能有些錯誤。

明天,我們將繼續深入 Danksharding 的內部機制,以及討論 Erasure Coding 這個機制。

參考資料

[1] Danksharding, Ethereum
[2] 認識 Danksharding, Medium
[3] Ethereum Sharding, Web3 University


上一篇
Day 8 - L1 擴容(三):分片
下一篇
Day 10 - L1 擴容(三):深入 Proto-Danksharding
系列文
以太坊擴容之路:從 Layer 1 到 Layer 2 的技術全攻略10
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言