區塊鏈是社會系統!Vitalik 探討以太坊該是萬能 L1 或打造多功 L2 呢?

Perry
分享
區塊鏈是社會系統!Vitalik 探討以太坊該是萬能 L1 或打造多功 L2 呢?

以太坊創辦人 Vitalik Buterin 近期發表了新文章《是否該在以太坊底層協議納入更多功能?》,文章中探討了許多當前所使用的技術是否有必要納入至以太坊底層協議,並提供了一個技術判別的標準。

(本篇為鏈新聞的翻譯及重點整理,如有疑義請以原文為主。)

是否該在以太坊底層協議納入更多功能?

從以太坊 (Ethereum) 計畫一開始,就有一種強烈的理念,即試圖使核心以太坊盡可能簡單,並透過在上面構建協議,以盡可能的多做點事。

廣告 - 內文未完請往下捲動

在區塊鏈領域,「直接在 L1 上做」與「專注於 L2」的爭論通常被認為是主要關於擴展 (scaling) 的,但實際上,在滿足多種以太坊使用者的需求方面存在類似的問題:數位資產交換、隱私、使用者名稱、高級密碼學、帳戶安全、抗審查,及搶先交易保護等等。然而,最近,人們一直對願意將更多這些功能納入核心以太坊協議持謹慎態度。

這篇文章將探討原始最小納入哲學背後的一些哲學推理,以及一些關於這些想法的最新思考方式。目標是開始建立一個框架,以更好地識別可能的目標,在這些目標中,在協定中嵌入某些功能可能值得考慮。

納入 ERC-4337

為何要將 ERC-4337 整合至以太坊有幾個主要討論原因,分別為:

  1. Gas 效率:
    在 EVM 內部執行的所有操作都會產生某種虛擬機費用,目前這些低效率的功能至少增加了約 20,000 Gas,而將此組建整合至協議中是解決此問題最簡單的方式。
  2. 程式碼漏洞風險:
    如果 ERC-4337 的入口合約有嚴重的 Bug,那所有 ERC-4337 相容的錢包將出現資產盜取現象,若將合約替換成協議內建功能,會將責任轉移至以太坊,因此可透過硬分岔解決用戶的資金風險問題。
  3. 支援 EVM opcodes:
    如 tx.origin,原生帳戶抽象可將 tx.origin 指向真實帳戶並發送交易,使其工作方式如 EOA 一樣。
  4. 抗審查性:
    額外協議的 ERC-4337 將用戶操作封裝在單個交易中,使得用戶操作對以太坊協議而言是不透明的。因此,以太坊協議提供的包含列表將無法對 ERC-4337 用戶操作提供抗審查性。若將 ERC-4337 納入,並將用戶操作視為「得宜」的交易類型,將解決這個問題。

在這些原因中,Vitalik 特別關注於 Gas 費用效率問題。在目前的形式下,ERC-4337 比「基本」以太坊交易昂貴得多:基本交易成本為 21,000 Gas,而 ERC-4337 成本約為 42,000 Gas。

納入 ZK-EVM

由於 L2 ZK-EVM 基本上使用與以太坊相同的 EVM,能否以某種方式將「在 ZK 中驗證 EVM 執行」變成一個協議功能?並且對於像漏洞和升級之類的特殊情況,能否僅應用以太坊的社會共識來處理?

對此,Vitalik 提出了些細微差別:

  1. 以太坊希望允許不同的客戶端使用不同的證明系統。也就是說,對於使用 ZK-SNARK 系統證明的任何 EVM 操作,以太坊希望有保證底層數據可用的機制,以便可以為其他 ZK-SNARK 系統生成證明。
  2. 儘管技術尚不成熟,但仍可能需要可審計性。與上述相同,如果任何操作得到證明,以太坊希望底層數據可用,以便如果出現任何問題,用戶和開發人員可以檢查它。
  3. 需要更快的證明時間,以便如果生成一種類型的證明,其他類型的證明可以生成得足夠快,以便其他客戶端可以驗證它們。一種解決方法是創建一個預編譯,它在某個比一個 slot 更長的時間段之後會非同步回應,但這會增加複雜性。
  4. 以太坊希望不僅支援 EVM 的複製品,還支援「幾乎是EVM」的系統。如果 L2 仍然可以使用原生協議中的 ZK-EVM 來處理與 EVM 相同的部分,並且僅依靠自己的程式碼處理不同的部分,這將是很好的。這可透過設計 ZK-EVM 預編譯來實現,該預編譯允許調用者指定一個位域、操作碼列表或地址列表,由外部提供的表格來處理,而不是由 EVM 自身處理。還可以在一定程度上使 Gas 成本可客製化。

