跳至主要内容

頁面上次更新: 2024年7月24日

Danksharding

Danksharding 可讓以太坊成為真正可擴容的區塊鏈,但需要進行一些協定升級才能實現這一目標。 Proto-Danksharding 是該過程中的一個中間步驟。 兩者的目標都是讓二層網路上的交易對使用者來說盡可能便宜,並且應該將以太坊擴容到每秒處理 >100,000 筆交易。

什麼是 Proto-Danksharding?

Proto-Danksharding 又稱 EIP-4844(opens in a new tab),是一種供卷軸新增較低成本的資料到區塊的方法。 這個名稱來自提出這個想法的兩位研究人員:Protolambda 和 Dankrad Feist。 在歷史上,透過卷軸節省使用者交易的成本受到了限制,因為它們實際上會將其交易發佈到 CALLDATA 中。

該成本非常高,因為資料由所有以太坊節點處理並永遠存在鏈上,即使卷軸只需要短暫使用這些資料。 Proto-Danksharding 引入了可傳送並附加到區塊的資料二進位大型物件。 這些二進位大型物件中的資料無法被以太坊虛擬機存取,並且會在一段固定時間(撰文時為 4096 個時期,或約 18 天)後自動刪除。 這表示卷軸可以更實惠地傳送資料,並以更實惠的交易形式將節省的費用轉給終端使用者。

如何驗證二進位大型物件資料?

卷軸會將它們執行的交易發佈在資料二進位大型物件中。 它們還會發佈一則對資料的「承諾」。 它們透過將多項式函式與資料擬合來做到這一點。 之後可在任意點計算此函式。 舉例來說,若我們定義一個非常簡單的函式 f(x) = 2x-1,則可以計算出 x = 1x = 2x = 3 時對應的結果分別為 1、3、5。 證明者會將相同的函式套用到資料上,並在相同的點進行計算。 如果原始資料改變,函式將不相同,因此每個點的計算結果值也會不同。 事實上,承諾和證明會更複雜,因為它們被包裝到加密函式中。

什麼是 KZG?

KZG 代表 Kate-Zaverucha-Goldberg,這是一種方案的三位原作者(opens in a new tab)名字縮寫,該方案將二進位大型物件資料縮小至不大的加密「承諾」(opens in a new tab)。 卷軸提交的資料二進位大型物件必須經過驗證,以確保卷軸不會出錯。 這涉及證明者重新執行二進位大型物件中的交易,以檢查承諾是否有效。 這與執行客戶端使用梅克爾證明來檢查一層網路上的以太坊交易是否有效,在概念上是相同的。 KZG 是將多項式方程與資料擬合的另一種證明。 承諾會在一些保密資料點計算多項式。 證明者將對資料擬合相同的多項式,並以相同數值進行計算,以確認結果是否相同。 這是一種驗證資料的方法,與某些卷軸所用的以及最終由以太坊協定的其他部分使用的零知識技術相容。

什麼是 KZG 儀式?

KZG 儀式提供了一種方法,讓以太坊社群中的許多人一起產生可用於驗證某些資料的秘密隨機數字字串。 此數字字串是未知的,且任何人都無法重新建立,這一點很重要。 為了確保這點,每位儀式參與者都會收到前一位參與者傳來的字串。 接著他們會建立一些新的隨機值(例如,透過允許瀏覽器測量滑鼠的移動),並將其與先前收到的值進行混合。 然後他們會把新值傳給下一位參與者,並從本地機器中銷毀這個值。 只要其中一個儀式參與者是誠實的,那麼攻擊者就無法知道最終的值。

EIP-4844 KZG 儀式已向公眾開放,有數萬人參與並新增自己的隨機變量不確定性(隨機性)。 總共收到了超過 14 萬份貢獻,使其成為全球同類型儀式中規模最大的一次。 全部參與者都進行不誠實的行為,才可能破壞這個儀式。 站在參與者的視角,如果他們知道自己是誠實的,則不需要信任任何人,因為他們知道自己可確保儀式安全(他們自己已滿足 n 分之一誠實參與者的要求)。

Danksharding 和 Proto-Danksharding 都不遵循傳統的「分片」模型,此模型旨在將區塊鏈分成多個部分。 分片鏈不再是以太坊開發藍圖的一部分。 相反,Danksharding 使用跨二進位大型物件的分散式資料採樣來實現以太坊擴容。 這在實作上容易很多。 此模型有時又稱「資料分片」。

Danksharding 是什麼?

Danksharding 完全實現了從 Proto-Danksharding 開始的卷軸擴容。 Danksharding 將在以太坊上為卷軸提供大量空間,用於轉存壓縮的交易資料。 這表示以太坊可以輕鬆支援數百個獨立的卷軸,並實現每秒處理數百萬筆交易。

它的運作方式是將附加到區塊的二進位大型物件從 Proto-Danksharding 中的六 (6) 個擴展到完整 Danksharding 中的 64 個。 所需的其餘變更都是對共識用戶端操作方式的更新,使得它們能夠處理新的大二進位大型物件。 這些變更有部分已在開發藍圖上,用於獨立於 Danksharding 的其他目的。 舉例來說,Danksharding 要求先實作提交者-建置者分離。 這是一個升級,它將不同驗證者建置區塊和提出區塊的工作分開。 同樣,Danksharding 需要資料可用性採樣,但開發不儲存太多歷史資料的輕量級用戶端(「無狀態用戶端」)也需要資料可用性採樣。

目前進度

完整的 Danksharding 還需要幾年的時間才會實作。 在此期間,KZG 儀式已經結束,收到了超過 140,000 份貢獻,Proto-Danksharding 的以太坊改善提案(opens in a new tab)業已成熟。 此提案已在所有測試網上充分實作,並在 2024 年 3 月的 Cancun-Deneb(「坎昆」)網路升級中在主網上線。

了解更多

這篇文章對你有幫助嗎?