理解以太坊2.0,先理解以太坊2.0核心設計原則

買賣虛擬貨幣

為什麼不從頭開始簡單地建立一個新系統,而是費勁的在1.0上修改出2.0?

以太坊技術應用大會今天在北京舉行,V神、以太坊基金會核心成員、以太坊DAPP開發者等重量級嘉賓雲集,此次大會以以太坊2.0為主要議題。

大眾也普遍關注以太坊2.0的進展,此次大會V神發表了名為“以太坊2.0之跨分片交易”的演講。

討論以太坊 2.0 路線圖、研究提案及其發展現狀的文章已經很多了,然而有關以太坊 2.0 內部執行背後的設計原則和不變數的文章卻不多,本文旨在探討以太坊2.0背後的設計原則。

作者簡介:Raul Jordan,Raul Jordan 是 Prysmatic Labs 聯合創始人,也兼任 zk Capital 合夥人,畢業於哈佛,區塊鏈工程師、以太坊開發者,專注於 Prysmatic Labs 分片技術開發。

很多文章都在討論以太坊2.0的路線圖、研究方案和現狀。然而,關於其內部工作背後的設計原則和不變數的公開寫作並不多。對於這種協調多年的努力來說,擁有一套明確的不變數,對其成功至關重要,並且,這會使得執行者思考以太坊哲學的一面。

本文將解釋其中一些設計決策、背景以及它們對協議未來的重要性。

一、歷史

自從以太坊網路誕生以來,試圖將以太坊從PoW轉換為PoS,是一個重大的進展。Vitalik Buterin當時正在探索一種可行的解決方案,以防不成熟PoS的缺陷,並提供比PoW更大的安全保障。

尤其是,他和以太坊研究小組設計了一種稱為slasher的的機制,來懲罰PoS中惡意行為者並削減其全部抵押(Buterin 2014)。

數學家Vlad Zamfir隨後加入了該專案,2014年的大部分工作都集中在解決所謂的PoS的遠端攻擊。

當攻擊者可以從頭開始建立一個比當前規範區塊鏈更長的全鏈,以便在新的規範狀態下說服網路中的其他人時,遠端攻擊就會發生。

這幾乎不可能在PoW中執行,因為它需要大量的複合計算能力。然而,PoS不依賴於計算能力,因此在這種攻擊下會崩潰(Zamfir 2014)。

Vitalik和Vlad都贊同:除了“嚴格阻止客戶同步比某個檢查點更早的鏈”之外,沒有可行的遠端攻擊解決方案(Buterin 2015)。

這意味著,不需從創世區塊同步鏈,網路中的新節點只需要從最近的“檢查點”同步網路中最終確定的其他節點。

也就是說,當新節點加入網路時,舊節點存在固有信任。這種現象後來被稱為PoS的弱主觀性。當新節點加入時,對於“最終確定的”、“不可逆轉的”區塊在網路中的參與者之間存在主觀信任(Buterin 2018)。

在此期間,來自以太坊基金會的Vitalik和Virgil Griffith致力於在ArXiV上釋出Casper PoS白皮書的初始版本(Buterin和Griffith 2015)。

2014-2017年,是一段很長的時期,它標誌著以太坊試圖在目前執行的PoW鏈上覆蓋基於PoS的終結系統。與此同時,人們正努力實現狀態分片,以作為分割槽方案以擴充套件以太坊區塊鏈。

然而,在2018年,當這兩項舉措被結合在一起,並且在3月份的臺北標誌性研究會議之後,以太坊研究團隊提議將Casper PoS 與分片合併為一項名為Ethereum Serenity的計劃,也稱為作為以太坊2.0。

二、為什麼選擇ETH 2.0?

本文要解釋核心問題背後的設計理由:“ 為什麼要使用以太坊2.0?”。

當然,對現有系統的共識協議和資料完整性進行徹底檢查,並不是透過硬分叉就可以輕鬆完成的—-從頭開始簡單地建立一個新系統並完全放棄以太坊1.0不是更容易嗎?

