將使攻擊者付出巨額代價!以太坊2.0是這樣運作的
頭等倉/Sadie Williamson/翻譯:Annie,編譯:Alonso Chen/張詠晴編譯
2019-08-26 17:09

 

最近有很多文章在討論以太坊2.0的路線圖、研究建議和現狀。但關於2.0背後的設計理念和不變量的消息,卻沒有什麼公開文章透露。明確不變量對協調工作非常有幫助,還能保證開發人員在哲學邏輯上保持一致。本文將解釋2.0中一些設計、背景以及對未來協議的影響。

 

安全

 

Eth2的PoS模型,稱為Casper the Friendly Finality Gadget,運行在一系列保證高度活躍和網路參與的激勵機制下。Eth2擴展了Casper,利用它來保護分片區塊鏈網路安全。也就是,運用鏈終結閥值的概念,確保Eth2的1024個分片與信標鏈共享一樣的安全池。

 

PoS的核心前提是,驗證者完成預期角色指定的任務獲得獎勵,如果偷懶則失去獎勵,並且如果違反協議作惡,則會受到嚴厲懲罰(slashed)。雖然前提很簡要,但重點都體現細節之中。如果我們要考量各個驗證者行為,以及整個驗證者委員會行為,Casper經濟就會變得更加複雜。

 

一般而言,PoS鏈一個開放性問題是何時懲罰,如何根據行為惡劣程度進行處罰?也就是是說,我們要找到一種全面的懲罰措施,以便簡潔的同時覆蓋所有極端案例。有鑒於協議的運行取決於驗證者行為以及強大的運行時,可能存在誠實驗證者無法執行的情況。比如停電、網路不穩定等,導致誠實驗證者離線,因此我們要明確區分偷懶處罰和作惡行為懲罰。

 

Eth2部分設計理念,是讓攻擊破壞協議付出巨額代價。就像其他鏈的51%攻擊需要付出高昂代價。攻擊者逆轉協議中具有最終性的部分,將明顯地暴露在大家面前,社群可以協調軟分叉,移除作惡者,使攻擊無效。當然,如果攻擊成功,且協調失敗,如果攻擊者的單一目的是破環系統,造成巨額損失,那麼系統的完整性會遭到破壞。

 

PoS系統另一大限制是驗證者困境,由現象命名而來。系統中的驗證者偷懶,簡單地相信協議中的其他人認真地完成了工作,因此不驗證自己負責的內容。除非受到重大懲罰,否則驗證者可以不履行職責,而節省頻寬和算力。透過對網路中丟失的數據或錯誤簽名,添加重大懲罰和質詢機制,可以減少這種行為發生。

 

以太坊2.0的驗證者激勵如下:

 

驗證者不活躍:二次洩漏

 

ETH2依賴於網路中2/3誠實參與者的拜占庭容錯閾值。針對不活躍的懲罰,也叫作不活躍洩露。如果鏈超過4個時期都未確認最終性,協議會嚴格把控驗證者獎勵。也就是說,如果自鏈確認最終性過了很長時間,則最大獎勵會降至0。此時驗證者需要表現良好,否則面臨懲罰。懲罰輕重與鏈自終結以來的時間成正比,防止驗證者離線。驗證者偷懶的時間越長,懲罰越重。這種「二次洩露」懲罰對短期偷懶沒有多大影響,但針對長期偷懶則懲罰較重,罰款金額將被銷毀,不會重新分配給誠實驗證者。

 

故意作惡行為:slashing

 

最初的以太坊PoS提案這樣寫道:作惡的驗證者將受到嚴重懲罰,即slashing懲罰,通常是針對單個驗證者作惡,而不是串謀的驗證者。如果大部分驗證者聯合作惡,則會破壞網路。根據拜占庭容錯的保證,對作惡者的懲罰=3×同一時間段內作惡者數量。這有助於懲罰大型聯合作惡行為,還可以抑製作惡驗證者池的發展。也就是說,在網路中發起聯合攻擊,會損壞作惡者集體利益。提倡檢舉機制,激勵驗證者發現其他違法攻擊行為,將slashed的資金作為檢舉獎勵。

 

驗證者獎勵

 

根據Vitalik的以太坊slasher設計原理,他在每個時期(64個區塊)中,概述了驗證者基本獎勵的4個特定組成部分:

 

1.檢查指定的紀元檢查點,獎勵1/4

2.證明指定的區塊鏈頭,獎勵1/4

3.證明被快速打包進鏈上,獎勵1/4

4.證明指定正確的分片區塊,獎勵1/4

 

根據正確參與的驗證人數量,此基本獎勵還有額外獎勵。這個額外的獎勵用於激勵驗證者做正確的事情,推動集體誠實行為。獎勵發布計劃應當是一致且直觀的,增加更多的複雜性只會使系統容易出錯,並且從宏觀經濟的角度來看更難理解。

 

從應用程式複雜性中分離協議複雜性

 

說Eth2路線圖令人生畏是一種保守的說法。它可能是最有雄心,並長期計劃吸收產業教訓,優雅地創建一個解決擴容難題且可持續的協議。關於分片降低開發人員體驗這一點已有大量討論,之所以降低是因為將Eth2開發人員剝離內部極其困難,我們有一個複雜的分片系統需要彼此交互。從表面上看,Eth2令人生畏,如何在項目中明確地執行合約也並不清楚。但事實非常微妙。

 

應用程式開發人員,只需要瞭解一小部分Eth2協議。普通智慧合約開發人員,無需瞭解驗證者註冊表或信標鏈終端小工具的內部結構。因此,階段0從應用層中完全刪除。階段1和階段2最近也提出了強大提案,主張更高程度的抽象執行環境,使Eth2更強大,更簡潔。最壞的打算,錢包和應用開發人員需要瞭解跨分片交易細節,以掌握一些顯示即時交易結算的技巧。電腦操作系統和內部構件已比10年前要複雜得多,然而,大多數應用程式開發人員無需瞭解隱藏的內部構件,這些內部構件使其成為強大的電腦架構。這種關注點的分離是良好架構設計的核心,人們可以說,在構建Eth2時我們應該牢記不變量設計。

 

構建真實世界的電腦

 

總之,以太坊相對來說很美,這意味著它可以運行任何類型的可想像的代碼,就像今天的電腦一樣,儘管它是一台非常有限的,慢速的,單線程的電腦。今天的以太坊類似於早期的弱處理器。今天在以太坊運行應用程式也很是昂貴,因為該協議內置了一些機制,以防止困擾公共產品的公共場景發生悲劇。以太坊充滿活力的開發人員會永遠不斷地改進當前網路,無論是核心層和是第二層。但從治理層面而言,預定的升級可能會困難重重,且過程艱難。

 

一旦Eth2被活化的幾年後,我們能感到它有一定限制,希望建立Eth3,那麼便意味著Eth2的核心設計失敗了。應該以無需硬分叉的方式升級協議,也就是,一旦系統投入使用,第一層的設計是最不需創新或接近於0的。我們仍有很長一段旅程要走,時刻提醒自己為何構建這個軟體,以及是否10年後還存在?這樣我們便會編寫更強大的代碼,經得起時間的推敲。

 

本文為巴比特資訊授權刊登,原文標題為「探索以太坊2.0:區塊鏈激勵制度的演變