分析 | 數據可用性問題將如何影響以太坊擴容?

來源:Polygon

原文標題:《數據可用性問題

撰文:Polygon

在這篇文章中,我們深入研究了數據可用性問題的細節以及它如何影響以太坊的擴展。

什麼是數據可用性問題?

數據可用性(DA)問題:區塊鏈網絡中的節點如何確保新提議區塊的所有數據實際上是可用的?如果數據不可用,則該塊可能包含被塊生產者隱藏的惡意交易。

舉個例子,假設 Alice 是 ZK-Rollup (ZKR) 的運營商。她在以太坊上提交了經過驗證的 ZK 證明。如果她沒有在以太坊上提交所有交易數據,儘管她的證據證明 rollup 中進行的所有狀態轉換都是有效的,但 rollup 的用戶仍然可能對其當前賬戶餘額一無所知。由於提交的證明的零知識性質,提交的證明沒有說明當前狀態。

Optimistic Rollup (OPR) 設置中有一個類似的例子,Alice 在以太坊上提交了一個斷言,但 OPR 的任何參與者都不能挑戰它,因為交易數據不可用,因此他們無法重新計算或挑戰該斷言。

為了應對上述情況,OPR 和 ZKR 的設計都要求 operator 將以太坊上的所有交易細節作為「calldata」提交。雖然這使他們在短期內避免了 DA 問題,但隨着 rollup 內部交易數量的增長,需要提交的數據量也會增加,從而限制了這些 rollup 可以提供的擴展量。

這對如今的區塊鏈有何影響?

為了回答這個問題,讓我們首先回顧一下類似以太坊的區塊鏈的一般區塊結構以及任何區塊鏈網絡上存在的客戶端類型。

一個塊可以分為兩個主要部分:

  • 區塊頭:一個小區塊頭包含與區塊中包含的交易相關的摘要和元數據。
  • 塊體:它包含所有交易數據並占塊大小的大部分。

在傳統的區塊鏈協議中,所有節點都被視為同步整個區塊並驗證所有狀態轉換的完整節點。所有節點花費大量資源來檢查交易有效性並存儲區塊。從好的方面來說,這些節點不會接受任何無效的交易。

可能還有另一類節點沒有(或不想花費)資源來驗證每筆交易。相反,他們主要對了解區塊鏈的當前狀態以及與他們相關的某些交易是否包含在鏈中感興趣。這些輕客戶端依靠全節點來檢查所有交易是否有效。因此,在安全性方面,它們依賴於可信的全節點。

但是如果區塊生產者沒有透露區塊背後的全部數據呢?這可以防止全節點驗證所有交易。這反過來又阻止了輕節點絕對確定它所看到的由所有合法交易支持的區塊頭。

為了解決這個問題,我們需要一種輕客戶端機制來驗證數據可用性。這將確保區塊生產者無法通過說服輕客戶端來隱藏數據。它還將迫使區塊生產者公開部分數據,使整個網絡以協作的方式訪問整個區塊。

讓我們藉助一個例子更深入地探討這個問題。假設區塊生產者 Alice 用交易 tx1、tx2、……、txn 構造了一個區塊 B。讓我們假設 tx1 是惡意交易。如果 tx1 被廣播,任何完整節點都可以驗證它是惡意的,並將其發送給輕客戶端,輕客戶端會立即知道該塊是不可接受的。但是,如果 Alice 想隱藏 tx1,她會顯示標頭和除 tx1 之外的所有交易數據。全節點無法驗證 tx1 的正確性。讓輕節點查詢任意一筆交易,均勻隨機。輕客戶端查詢 tx1 的概率為 1n。因此,Alice 能夠以壓倒性的可能性欺騙輕客戶端接受惡意交易。由於不可歸因的性質,全節點無法以任何方式證明 tx1 不可用。

那麼,我們該怎麼辦呢?

該問題的解決方案在於在塊中引入冗餘。總的來說,有大量關於編碼理論的文獻,特別是擦除編碼,可以幫助我們解決這個問題。