構建ETH 2.0 時,我們面臨的一個難題是,需要讓社羣瞭解這一挑戰,並清楚地瞭解過渡到ETH 2.0 背後的巨大利益和需求。

在理解這種正規化轉變帶來的巨大責任的同時,沒有比現在更好的時間來構建ETH 2.0 。無論喜歡與否,加密行業仍然處於起步階段,我們今天做出的決定,將對加速增長和這些年的採用多年的產生複合的效果。

向PoS的遷移,已經等待了足夠長的時間,以太坊應用程式的可擴充套件性也是如此。沒有比現在更好的時間來構建ETH 2.0 了,團隊已經做好了準備。

三、挑戰未來

缺乏經驗的Layer 1 擴充套件可能會帶來巨大的安全花費:將區分鏈分片防止全球交易驗證,就像當前比特幣和以太坊鏈所做的那樣。

關鍵問題是:如何在不犧牲去中心化或安全性的同時,獲得可擴充套件性?許多競爭鏈旨在尋求中心化路線作為解決這一問題的手段。

以太坊選擇不同的方法:將網路狀態劃分為1024個分片,這些分片表現為一組同質的區塊鏈,每個區塊鏈由稱為信標鏈(beacon chain)的單個根鏈協調。信標鏈在完整的Casper PoS上執行,沒有委託也沒有中心化投票權。

在這種方法中,每個節點僅負責整個網路中發生的一部分交易,並且許多塊可以並行發生,從而線性地增加整體網路吞吐量。

此解決方案旨在回答以下問題:

如果交易未被全域性驗證,網路的安全配置檔案會如何變化?如何在防止卡特爾形成的同時,選擇驗證參與者?如何設計激勵措施,以最大化資料可用性和鼓勵積極參與?

經過多年的研究、探索以及對取捨的理解,以太坊尋求PoS作為其共識演算法。如前所述,獎勵是確定性的,驗證實體在協議中具有相同的待遇、參與委員會的概率相同、同樣獲得獎勵/懲罰。

全域性交易驗證變為間接驗證。每條分片鏈中的每筆交易都將首先由該分片中的驗證者進行驗證,並且,信標鏈在ETH 2.0上扮演“協調器”的角色。

四、設計不變數

協議設計的一個關鍵支柱是,理解協議將在哪些不變數下執行。對於以太坊及其開發者社羣而言,擁有一份不可協商的設計決策清單,對專案的未來至關重要。

我們可以將ETH 2.0 的核心分解為以下要點:

1、參與網路應該是無需許可的;

2、Layer 1 在其範圍內應該簡潔,抽象和緊湊;

3、該協議應該是最具表現力的,而不是假設它的未來用途 ;

4、網路應該傾向於有生命力,以有效地從任何災難性場景中恢復;

5、將協議的複雜性與應用程式開發的複雜性區分開來

1、無需許可

以太坊2.0與其他“下一代”區塊鏈之間的顯著差異在於如何確定參與共識。以太坊2.0對驗證者的唯一要求是擁有32枚ETH。

這裡沒有代理,不需要投票去選擇驗證節點,沒有中心化的憲法來決定誰參加。更重要的是,以太坊2.0中的驗證者都被平等對待:每個實體參與的硬性要求都是32個ETH。

但是,任何個人都可以擁有多個驗證者身份。這僅僅是為簡化共識協議的安全性和緊湊性而做的決定。從激勵設計角度考慮,且為了形式化建模,在對區塊進行投票驗證時,平等對待所有參與者是非常重要的。

1個驗證者= 質押32個ETH,不能比這個多。其他鏈旨在透過採用更中心化的驗證方法來解決可擴充套件性問題。然而,對於以太坊而言,不考慮這種選擇。

2、簡潔,但最具表現力

以太坊2.0在其核心定義和實現目標上,力求簡潔和緊湊。從根本上講,它是一個可擴充套件的、無需許可權的平臺,用於搭建去中心化的應用程式。

沒有必要在以太坊2.0中引入應用程式邏輯,這是有充分理由的。人們可以將以太坊2.0系統類比為一個精簡的Linux核心 - 它不是由作業系統來決定其所包含的功能或假設的用例,而是由為核心搭建應用程式的開發人員決定。

