Vitalik的PoS簡化提案:堅持在SSF之後每個插槽使用8192個籤名
發表於 2023-12-28 10:00 作者: 金色財經
Vitalik的PoS簡化提案:堅持在SSF之後每個插槽使用8192個籤名
作者:Vitalik Buterin,ethresearch;編譯:松雪,金色財經
以太坊和大多數其他(最終確定性)權益證明系統之間的主要區別在於,以太坊試圖支持非常多的驗證器對象:我們目前有 895,000 個驗證器對象,簡單的 Zipf 定律分析表明這對應於數萬個驗證器對象是獨特的個人/實體。 這樣做的目的是支持去中心化,甚至允許普通個人參與質押,而不要求每個人放棄自己的代理權並將控制權交給少數質押池之一。
然而,這種方法要求以太坊鏈每個時隙處理大量籤名(今天約爲 28,000 個;SSF 後爲 1,790,000 個),這是一個非常高的負載。 支持此負載需要做出大量技術犧牲:
這需要一個復雜的證明傳播機制,涉及將證明分割到多個子網之間,需要對BLS籤名操作進行超優化以驗證這些籤名等等。
我們沒有一個明確的可替代、足夠高效的抗量子的方案。
類似視圖合並的分叉選擇修復變得更加復雜,因爲無法提取單個籤名。
對籤名進行SNARK處理是困難的,因爲它們的數量很大。Helios需要在一個專用的額外籤名上操作,稱爲同步委員會籤名。
它通過要求一個時間槽中有三個子時間槽而不是兩個,增加了安全最小時間槽。
籤名聚合系統乍看起來是合理的,但實際上它創建了系統性復雜性,這種復雜性滲透到各個方面。
更何況,它甚至沒有達到自己的目的。 質押的最低要求仍然是 32 ETH,這對很多人來說是遙不可及的。 而僅僅從邏輯上分析,從長遠來看,讓每個人都籤到的系統真正爲普通人提供質押似乎是不可行的:如果以太坊有 5 億用戶,其中 10% 的用戶進行質押,那么 這意味着每個插槽有 1 億個籤名。 從信息理論上講,此設計中的處理削減需要每個插槽至少 12.5 MB 的數據可用空間,大致與完整 daksharding 的目標一樣多(!!!)。 也許是可行的,但要求質押本身依賴於數據可用性採樣會帶來很大的復雜性增益——即使這只是世界人口質押的約 0.6%,而且還沒有开始涉及驗證這么多籤名的計算問題。
因此,與其依賴於密碼學家創造魔法子彈(或魔法防彈衣),以使每個時間槽中的籤名數量不斷增加成爲可能,我建議我們進行一次哲學轉變:從一开始就放棄對此類期望。這將極大地擴展PoS設計空間,並允許進行大量技術簡化,通過允許Helios直接在以太坊共識上進行SNARK處理,使其更加安全,並通過使即使是像Winternitz這樣無聊而存在已久的籤名方案也能夠可行來解決量子抗性問題。
爲什么不“只用委員會”呢?
許多面臨這一確切問題的非以太坊區塊鏈使用了一種基於委員會的安全方法。在每個時間槽中,它們隨機選擇N個驗證者(例如,N約等於1000),這些驗證者負責完成該時間槽。值得提醒的是,爲什么這種方法不足夠:它缺乏問責制。
爲了理解其中的原因,假設發生了一次51%攻擊。這可能是一次最終性逆轉攻擊或審查攻擊。要發動攻擊,仍然需要控制大部分質押的經濟參與者同意進行攻擊,即運行參與攻擊的軟件,與所有最終被選爲委員會的驗證者一起參與攻擊。隨機抽樣的數學保證了這一點。然而,他們爲這樣的攻擊承擔的懲罰很小,因爲大多數同意攻擊的驗證者最終沒有被看到,因爲他們沒有被選爲委員會成員。
目前,以太坊採取了相反的極端。如果發生51%攻擊,整個攻擊驗證器集合的大部分都會被削減質押。目前攻擊的成本約爲900萬ETH(約合200億美元),並且這假設網絡同步以最大程度地有利於攻擊者的方式中斷。
我認爲這是一個高昂的成本,而且是一個過高的成本,我們可以在這個問題上做出一些犧牲。即使攻擊成本爲1-2百萬ETH也完全足夠。此外,以太坊目前存在的主要中心化風險在一個完全不同的地方:如果最低質押金額降低到接近零,大規模的質押池的實力差異將不會太大。
這就是爲什么我主張一個溫和的解決方案:在驗證者的問責制上做出一些犧牲,但仍然保持可削減的ETH總量相當高,作爲交換,它給我們帶來了較小驗證者集合的大部分好處。
在SSF下,每個時間槽的8192個籤名會是什么樣子呢?
假設採用傳統的兩輪共識協議(類似Tendermint使用的協議,以及SSF不可避免地會使用的協議),每個參與的驗證者每個時間槽需要兩個籤名。我們需要繞過這個現實。我看到三種主要方法,我們可以這樣做。
方法一:全力投入去中心化質押池
Python 有一句非常關鍵的話:
應該有一種——最好只有一種——明顯的方法來做到這一點。
對於質押平等化的問題,以太坊目前違反了這一規則,因爲我們同時執行兩種不同的策略來實現這一目標:(i)小規模單獨質押,以及(ii)使用分布式驗證器技術(DVT)的去中心化質押池 。 由於上述原因,(i) 只能支持部分個人質押者; 總會有很多人的最低存款額太大。 然而,以太坊正在爲支持(i)付出非常高的技術負擔成本。
一種可能的解決方案是放棄(i)並全力投入(ii)。我們可以將最小質押金額提高到4096 ETH,並設定4096個驗證者的總上限(約1670萬ETH)。預計小規模質押者將加入DVT池:要么通過提供資金,要么成爲節點運營商。爲了防止攻擊者濫用,節點運營商角色需要以某種方式受到聲望的限制,並且池之間將通過在這方面提供不同的選擇來競爭。提供資金將是無許可的。
我們可以通過限制處罰來使該模型中的集合質押更加“寬容”,例如。 至所提供質押總數的 1/8。 這將減少對節點運營商的信任,盡管由於此處概述的問題,值得謹慎處理。
方法 二:兩級質押
我們創建兩層質押者:一個“重型”層,要求4096 ETH,參與最終化,以及一個“輕型”層,沒有最低質押要求(同時也沒有存款和提款延遲,以及沒有削減的風險),它增加了另一層的安全性。要使一個區塊最終化,既需要重型層最終化它,又需要輕型層在线輕型驗證者的>= 50%對其進行證明。
這種異質性對於抗審查和抵抗攻擊是有益的,因爲要使攻擊成功,需要同時腐化重型層和輕型層。如果一層被腐化而另一層沒有,鏈將停止;如果是重型層被腐化,可以對其進行懲罰。
這種方法的另一個好處是,輕型層可以包括同時用作應用程序內抵押品的ETH。主要的缺點是,通過確立小規模質押者和大規模質押者之間的分歧,使質押變得不太平等。
方法 三:輪流參與(即委員會但負責)
我們採取的方法與這裏提出的超級委員會設計類似:對於每個時隙,我們選擇 4096 個當前活躍的驗證者,並且我們在每個時隙期間仔細調整該集合,以確保我們仍然安全。
然而,我們做出了一些不同的參數選擇,以便在此框架內獲得“最大的收益”。 特別是,我們允許驗證者以任意高的余額參與,如果驗證者擁有超過一定數量 M 的 ETH(必須是浮動的),那么他們在每個時段都參與委員會。 如果驗證者有 N<M ETH,那么他們有N/M 在任何給定時間段內進入委員會的概率。
我們這裏有一個有趣的槓杆,是將出於激勵目的的“權重”與出於共識目的的“權重”解耦:委員會內每個驗證者的獎勵應該相同(至少對於≤M ETH 的驗證者),以保持平均獎勵成比例。我們仍然可以以 ETH 爲權重,對委員會中的驗證者進行共識計數。 這確保了打破最終性需要 ETH 數量等於委員會中 ETH 總量的大於三分之一。
Zipf 定律分析將按如下方式計算 ETH 數量:
在總余額的每個二次方級別,驗證者的數量與該余額級別成反比,並且這些驗證者的總余額將相同。
因此,委員會將有來自每個余額級別的等量 ETH 參與,除了高於障礙 M 的級別(驗證者始終在委員會中)。
因此,我們在上述級別的每個 K 驗證器中都有Log2(M)級別,和K+K/2+……=2K以上級別的驗證者。因此,K=4096/Log2(M)+2。
最大的驗證器將有M*k ETH。我們可以向後推算:如果最大的驗證器有2^18=262144 ETH,這意味着(大致)M = 1024 and k = 256。
-
質押的 ETH 總額爲:
前 512 名驗證者的全部權益(2^18*1+2^17*2+……+2^10*2^8=2359296)
加上隨機抽樣的較小賭注(2^8*(2^9+2^8+2^7……)約等於2^8*2^10=2^18)
我們總共獲得了2621440個ETH,或者攻擊成本約爲900k ETH。
這種方法的主要缺點在於在協議內部引入了一些更多的復雜性,以通過一種使我們在委員會更改時仍然能夠獲得共識安全性的方式隨機選擇驗證者。
其主要優勢在於它保留了獨立質押的可識別形式,保留了一個單一的系統,並且甚至允許將最小質押金額降低到非常低的水平(例如1 ETH)。
總結
如果我們確定在SSF協議之後,我們希望堅持使用8192個籤名,這將使技術實施者的工作變得更加容易,以及輕客戶端等輔助基礎設施的構建者。對於任何人來說,運行一個共識客戶端都變得更加容易,用戶、質押愛好者和其他人可以立即在這一假設的基礎上進行工作。以太坊協議的未來負載不再是未知的:它可以通過硬分叉在未來提高,但只有當开發人員確信技術已經足夠改進,能夠以相同的輕松程度處理更多的籤名每個時間槽。
剩下的工作將是決定我們想要採取上述三種方法中的哪一種,或者也許是完全不同的方法。這將是一個關於我們對哪些權衡感到舒適的問題,特別是我們如何解決涉及的問題,比如流動質押,這可能可以與現在變得更加容易的技術問題分开解決。
標題:Vitalik的PoS簡化提案:堅持在SSF之後每個插槽使用8192個籤名
地址:https://www.coinsdeep.com/article/79510.html
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播信息之目的,不構成任何投資建議,如有侵權行為,請第一時間聯絡我們修改或刪除,多謝。