簡而言之,糾刪碼允許我們將任何 n 個數據塊擴展為 2 個數據塊,其中 2n 個數據塊中的任何一個都足以重建原始數據塊(參數是可調的,但為了簡單起見,我們在這裡考慮了這一點)。

如果我們強制區塊生產者擦除交易 tx1、tx2、…、txn 的代碼,然後隱藏單個交易,則需要隱藏 n+1 個交易,因為任何足以構建整個交易集的交易。在這種情況下,恆定數量的查詢使輕客戶端足以確信底層數據確實可用。

哇,原來如此?

不。雖然這個簡單的技巧使隱藏工作變得更加困難,但區塊生產者仍有可能故意以錯誤的方式執行擦除編碼。然而,一個完整的節點可以驗證這個擦除編碼是否正確完成,如果沒有,它可以向輕客戶端證明這一點。這被稱為欺詐證明。有趣的是,輕客戶端需要有一個誠實的全節點鄰居才能確定如果編碼錯誤,那麼它將收到欺詐證明。這確保了輕客戶端以極高的概率訪問沒有惡意交易的鏈。

但是存在一個問題!如果簡單地實現,欺詐證明的大小可以按照塊本身的大小排序。但我們對輕客戶端的資源預設禁止我們使用這樣的設計。通過使用多維擦除編碼技術,可以在這方面有所改進,該技術以可接受的大小減少欺詐證明的大小。為簡潔起見,我們不涉及這些,但該 文獻 對其進行了詳細分析。

基於欺詐證明的解決方案的問題在於,輕客戶端永遠無法完全確定尚未收到欺詐證明的任何塊。此外,他們一直相信其全節點對等方是誠實的。還需要激勵誠實的節點不斷保持審計區塊。

有沒有辦法避免欺詐證明?

最近,向量承諾重新引起了區塊鏈領域的關注。這些向量承諾,尤其是對多項式的恆定大小的 KZG/Kate 承諾,可用於設計簡潔的 DA 方案,而無需欺詐證明。簡而言之,Kate 承諾允許我們使用單個組元素提交多項式。此外,該方案支持我們證明在某個點 i 使用恆定大小的見證,多項式評估為(i)。承諾方案在計算上是隱藏和綁定的,也是同態的,使我們能夠巧妙地避免欺詐證明。

我們強制塊生產者獲取原始交易數據並將其排列在大小為 n,m 的二維矩陣中。它使用多項式插值將大小為 n 的每一列擴展為大小為 2n 的列。對於這個擴展矩陣的每一行,它都會生成一個多項式承諾,並將這些承諾作為區塊頭的一部分發送。下面給出了該塊的示意圖。

輕客戶端查詢這個擴展矩陣的任何單元格以獲得見證,這使它能夠立即根據塊頭驗證它。恆定大小的成員證明使抽樣非常有效。承諾的同態性質確保只有在正確構造塊的情況下才驗證證明,並且多項式插值確保成功樣本的恆定數量意味着數據以非常高的概率可用。

分析 | 數據可用性問題將如何影響以太坊擴容?

該方案的更精細細節以及進一步的優化和成本估算超出了本文的範圍。

其他選擇是什麼,以及進一步變更是什麼?

更高維的擦除代碼和 Kate 承諾並不是解決 DA 問題的唯一方法。我們在這裡跳過了其他方法,如編碼默克爾樹、編碼交錯樹、基於 FRI 和 STARK 的方法,但每種方法都有其優點和缺點。

我們在 Polygon,一直在使用 Kate 承諾開發數據可用性解決方案。在後面的文章中,我們將介紹實現細節、您現在可以如何使用它以及我們如何致力於轉變 DA 問題空間。

來源鏈接:blog.polygon.technology

本文鏈接:https://www.8btc.com/article/6654794

轉載請註明文章出處

(0)
上一篇 2021-06-29 13:07
下一篇 2021-06-29 13:28

相关推荐