“假設意圖”這種做法是有限制性的。舊的以太坊格言說“我們沒有任何特徵”,這理念同樣適用於以太坊2.0。

3、保證安全性

以太坊2.0的PoS模式,也就是Casper the Friendly Finality Gadget,在一系列旨在保持高度活躍度和網路參與度的激勵措施下運作。

以太坊2.0擴充套件了Casper,以利用其屬性來保護分片區塊鏈網路的安全。也就是說,以太坊2.0使用“鏈終結性閾值”的概念來確保系統中的1024個分片共享與信標鏈相同的安全池。

PoS的核心前提是,驗證者都會因為按預期完成指定工作而獲得獎勵,或因為處於離線狀態而損失質押金,或因為惡意違反協議而受到嚴厲處罰(質押金被沒收)。

雖然前提很簡潔,但細節決定成敗。一旦我們意識到我們不僅要考慮每個驗證者的行為,而且要且要考慮整個驗證者委員會行為,Casper的經濟學很快變得更加複雜。

一般來說,PoS鏈的一個開放性問題是,應該何時懲罰行為,以及如何根據某些驗證者行為的嚴重性來進行不同的處罰。也就是說,我們需要找到一種足夠全面的懲罰措施,以便在保持簡潔的同時涵蓋所有邊緣案例。

鑑於協議依賴於驗證者活動,且依賴於對執行時間的持久觀測,那麼可能存在誠實的驗證者無法參與的情況。誠實的驗證者可能會由於停電、網路不穩定或其他因素而離線,但我們需要明確區分離線處罰和惡意行為造成的處罰。

以太坊2.0的部分設計理由是,攻擊者為任何企圖破壞協議的嘗試付出巨大代價。也就是說,在其他鏈中常發生的51%攻擊,在以太坊2.0上應該是成本巨大的,甚至結果會適得其反。

也就是說,在具有明確最終性的協議中,“將最終性逆轉將”會使攻擊者對於誠實的驗證者來說顯而易見,這就使得社羣可協調一致地進行軟分叉,以移除惡意行為者並使其攻擊無效。

當然,即使攻擊成功並且這種社羣協調不成功,如果攻擊者的唯一目的是破壞系統並造成巨大損失,系統的完整性會減少。

基於PoS機制系統的另一個限制是驗證者困境,也就是說,系統中的驗證者是懶惰的、並且簡單地信任協議中的其他人正在正確地完成其工作,因此不驗證他們本該負責驗證的訊息。

除非面臨重大處罰,否則這些驗證者可以透過不履行其責任來節省頻寬或一般的計算要求。透過為網路中丟失的資料或錯誤簽名的資訊新增極其強大的懲罰和質詢機制,可以緩解這種問題。

五、以太坊2.0的驗證者激勵

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

1、驗證者離線:Quadratic Leak

以太坊2.0依賴於拜占庭容錯閾值,必須保證網路中三分之二的驗證者是誠實參與者。對不參與驗證的驗證者的處罰被稱為“inactivity leaks”。

如果一條鏈超過4個epoch時期還未能最終確定,那麼協議對驗證者獎勵就會盡可能嚴格。也就是說,最大期望獎勵會變為0,因此驗證者需要表現得很完美,否則就會面臨更多的懲罰。

懲罰的大小與上一次鏈實現最終性以來的時間成正比,以阻止驗證者離線。

某些驗證者離線的時間越長,這種懲罰就會呈現指數增長,這種就被稱為“Quadratic Leak”。之所以涉及這種懲罰,是希望不會對短期離線造成不利影響,但考慮到預期的現實世界行為,較長時間離線會有很大的不利。

這種罰款而損失的資金會被銷燬,而不會重新分配給誠實的驗證者。

2、故意惡意活動:罰沒

在針對以太坊PoS的早期提案中,惡意驗證者將遭受大規模的懲罰,稱為罰沒(slashing),通常這些機制只討論個別惡意驗證者的處罰,而不討論驗證者串謀起來的嚴重性。如果大部分驗證者協同惡意攻擊網路,網路就會受到影響。

