Paradigm 介绍 Goldfish:PoS 以太坊中 LMD GHOST 分叉规则的安全替代品
合并:從工作量證明到權(quán)益證明
以太坊即將從工作量證明 (PoW) 過渡到權(quán)益證明 (PoS) ,這是多年研究和開發(fā)的結(jié)晶。雖然 PoS 帶來了許多潛在的優(yōu)勢,但這也意味著以太坊正在放棄中本聰最"長情"的協(xié)議——當然也是最簡單、最優(yōu)雅的共識協(xié)議之一,并且已經(jīng)過去中心化區(qū)塊鏈的實戰(zhàn)考驗。
以太坊 PoS 共識協(xié)議中,一個眾所周知的脆弱組件已被證明是“LMD GHOST”選擇分叉規(guī)則,最近發(fā)生了多次攻擊和打補丁,其安全性仍未得到證明。
在題為“PoS 以太坊不再被攻擊 ?”的文章中,我們提出了 Goldfish,它是 PoS 以太坊中 LMD GHOST 選擇分叉規(guī)則可證明的、安全的替代品。我們認為這只是朝著更嚴格的協(xié)議設(shè)計和分析邁出的第一步,目的是加強以太坊的安全性。
以太坊的權(quán)益證明協(xié)議
以太坊的權(quán)益證明 (PoS) 共識協(xié)議比 PoW 復(fù)雜得多。
它實際上是兩種不同共識協(xié)議的組合:一個“finality gadget”(稱為 Casper FFG),在 6.4 分鐘長的 epoch 后最終確定區(qū)塊,以及在每個 epoch 內(nèi)管理鏈的選擇分叉規(guī)則 fork-choice rule(稱為“Greedy Heaviest Observed Subtree”,簡稱LMD GHOST)。這兩個組件以復(fù)雜的方式相互交互,下面用框圖進行描述:
?
具體來說,LMD GHOST 指導(dǎo)區(qū)塊生產(chǎn)過程,并以 12 秒的時間Slot和驗證者的子抽樣組合運行。因此,它可以被認為是在 PoS 以太坊區(qū)塊獎勵前負責(zé)較弱的“短期共識”。一旦就交易賬本達成短期共識,它就會被移交給 Casper FFG 進行額外的加固,它在包含 32 個插槽(slots) = 6.4 分鐘的時間尺度上運行,并涉及完整的驗證器集。因此,Casper FFG 負責(zé)提供更強大的“長期共識”,提供最終性和負責(zé)任的安全性。
不幸的是,這種復(fù)雜性伴隨著挑戰(zhàn)。特別是,LMD GHOST 組件,以及 LMD GHOST 和 Casper FFG 之間的交互,都存在反反復(fù)復(fù)的攻擊、打補丁。目前為 Merge 采用的協(xié)議既沒有公開的攻擊,也沒有正式的安全分析/證明。
缺乏安全證明是令人擔(dān)憂的原因,但并不是因為簡單學(xué)術(shù)模型中的證明必然完美地表明現(xiàn)實世界的安全性。相反,即使在簡化模型中,我們也無法最終解釋為什么這個協(xié)議是安全的,這表明我們實際上并不了解協(xié)議,或者它們的后果和交互的全部范圍。
Goldfish
在題為“PoS 以太坊不再被攻擊 ?”的文章中,我們提供了 PoS 以太坊的 LMD GHOST 分叉選擇規(guī)則的替代品。該協(xié)議稱為 Goldfish,類似于 LMD GHOST(因此不需要對當前客戶端實現(xiàn)進行大修),但帶有安全證明。
為了更好地理解Goldfish,讓我們先預(yù)覽下 LMD GHOST 的大致工作原理:
?
假設(shè)我們的簡化網(wǎng)絡(luò)模型中消息引起的最大延遲為已知值 A(如上圖中的△)。在 LMD GHOST 中,相似步驟得到的值為 2A 。對于每個間隙,從完整的驗證者集中隨機選擇一個提議者和一個小的驗證者委員會。在每個slot開始時,slot的提議者運行 LMD GHOST 分叉選擇規(guī)則(有兩個修改,“提議者提升”和“模棱兩可的折扣”,它們是響應(yīng)兩個早期攻擊的補丁)以確定規(guī)范的區(qū)塊鏈獎勵和提出一個新的區(qū)塊。
在slot進行到一半時,slot的委員會成員還使用相同的分叉選擇規(guī)則確定規(guī)范的區(qū)塊獎勵,并投票支持該獎勵。 LMD GHOST 沒有指定確認規(guī)則,而是讓用戶來決定區(qū)塊樹的哪些區(qū)塊擁有“足夠”的票數(shù)以確信他們不會離開規(guī)范鏈。
Goldfish 緊密遵循這個一般結(jié)構(gòu),但為驗證者引入了一個額外的階段,以同步他們對投票計數(shù)的看法,并確認區(qū)塊:
?
在每個slot的開始,slot的提議者根據(jù)前一個 slot 的投票運行簡單的 GHOST 分叉選擇規(guī)則,以確定在哪里提議一個塊。進入slot的三分之一時,該時段的委員會成員使用相同的分叉選擇規(guī)則,該規(guī)則基于前一個時段的投票和提議者轉(zhuǎn)發(fā)的投票,來確定在哪里投票。 最后,在進入slot的三分之二時,所有驗證者都運行一個明確定義的 T 深度確認規(guī)則。
Goldfish 基于兩種關(guān)鍵技術(shù),投票緩沖和投票到期,以仔細同步誠實驗證者的觀點:
-
投票緩沖(也稱為view merge,最早出現(xiàn)在新的共識協(xié)議 Highway 上)。簡而言之,緩沖從網(wǎng)絡(luò)收到的選票,以及在每個驗證者的本地視圖中精心定時包含這些選票,保證了在具有誠實提議者的slot中,所有誠實的驗證者都投票支持提議者的提議。這導(dǎo)致了重組彈性:誠實的提議者的提議保證保留在規(guī)范鏈中。隨之而來的是安全性(即輸出賬本的安全性和活躍性)。
-
投票到期(也稱為臨時投票)意味著在每個slot內(nèi),只有前一個slot的投票會影響協(xié)議的行為(類似于“健忘”的金魚,Goldfish 協(xié)議名稱源于此)。投票到期使投票集很小,這可能會影響誠實驗證者的短期未來行動。因此,在任何時間點,只有少數(shù)協(xié)議消息需要在誠實驗證者的視圖中進行緩沖和合并。因此,投票到期是投票緩沖效率/可行性的先決條件。投票到期對于支持波動的驗證者參與水平以及支持在每個slot較小的子樣本選民委員會中運行協(xié)議,而不是在整個驗證者集中運行協(xié)議也至關(guān)重要。
最后,Goldfish 的確認規(guī)則會確認區(qū)塊是否在創(chuàng)建后的一段時間內(nèi)仍在規(guī)范鏈上。分析表明,由此產(chǎn)生的確認翻轉(zhuǎn)概率在出塊和區(qū)塊確認之間的延遲中呈指數(shù)級降低。
Goldfish 面臨的挑戰(zhàn):異步(Asynchrony)
Goldfish 很簡單,可以接受嚴格的安全證明。這一分析立即取得了成果:請記住,我們一開始就假設(shè)我們的簡化模型中的網(wǎng)絡(luò)延遲上限為 A (上圖中的△表示) 。在證明安全性的過程中,我們必須明確這一假設(shè)和其他假設(shè)。
如果違反了這個界限,即如果網(wǎng)絡(luò)暫時異步,會發(fā)生什么?我們可以追蹤安全論證的步驟,看看在沒有假設(shè)的情況下會出現(xiàn)什么問題。我們看到,如果實際網(wǎng)絡(luò)延遲大于 2A(即當前 PoS 以太坊中的 8 秒),那么 Goldfish 將無法及時獲得slot (t-1)的決定性選票以在slot t 的基礎(chǔ)上進行構(gòu)建,該協(xié)議可能會受到重組的影響。
這樣的重組是不好的。但至少由于嚴格的安全論點,我們可以更好地了解我們系統(tǒng)的安全性關(guān)鍵依賴于哪些條件,以及為什么以及如何。我們可以做出更明智的決定,以確保滿足這些先決條件。例如,雖然在當前的點對點網(wǎng)絡(luò)協(xié)議中,攻擊者可能更容易引起一些網(wǎng)絡(luò)延遲,但最近(也由于與網(wǎng)絡(luò)相關(guān)的數(shù)據(jù)可用性采樣挑戰(zhàn))對強化的點對點協(xié)議重新產(chǎn)生了興趣,這些協(xié)議重新啟用共識層的權(quán)益分配來指導(dǎo)對等點的選擇。這樣的協(xié)議更加抗攻擊,并且可以合理地緩解延遲問題。此外,確定性/問責(zé)制小工具(最終可能會通過“單槽確定性”進一步加速)為任何重組提供了支持。
還需要做什么
我們提出了 Goldfish 共識協(xié)議,旨在作為 PoS 以太坊信標鏈中 LMD GHOST 的替代品。我們對 Goldfish 本身進行了嚴格的安全分析,并結(jié)合了終局/問責(zé)制小工具(基于另一個共識協(xié)議,例如 HotStuff)。其他 PoS 以太坊共識安全挑戰(zhàn)仍然存在,例如,來自分叉選擇和 finality gadget 的交互,我們期待在未來看到 PoS 以太坊在這些方面的進一步共識安全改進。
總結(jié)
以上是生活随笔為你收集整理的Paradigm 介绍 Goldfish:PoS 以太坊中 LMD GHOST 分叉规则的安全替代品的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SiKi学院 Unity中常用api学
- 下一篇: 哈密顿回路与旅行商问题的求解