文章閱讀頁通欄

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

來源: 區塊鏈研習社 作者:Raul Jordan
為什么不從頭開始簡單地創建一個新系統,而是費勁的在1.0上修改出2.0? 以太坊技術應用大會今天在北京舉行,V神、以太坊基金會核心成員、以太坊D......
為什么不從頭開始簡單地創建一個新系統,而是費勁的在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年內看到它走向何方,以編寫出更具魯棒性的、可以經得起時間的考驗的代碼。

譯者簡介:愛樂牛,區塊鏈研習社特約作者。
聲明:本文為作者獨立觀點,不代表區塊鏈研習社立場,亦不構成任何投資意見或建議。
來源:https://www.tokendaily.co/blog/design-principles-of-ethereum-2-0

關鍵詞: 以太坊2.0  以太坊  
0/300
? 好运彩3单双