根據拜占庭容錯,對惡意行為者的處罰將是在特定時間間隔內惡意行動的驗證者數量的3倍。這有助於懲罰大型協同攻擊,並且還可以阻止惡意驗證者池的產生。

也就是說,在網路上執行聚合攻擊,對惡意驗證者有利而對普通驗證者不利。透過舉報機制進行罰沒,激勵驗證者發現其他驗證者的可罰沒的違法行為。

3、驗證者獎勵

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

1.透過證明以確定正確的 epoch 檢查點而獲得的獎勵的 1/4;

2.透過證明以確定正確的 chain head 而獲得的獎勵的 1/4;

3.透過證明使區塊得以快速進入鏈中而獲得的獎勵的1/4;

4.透過證明以確定正確的分片區塊而獲得的獎勵的1/4;

根據正確參與的驗證者數量,在基本獎勵之外還有額外獎勵。這個額外獎勵是激勵每個驗證者做正確的事情,為誠實的行為創造集體推動力。獎勵的釋出時間表應該是一致並直接的。增加更多的複雜性只會使系統更容易出錯,並且從巨集觀經濟的角度來看更難理解。

六、把程式複雜性與協議複雜性分開

“以太坊2.0路線圖令人生畏”的說法並不確切,因為以太坊2.0可能是最雄心勃勃且歷時多年的計劃之一,它可以從行業中獲得最好的經驗教訓,並建立一個優雅地解決擴充套件性三難困境的協議,並且,該協議將能夠持久執行下去。

關於“分片如何顯著降低開發人員體驗”已經進行了大量討論。其依據是,在以太坊2.0協議內部結中剝離應用程式開發人員的需求是非常困難的,因為高度複雜的分片系統需要彼此互動(跨分片交易)。

乍一看,以太坊2.0從外部看起來令人生畏,並且,在以太坊2.0中智慧合約如何執行仍不甚清晰。然而,事實要更加微妙。

應用程式開發人員只需要知道一小部分以太坊2.0協議。普通智慧合約開發人員無需瞭解驗證者登錄檔或信標鏈終端小工具的內部結構。

因此,階段0從應用層中完全移除。最近階段1和階段2也提出了非常有力的提案,主張對執行環境進行更高程度的抽象化,使以太坊2.0更強大、更簡潔。

最壞的情況是,錢包/應用程式開發人員需要了解跨分片交易的某些細節,以透過一些技巧顯示即時交易結算。如今的計算機作業系統和內部裝置比10年前複雜得多,但是,大多數應用程式開發人員無需瞭解隱藏的內部結構,即使這些內部結構構成強大的計算機體系。

這種“將關注點區分開”,是良好架構設計的核心,人們可以把它作為在構建以太坊2.0時應該牢記的設計不變數。

七、構建真實的世界計算機

總而言之,以太坊是圖靈完備的,這意味著它可以像今天的計算機一樣,執行任何型別的可想象的程式碼,儘管它還是一臺緩慢的、單執行緒的計算機。

今天的以太坊類似於早期的弱處理器。如今在以太坊執行應用程式是昂貴的,因為該協議已建立機制,以防止困擾公共事業的公地悲劇的出現。

以太坊充滿活力的開發者社羣從未停止對當前網路的改進創新,無論是在核心層還是在layer 2。但是,從治理的角度來看,未來計劃的升級可能會出現問題且很痛苦。

如果以太坊2.0上線幾年後,我們感到受限,並希望建立一個以太坊3.0,那就表示我們在前者的核心設計上失敗了。

可升級性應該以不需要有風險的硬分叉的方式被納入協議。也就是說,一旦系統長期處於執行中,layer 1 的創新應該是最小的或接近於零。

我們還有很長的路要走,但我們謹慎提醒自己為什麼要構建這個軟體,以及我們希望在10年內看到它走向何方,以編寫出更具魯棒性的、可以經得起時間的考驗的程式碼。

-END-

譯者簡介:愛樂牛,區塊鏈研習社特約作者。

宣告:本文為作者獨立觀點,不代表區塊鏈研習社立場,亦不構成任何投資意見或建議。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;