以太坊2.0路線圖 | 未來的以太坊會是什麼樣子

買賣虛擬貨幣
本文講述了以太坊2.0背後的設計理念。  

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

歷史發展

以太坊誕生後,技術人員正在嘗試將PoW轉換為PoS。Vitalik Buterin當時正在探索可行的解決方案,以防PoS出現漏洞,具備比PoW更大的安全保障。他與以太坊研究小組設計了一種slasher機制,用於懲罰PoS作惡者來削減他們的存款。

隨後,數學家弗拉德·贊菲爾(Vlad Zamfir)加入了slasher專案,2014年的大部分時間都集中在解決PoS遠端攻擊上。當遠端攻擊時,攻擊者可以從零開始建立一個比當前規範鏈更長的完整鏈,這使得網路的剩餘節點會信任新的規範狀態。這在PoW是幾乎不可能會發生的情況,因為發起攻擊需要極大的算力,而PoS並不依靠算力,因此發起遠端攻擊,會導致區塊鏈奔潰。

Vitalik和Vlad一致認為,針對遠端攻擊,只能嚴格禁止客戶端同步超過某個檢查點的鏈。因此新節點無需從創世區塊同步鏈,只需從網路中其他節點一致確認的最近“檢查點”開始同步,即當新節點加入網路時,可以信任舊節點。後來這種現象被稱為PoS的主觀性弱化。當有新節點加入,他們主觀上會信任“最終的”、“不可逆轉的”區塊。

在研究Slasher的同時,Vitalik和以太坊基金會Virgil Giffith忙於撰寫ArXiV的初始版Casper Proof of Stake白皮書。2014年-2017年,以太坊一直都在嘗試從PoW向PoS轉變,同時,以太坊也在努力實現分片技術,擴容區塊鏈。2018年3月,在臺北研討會後,以太坊研究團隊提議將Casper Proof of Stake和分片技術合併到以太坊Slasher,即以太坊2.0。

為什麼是以太坊2.0?

這篇文章旨在解釋核心問題背後的設計理念:“為何要使用以太坊2.0呢?”透過硬分叉來檢查現有系統的共識協議和資料完整性並非易事,拋棄以太坊1.0從頭開始建立一個新系統不是更簡單嗎?我們面臨的最大難題是需要社羣參與構建2.0之中,並明確過渡到以太坊2.0後有巨大的好處及需求。

雖然正規化轉換要承擔巨大責任,但此刻是最佳良機。無論你喜歡與否,加密技術仍處於起步階段,現階段的決定會對後面幾年加密技術採用產生深遠影響。團隊已經為轉換到PoS和以太坊應用擴容做好充分準備。

挑戰

單純的第1層擴容可能會在大程度上犧牲安全性,分片區塊鏈會阻止全域性交易驗證(比如比特幣和以太坊正在使用的)。關鍵難題是:如何在不犧牲去中心化或安全性的前提下,進行擴容?很多競爭對手採用集中式方案。以太坊選擇將網路狀態劃分為1024個分片,這些分片表現為一組同質的區塊鏈,每個區塊鏈由一個稱為信標鏈的根鏈協調。信標鏈執行Casper Proof of Stake協議,它沒有受託權或集中式投票權。每個節點只負責打包網路中的部分交易,可以並行生成多個區塊,從而整個網路吞吐量呈線性增長。此解決方案的不成熟的規範可回答以下問題:

如果沒有全域性驗證交易,網路中的安全檔案將如何變化?篩選驗證節點時,如何防止壟斷情形?如何設計激勵制度,以最大化地利用資料和提高參與度?

經過多年的研究、探索和協調做出權衡後,以太坊將選擇了PoS共識演算法。間接地驗證全域性交易,每個分片交易先由分片驗證者檢查,然後在信標鏈上提交檢查點。後者作為一個協調分片資訊的“協調器”。

不變數設計

協議設計關鍵點是理解協議將在哪些不變數下執行。對於以太坊和它的開發者社羣來說,擁有一份不可協商的設計決策清單至關重要。

我們可以將Eth2的核心分解為以下幾個要點:

·網路參與無需許可

·第1層的範圍應該簡潔、抽象和緊湊

·最大限度地表達協議,而不是假設它的未來用途——即符合以太坊格言“我們沒有未來”

·網路應該活躍,以便高效地從災難情況下恢復。

·將協議複雜性與應用程式開發複雜性分開。

無需許可

Eth2和其他“新生代”區塊鏈的一個顯著區別是如何確定共識參與度。Eth2的唯一要求是持有32 ETH才能成為一名驗證者。沒有受託人,沒有投票篩選驗證節點,也沒有中央法律決定誰可以參與。更重要的是,Eth2中對所有驗證者一視同仁——硬頂32 ETH。但是,任何個人都可以擁有多個驗證程式例項。簡化了安全性和共識協議。從激勵設計的角度和正式建模的角度來看,投票區塊時候,規定所有參與者擁有相同的stake這一點非常重要。1個驗證=32ETH作為stake,其他區塊鏈都是採用集中式方案擴容,但對於以太坊,絕不會採用。

簡潔,但又能最大限度地表達

Eth2的目標做到核心定義簡潔、緊湊。從基本層面看,以太坊是一個可擴充套件、無需許可、用於建立去中心化應用的平臺。

無需引入應用程式邏輯, 將以太坊類比為一個Linux核心——它不取決於作業系統的功能和應用場景,而取決於在該核心構建應用程式的開發人員。

安全性

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的核心設計失敗了。應該以無需硬分叉的方式升級協議,也就是,一旦系統投入使用,層1的設計是最不需創新或接近於0的。我們仍有很長一段旅程要走,時刻提醒自己為何構建這個軟體,以及是否10年後還存在?這樣我們便會編寫更強大的程式碼,經得起時間的推敲。

原文:https://www.tokendaily.co/blog/design-principles-of-ethereum-2-0

稿源(譯):https://first.vip/shareNews?id=2201&uid=1

免責聲明:

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

推荐阅读

;