區塊鏈社群的共識是一件脆弱的事情。因為需要升級、漏洞的存在,以及 51% 的攻擊始終可能發生,社會共識是必要的,但是因為它有如此高的導致鏈分裂的風險,在成熟的社群中,我們應謹慎使用它。本文源自以太坊共同創辦人 Vitalik Buterin 的網誌文章《Don’t overload Ethereum’s consensus》,並由Web3大航海編譯、撰稿,BlockBeats 整理。
(前情提要:V神:以太坊3挑戰「擴容、隱私和用戶安全」,10年後zk-SNARKs與區塊鏈一樣重要 )
(背景補充:「以太坊聖山」就在台灣!V神大頭照秘密破解 )
以太坊網路的共識機制是目前最安全的加密經濟系統之一。價值 1800 萬 ETH(約 340 億美元)的驗證節點每 6.4 分鐘就會確認一個區塊,這些驗證節點運行了多種不同的協議實現以保證冗餘。如果加密經濟共識出現問題,無論是由於 bug 還是有意的 51% 攻擊,一個由數千名開發者和更多使用者組成的龐大社群都會仔細監控,確保鏈正確地恢復。一旦鏈恢復,協議規則將確保攻擊者可能會遭受嚴重的懲罰。
多年來,有許多想法(通常在思考實驗階段)提出利用以太坊驗證節點集合,甚至以太坊社會共識,來達到其他目的:
最終的預言機:提出一個使用者可以通過傳送 ETH 來投票表明事實真相的提案,採用 SchellingCoin 機制:每個投票給多數答案的人都可以獲得所有投票給少數答案的 ETH 的比例份額。
該描述繼續說明:「所以原則上這是一個對稱的遊戲。打破對稱的是 a) 真相是協調的自然點,更重要的是 b) 投注真相的人可以在他們輸掉的情況下,威脅要分叉以太坊。」
Re-staking:許多協議(包括 EigenLayer)使用的一套技術,在此基礎上,以太坊的持幣人可以同時把他們的股份作為在另一個協議中的存款。在某些情況下,如果他們違反了其他協議的規則,他們的存款也會被處罰。在其他情況下,沒有協議內激勵,股權僅用於投票。
L1 驅動的 L2 專案恢復:多次提出,如果 L2 有一個 bug,L1 可以分叉來恢復它。最近的一個例子是這個設計,使用 L1 軟分叉來恢復 L2 的失敗。
這篇文章的目的將詳細解釋為什麼,我認為,這些技術中的一部分會給生態系統帶來高度的系統風險,應該被阻止和抵制。
這些提議通常是以良好的意圖提出的,因此目標不是關注個人或專案,而是關注技術。本文將試圖防守的一般原則是這樣的:雖然驗證者質押的 ETH 的雙重使用存在一些風險,但基本上是可以接受的,然而,試圖將以太坊社會共識「招募」來服務於你的應用的目的則是不可取的。
重用驗證者(低風險)和社會共識過載(高風險)之間區別的例子:
– Alice 建立了一個 web3 社交網路,如果你能加密證明你控制了一個活躍的以太坊驗證者的金鑰,你就會自動獲得 “驗證” 的狀態。低風險。
– Bob 通過加密證明他控制了十個活躍的以太坊驗證者的金鑰,以此證明他有足夠的財富滿足某些法律要求。低風險。
– Charlie 聲稱他已經反駁了孿生素數猜想,並聲稱知道最大的 p,使得 p 和 p+2 都是素數。他將其質押提現地址更改為一個智慧合約,任何人都可以提交一個聲稱的反例 q > p,連同一個 SNARK 證明,證明 q 和 q+2 都是素數。如果有人提出了有效的主張,那麼 Bob 的驗證者就會被強制退出,提交者得到的是 Bob 剩下的 ETH。低風險。
– Dogecoin 決定轉向權益證明,併為了增加其安全池的規模,它允許以太坊的持幣人進行 “雙重質押”,同時加入其驗證者集合。為了做到這一點,以太坊的持幣人需要將他們的質押提現地址更改為一個智慧合約,任何人都可以提交一個證明,證明他們違反了 Dogecoin 的質押規則。如果有人提交了這樣的證明,那麼持幣人的驗證者就會被強制退出,他們剩下的 ETH 將被用來購買並銷燬 DOGE。低風險。
– eCash 與 Dogecoin 做了相同的事情,但是專案領導者進一步宣佈:如果大多數參與的 ETH 驗證者串通起來審查 eCash 的交易,他們期望以太坊社群將通過硬分叉來刪除這些驗證者。他們認為,由於這些驗證者被證明是惡意和不可靠的,因此以太坊有興趣這樣做。高風險。
– Fred 建立了一個 ETH/USD 價格預言機,它通過允許以太坊驗證者參與和投票來運作,沒有激勵。低風險。
George 建立了一個 ETH/USD 價格預言機,該預言機通過允許 ETH 持有者參與和投票來執行。為了防止懶惰和潛在的賄賂,他們增加了一個激勵機制,即給出在中位數答案 1% 範圍內的參與者獲取超過中位數 1% 答案的參與者的 1% 的 ETH。
當被問到「如果有人可信地提供賄賂所有參與者,每個人都開始提交錯誤的答案,那麼誠實的人會被奪走 1000 萬 ETH 怎麼辦?」
George 回答道:那麼以太坊將不得不剝離掉不良參與者的資金。高風險。
George 明顯避免回答中高風險(因為該專案可能創造激勵以試圖進行這樣的分叉,因此即使沒有正式的鼓勵,也有可能會嘗試進行分叉)
George 回答:「那麼攻擊者就贏了,我們將放棄使用這個預言機。」中低風險(並不完全是「低風險」,只是因為該機制確實創造了一大批在 51% 攻擊中可能被激勵去獨立倡導分叉以保護他們存款的行為者)
Hermione 創造了一個成功的二層,並聲稱因為她的二層是最大的,所以它天生就是最安全的,因為如果有一個錯誤導致資金被盜,損失將如此巨大,以至於社群別無選擇,只能通過分叉來恢復使用者的資金。高風險。
如果你正在設計一個協議,即使一切完全崩潰,損失也被限制在選擇參與和使用你的協議的驗證者和使用者中,那麼這是低風險的。另一方面,如果你有意引入更廣泛的以太坊生態系統社會共識以通過分叉或重組解決你的問題,那麼這是高風險的,我認為我們應該強烈抵制所有試圖建立這種期望的嘗試。
中間地帶的情況是從低風險類別開始,但讓其參與者有動機滑向更高風險類別的情況;SchellingCoin 式的技術,特別是對背離多數派有重大懲罰的機制,是一個主要的例子。
那麼,過度利用(stretching)以太坊共識有什麼問題呢?
假使現在是 2025 年,對現有選項感到沮喪的一群人決定建立一個新的 ETH/USD 價格預言機,該預言機通過允許驗證者每小時投票一次來確定價格。
如果一個驗證者投票,他們將無條件地從系統中獲得一部分手續費作為獎勵。但是不久,參與者開始變得懶散:他們連線到中心化的 API,當這些 API 遭到網路攻擊時,他們要麼退出,要麼開始報告錯誤的值。
為了解決這個問題,他們引入了激勵機制:預言機也會對一週前的價格進行投票,如果你(即時或回顧性)的投票與中位數的投票相差超過 1%,你將被嚴重懲罰,懲罰金將給予那些「正確」投票的人。
一年之內,超過 90% 的驗證者參與了進來。有人問:如果 Lido 聯合其他幾個大的質押者對投票進行 51% 的攻擊,強行通過一個虛假的 ETH/USD 價格值,從所有不參與攻擊的人那裡抽取重罰呢?此時,預言機的擁躉們已經深度投資在這個計劃中,他們回答說:如果真的發生這種情況,以太坊肯定會分叉,把壞人踢出去。
起初,這個計劃只限於 ETH/USD,看起來非常穩定。但是隨著時間的推移,其他的指數也被新增進來:ETH/EUR,ETH/CNY,最後是 G20 所有國家的匯率。
然而,在 2034 年,事情開始出錯。巴西發生了一場意想不到的嚴重政治危機,導致選舉爭議。一個政黨控制了首都和 75% 的國土,但另一個政黨卻控制了一些北部地區。主要的西方媒體認為,北方的政黨顯然是合法的勝者,因為它的行為是合法的,而南方的政黨的行為是非法的(而且他們是法西斯)。
然而,印度和中國的官方訊息源,以及 Elon Musk,認為南方的政黨實際上控制了大部分國土,國際社會不應試圖充當世界警察,而應該接受這個結果。
此時,巴西已經有了一種 CBDC,它分裂成兩個分叉:(北方的)BRL-N 和(南方的)BRL-S。在預言機投票時,60% 的以太坊質押者提供 ETH/BRL-S 的匯率。大部分社群領導人和企業都譴責質押者對法西斯的卑劣屈服,並提議對鏈進行硬分叉,只包括提供 ETH/BRL-N 匯率的「好驗證者」,並將其他驗證者的餘額減少到接近零。
在他們的社交媒體泡泡中,他們認為他們將明顯勝出。然而,一旦分叉發生,BRL-S 一方的力量出人意料地強大。他們預期的壓倒性勝利,實際上幾乎是一個 50-50 的社群分裂。
此時,兩方各自在兩個獨立的宇宙中,各自有兩條鏈,實際上無法重新聚在一起。以太坊,一個部分為了擺脫國家和地緣政治的影響而建立的全球無許可權平臺,卻因為 G20 成員國中的任何一個國家出現意想不到的嚴重內部問題,而被一分為二。
這是一個很好的科幻故事,甚至可以拍成一部好電影。但是我們實際上可以從中學到什麼呢?
區塊鏈的「純粹性」,在它是一個純粹的數學結構,只試圖在純粹的數學事物上達成共識的意義上,是一個巨大的優勢。只要一個區塊鏈試圖「鉤住」外部世界,外部世界的衝突就開始影響區塊鏈。如果發生一個足夠極端的政治事件,事實上,考慮到上述故事基本上是對過去十年內各個主要(>2500 萬人口)國家實際發生的事件的模仿,即使是一個貨幣預言機也可能撕裂社群。
以下是一些可能的場景:
預言機追蹤的貨幣(甚至可能是美元)簡單地發生了超級通貨膨脹,市場崩潰到某些時間點上沒有明確的市場價格。
如果以太坊將價格預言機新增到另一種加密貨幣,那麼像上述故事中那樣的爭議性分裂並非假設:這是已經發生的事情,包括比特幣和以太坊本身的歷史。
如果實施嚴格的資本管制,那麼在兩種貨幣之間報告哪一個價格作為合法市場價格將成為一個政治問題。
但更重要的是,我認為存在一個 Schelling 圍欄:一旦區塊鏈開始將現實世界的價格指數作為一層協議特性,它很容易屈服於解釋越來越多的現實世界資訊。引入一層價格指數也擴大了區塊鏈的法律攻擊面:它不僅僅是一箇中立的技術平臺,它更明顯地成為了一個金融工具。
除了價格指數之外,其他的風險呢?
以太坊共識的「職責」的任何擴充套件都會增加執行驗證者的成本、複雜性和風險。驗證者被要求付出人力去關注,並執行和更新額外的軟體,以確保他們根據被引入的其他協議正確地行動。其他社群獲得了將其糾紛解決需求外部化到以太坊社群的能力。驗證者和整個以太坊社群都被迫做出更多的決策,每個決策都有導致社群分裂的風險。即使沒有分裂,避免這種壓力的願望也會創造出額外的激勵,通過抵押池將決策外部化到中心化的實體。
分裂的可能性也會大大增強不良的過大而不能倒機制。在以太坊上有這麼多的第二層和應用層專案,以至於以太坊社會共識願意為解決所有這些問題而進行分叉是不切實際的。因此,更大的專案無可避免地會有更大的機會獲得救助。這反過來會導致大專案獲得壕溝:你寧願把你的幣放在 Arbitrum 或 Optimism 上,如果出了什麼問題,以太坊會分叉來挽救局面,還是放在 Taiko 上,因為它規模較小(且非西方,因此在核心開發者圈子中社會聯絡較少),L1 支援的救援可能性較小?
但是,漏洞是一個風險,我們需要更好的預言機。那麼我們應該怎麼做呢?
我認為解決這些問題的最佳方案是因情況而異,因為各種問題本質上是如此不同。一些解決方案包括:
價格預言機:要麼是非完全加密經濟的去中心化預言機,要麼是基於驗證者投票的預言機,它們明確承諾他們的緊急恢復策略是除了求助於 L1 共識進行恢復之外的其他方式(或兩者的某種結合)。例如,價格預言機可以依賴於一個信任假設,即投票參與者的腐敗速度慢,因此使用者會提前警告攻擊並可以退出任何依賴於預言機的系統。這樣的預言機可以故意在長時間延遲後才給予獎勵,這樣如果協議的例項停止使用(例如,因為預言機失敗和社群分叉到另一個版本),參與者就不會得到獎勵。
關於比價格更主觀的事實的更復雜的真理預言機:建立在非完全加密經濟 DAO 上的某種去中心化法院系統。
Layer2 協議:
- 短期內,依賴部分訓練輪子(本帖稱之為第一階段)
- 中期內,依賴多個證明系統。可信的硬體(例如 SGX)可以包括在此;我強烈反對把類似 SGX 的系統作為安全的唯一保證,但作為 3 選 2 系統的一員,它們可能是有價值的。
- 長期內,希望如「EVM 驗證」這樣的複雜功能最終會被納入協議。
跨鏈橋:與預言機相似的邏輯,但也儘量減少你依賴橋的程度:在它們源鏈上持有資產,並使用原子交換協議在不同的鏈之間轉移價值。
使用以太坊驗證者集來保護其他鏈:上面例子列表中(更安全的)狗狗幣方法可能不足的一個原因是,雖然它確實防止了 51% 的終結性反轉攻擊,但它並不能防止 51% 的審查攻擊。然而,如果你已經依賴於以太坊的驗證者,那麼一個可能的方向是停止試圖管理一個獨立的鏈,而是成為一個以以太坊為錨定的有效驗證系統。如果鏈做了這樣的改變,其對終結性反轉攻擊的保護就會和以太坊一樣強大,而且它能夠防止高達 99% 的審查攻擊(相比之下,以前是 49%)。
結論:
區塊鏈社群的社會共識是一件脆弱的事情。因為需要升級、漏洞的存在,以及 51% 的攻擊始終可能發生,社會共識是必要的,但是因為它有如此高的導致鏈分裂的風險,在成熟的社群中,我們應謹慎使用它。有一種自然的衝動想要擴充套件區塊鏈的核心功能,因為區塊鏈的核心擁有最大的經濟權重和最大的社群觀察者,但每一次這樣的擴充套件都會使核心本身變得更加脆弱。
我們應警惕應用層專案採取可能增加區塊鏈共識「範圍」的行動,除非這些行動是驗證核心以太坊協議規則。應用層專案嘗試這樣的策略是很自然的,而且這樣的想法通常是在沒有意識到風險的情況下產生的,但其結果很容易與社群整體的目標產生極大的不一致。這樣的過程沒有限制原則,可能會導致區塊鏈社群隨著時間的推移越來越多地擁有 “職責”,將其推入了每年面臨高風險分裂和某種事實上的官僚機構對鏈具有最終控制權之間的不舒適選擇。
我們應該保持鏈的極簡主義,支援那些看起來不像滑坡的 re-staking 的用途,擴大以太坊共識的角色,幫助開發者找到其他策略來實現他們的安全目標。
📍相關報導📍
V神:以太坊3挑戰「擴容、隱私和用戶安全」,10年後zk-SNARKs與區塊鏈一樣重要