因此,Vitalik 認為納入 ZK-EVM 的論點是相當有說服力的:Rollup 已經在建構自己的客製版本,若以太坊將多重執行及鏈下共識看得比 L1 的 EVM 操作還重,且做完全相同工作的 L2 卻必須實施涉及安全委員會的複雜裝置,這樣似乎是不對的。

納入私人暫存池 (Mempool)

為了避免因區塊鏈交易透明的特性而遭到三明治攻擊,私人暫存池的設計將可使用戶的交易保持加密狀態,直到他們不可逆轉地被接受到區塊中。為了實現這種形式的加密,會涉及不同的技術和不同的權衡,但皆需透過中心化營運商的協助。

對此,Vitalik 認為這些中心化組織的解決方案都存在不同的弱點,中心化營運商也無法被接受為協議的一部分,而傳統的時間鎖定加密方式在公共暫存池中運行成本也過高,無法應對數千筆交易。

納入流動性質押

為了滿足以太坊上用戶的質押需求,Lido 及 Rocketpool 等 LSD 協議皆提供簡單的介面使用戶可以一鍵質押,但 Vitalik 指出流動性質押有個自然的中心化機制:人們傾向使用最大的質押協議,因為他最有名氣流動性也最好。但 Vitalik 分別點出了 Lido 及 Rocketpool 面臨的問題。

由於 Rocketpool 用戶僅需要 8ETH 即可運行節點,使攻擊者可對網路進行 51% 攻擊。至於負責節點審核 Lido DAO,如果單一質押貸幣佔大多數,將導致單一、潛在可攻擊的治理風險,儘管 Lido 已實施相應的保護機制,但一層防禦可能不夠。

短期來看,Vitalik 認為可以鼓勵社群使用各類型的 LSD 協議以降低中心化風險,但這並不是個穩定的做法。那麼,在協議中納入某種類型的功能以使流動性質押變得不那麼中心化,是否有意義呢?

對此,Vitalik 表示關鍵問題為,要納入的功能為何?他認為 RocketPool 已提供一種可行的方式運作:每個節點運營商提供部分 ETH,而流動性質押者提供其餘的 ETH。只需要微調一些參數,例如將消減懲罰 (Slashing Penalty) 調整至 2ETH,Rocket Pool 現有的 rETH 就會變得無風險。

納入更多的預編譯 (precompiles)

預編譯是以太坊開發初期採納的一種妥協方案:由於虛擬機的開銷對於某些非常複雜和高度專業化的程式碼來說太大,可以在原生程式碼中實行一些對於應用程式非常有價值的關鍵操作,以提高速度。

但 Vitalik 認為之前添加的許多預編譯(例如 RIPEMD 和 BLAKE)最終使用程度遠低於預期,現在不該繼續著重在為特定操作添加更多預編譯,而是應該聚焦於更為適度的方法,像是 EVM-MAXSIMD 提案。甚至也可以刪除現在很少使用的預編譯,並用 EVM 程式碼達到相同功能來取而代之。

Vitalik 想告訴我們什麼?

本篇強調了受到 Unix 哲學啟發的極簡主義,與將特性納入區塊鏈協議之間的平衡。與個人電腦作業系統不同,區塊鏈是社會系統,因此需要考慮不同的因素。文章中的重點包括:

  • 納入特性 (Enshrining Features):納入特性可以防止中心化風險。然而,太過度會增加治理負擔、使協議變得複雜,且可能與長期用戶需求不一致。
  • 中間路線:一個可能的解決方案是「最小可行的納入」。而不是整合整個功能,協議可能只採納實現該功能變得更簡單的關鍵組件。例如,為了流動權益質押修改懲罰規則、為了擴展操作範圍而納入 EVM-MAX,或者只是納入 EVM 驗證而不是整個 rollups 概念。
  • 去除納入 (de-enshrin):去除某些特性可能有益,特別是如果它們很少被使用。例如:一些預編譯 (precompiles)。

最終,決定什麼特性應該整合到協議中,什麼特性應該留給其他生態系統層是一個複雜的問題。隨著用戶需求和可用技術的發展,這種平衡可能會隨著時間的推移而改變。