Allen

Allen

crypto seeker||starknet

以太坊的窘境--擴容

隨著以太坊生態的日漸繁榮,長久以來圍繞生態的一大問題就是:交易速度和費用。這也是以太坊挥之不去的問題,因此擴容也是最被廣泛討論的問題。這裡簡單介紹下歷史。

擴容之路#

Pos:區塊提議者和區塊驗證者分離,pos 工作流程是:

  1. 在分片提交交易
  2. 驗證者將交易添加到分片區塊中
  3. 信標鏈選擇驗證器以提出新的塊
  4. 其餘的驗證者組成隨機的委員會驗證分片上的提議

提出區塊和證明提議都需要在一個 slot 內完成,一般是 12s。每 32 個 slot 組成一個週期 epoch,每個 epoch 將打亂驗證者排序重新選舉委員會。

合併後,以太坊將為共識層實現提議者 - 構建者分離。Vitalik 認為,所有區塊鏈的終局是擁有中心化的區塊生產和去中心化的區塊驗證。由於分片後的以太坊區塊數據非常密集,出於對數據可用性的高要求,區塊生產的中心化是必要的。同時,必須有一種方法來維護一個去中心化的驗證者集,它可以驗證區塊並執行數據可用性抽樣。

什麼是分片?是水平分割數據庫以分散負載的過程#

分片是一種分區方式,可以在 P2P 網絡中分散計算任務和存儲工作負載,經過這種處理方式,每個節點不用負責處理整個網絡的交易負載,只需要維護與其分區(或分片)相關的信息就可以了。每個分片都有自己的驗證者網絡或者節點網絡。分片的安全性問題:

例如整個網絡有 10 條分片鏈,破壞整個網絡需要 51% 的算力,那麼破壞單個分片之需要 5.1% 的算力。

信標鏈,負責生成隨機數,將節點分配給分片,捕捉單個分片的快照,處理握手權益和其他各種功能,負責完成分片間的通信,協調網絡的同步。

分片的一個很大問題是跨分片。因為在分片中,每個節點群只處理該分片內的交易,交易在分片間會相對獨立,那麼 AB 兩用戶處於不同分片上,相互轉賬如何處理呢?

區塊存在被捨棄的情況,因此如果 A,B 被接受處理,在 #2 中選擇接受 W,X 交易,那麼整個交易就無法進行下去。儘管發生分叉的概率非常小。

過去的方式是數據可用性層分片,每個分片都有獨立的 proposers 和 committee。在驗證者集合中,每個驗證者輪流驗證分片的數據,他們將數據全部下載下來進行驗證。

缺點是:

  1. 需要嚴密的同步技術來保證驗證者之間能夠在一個 slot 內同步。
  2. 驗證者需要收集所有的 committee 的投票,這裡也會出現延遲。
  3. 而且驗證者完全下載數據對其壓力也很大。

第二種方法是放棄完全的數據驗證,而是採用數據可用性抽樣的方法。這裡又分為兩種隨機抽樣方式:

  1. 區塊隨機抽樣,對部分分片抽樣,如果驗證通過後,驗證者進行簽名。但是這裡的問題是,可能會出現遺漏交易的情況。
  2. 通過紅寫碼將數據重新解釋為多項式,再利用特定條件下多項式能夠恢復數據的特點,來確保數據的完整可用性。

多項式的性質:能夠從四個點去恢復數據

那麼只要保持 50% 以上的被編碼的數據是可用的,整個數據就是可用的。

當我們進行多次抽樣時,數據不可用的概率只有 2^-n

邏輯就是我們將數據進行紅寫碼變為多項式,再進行拓展,拓展能夠恢復數據。

這裡的問題就被轉移到了:在多項式拓展的過程中,是否被正確的拓展。

因為本身數據有問題,那麼拓展後,重新恢復數據也是錯誤的。那麼如何確保數據被正確的拓展呢?

  1. celestia 使用欺詐證明,這裡有一個同步問題
  2. ethereum 和 polygon avail 使用 kzg 承諾,這裡不需要誠實少數和同步問題。但 kzg 承諾不具備抗量子計算攻擊的能力,未來以太坊可能轉向 zkstarks 的技術,其抗量子算法攻擊。

在這個賽道裡面,最火熱的當屬采用零知識證明的 zksync 和 starkware 了。後續講詳細介紹他們。

什麼叫抗量子攻擊:就是該算法不依賴大量的數學安全假設。#

Kzg 承諾:證明多項式在特定位置的值與指定的數值一致。

KZG 承諾無非就是多項式承諾中的一種,能夠在不給定具體消息的情況下驗證消息。具體流程如下圖:

與 merkel 樹進行對比:#

整個流程就是:將數據通過紅寫碼化為多項式,將其拓展。使用 KZG 承諾確保我們的拓展是有效的,且原數據是有效的。然後利用拓展可以 reconstruct 數據,最後進行數據可用性抽樣。

Celestia 要求驗證者下載整個區塊,現在的 danksharding 則利用數據可用性抽樣技術。

由於區塊存在部分可用的情況,因此任何時候我們都需要重構區塊的時候保證同步。在區塊確實部分可用時,節點之間通信,將區塊拼湊出來。

KZG 承諾和數據欺詐證明的比較:#

可以看到 KZG 承諾能確保拓展和數據是正確的,而欺詐證明引入第三方進行觀察。最明顯的區別是,欺詐證明需要一個時間間隔來給觀察者進行反應,從而報告欺詐,這時候需要滿足節點直接的同步,以整個網絡能夠及時收到欺詐證明。KZG 則明顯的比欺詐證明更快,其使用數學方法來確保數據的正確,而不需要一個等待時間。

Celestia 自身的缺陷在於使用大區塊,要求驗證者下載全部數據,這個也是以太坊 danksahrding 的 proto 方案。那麼為了解決會出現的問題,celestia 未來也會選擇數據可用性抽樣的方法,那麼就需要用到 kzg 承諾。

無論是 kzg 還是欺詐證明都需要同步。因為存在概率發生區塊不可用的情況。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。