以太坊 2.0 得自以太坊 1.0 升級的靈感

買賣虛擬貨幣
對比以太坊 1.0,以太坊 2.0 最顯著的變化就是權益證明共識和分片架構,但實際上,還有很多方面的創新,啟發自改進以太坊的歷程。自比特幣和以太坊創生以來,我們看到的事情比特幣區塊鏈已經執行了 11 年了,其創生啟發了無數有志之士學習乃至研究區塊鏈的設計和密碼經濟學,以發現還有哪些可以改進的地方。從 PoW 上,我們已經知道,對於密碼學貨幣來說協議的安全性永遠是最重要的。用昂貴的硬體來激勵人們更深入地與鏈繫結(have more skin in the game),效果出奇地好。雖然仍不免有鑽空子的空間(即所謂的 “自私挖礦”),在保護比特幣的網路安全上,PoW 的表現已是超凡絕倫。以太坊區塊鏈則是在 2015 年啟動的,它的誕生標誌著 “通用型” 區塊鏈的出現:每個人都能在網路上建立可以與 ETH 和其它 token 互動的應用了。這些應用為去中心化金融開啟了大門,如今,人們為去中心化金融操作而存入的質押品價值已超過 10 億美元。我有另一篇文章講述了 DeFi(去中心化金融)如何一步步成長為以太坊上真實可用服務的過程。限制 Eth2.X 拓展吞吐量的因素
現在以太坊已經野蠻生長 5 年了,其所經歷的現象級成長也為整個行業指明瞭瓶頸在哪、能夠改進的地方又在哪。在 2017 年,以太坊的發展陷入困境的時候,多個 “以太坊終結者” 起來號稱要 “打敗” 以太坊。但這些 “終結者” 主要是犧牲安全性來換取更高的吞吐量(TPS,每秒交易處理量),還在完全誤導性地(或有意混淆地)宣傳說交易不需要支付手續費。實際上,沒有一種是以太坊所面臨問題的“解決方案”。要想真正升級以太坊,所有人都必須跳脫出現有的系統、重新開始。我們可以取以太坊之精華、棄其許多糟粕。注意:在下文中,我用 “狀態” 來指稱以太坊區塊鏈上儲存上的全域性永久資料,例如賬戶資訊、交易資料和智慧合約狀態(比如 token 餘額)。以太坊 2.0以太坊 2.0 是密碼貨幣領域迄今為止最大的開源專案,旨在開發出一個能實現以太坊初始目標乃至更高遠追求的新系統。你可能聽過 Casper(一種權益證明下的共識演算法 )和分片,但以太坊 2.0 的目標還不止於此。
因為很多改進對現有的以太坊區塊鏈來說過於激進,所以這些改進可能會做到以太坊 2.0 鏈上,然後現有的以太坊鏈會 “接入” 新系統(變成其中一個分片)。這樣的話以太坊 2.0 就不會因為要升級現有的網路而變得過於複雜,而以太坊網路能照常執行,然後收穫新系統帶來的所有好處。本文想談談人們不甚瞭解的以太坊 2.0 變更,以及這些變更是如何從幫助以太坊朝向去中心化美麗世界的過程中取得靈感的。貨幣政策(安全成本)密碼學貨幣的貨幣政策不容小視。因為密碼學貨幣要用增發的貨幣(以區塊獎勵的形式)吸引礦工和算力,在保證安全性的前提下,增髮量越少越好。在市值排名前 20 的幣種,我們看到比特幣的區塊鏈是最安全的,同時其貨幣增發率也是最低的。現在的比特幣年增發率為 3.8%,比起 ETH 的約 4.5% 低了不少(雖然如果以太坊照抄比特幣的減半政策,這個比率反而會更高)。雖然很多以太坊的囤幣黨都覺得,以太坊區塊鏈為安全付出的費用太高了;但是,如果這就降低增發率,可能會導致挖礦算力和安全性的大跌,因為礦工賺不到那麼多錢了。因此,PoW 下的增發率是難以降低的,因為降低了會對鏈的安全性有意料之外的副作用。比特幣沒有這個問題(很大程度上)是因為其挖礦獎勵的變化在長期中基本上是可以預測的。那麼,以太坊 2.0 的最大目標之一就是轉換成權益證明(PoS)共識機制,也就是要移除昂貴的挖礦硬體(不管是 ASIC 還是 GPU)的作用,密集的計算和電力消耗,將被取而代之為便宜的普通電腦,僅處理 Eth2 節點的程序如區塊傳輸和同步便足矣。這樣保護網路安全的成本就低了很多!不過使用者要鎖定 32ETH 才能加入。

降低了整體的安全成本,增發率就能降低到 1% 以下,具體來說還取決於有多少使用者參與網路成為驗證者。如此一來,增發率就能隨其到底要為安全性支付多少費用而伸縮。

除了增發率上的縮減,以太坊 2.0 還旨在替換掉現在支付 Gas 費時用到的拍賣市場模式,換成稍有區別的模式,即 “EIP1559”。你不需要知道它的工作原理,只需要知道,在此模式下,使用者所支付的手續費的大部分都會被銷燬掉。雖然說在該模式下,使用者會支付更少的手續費,但因為以太坊 2.0 有很多個分片,所以總的手續費規模會比現在的以太坊更大,因此銷燬掉的數量也會更多。

一方面是很低的增發率,另一方面是銷燬部分手續費,以太坊 2.0 的淨增發率可能為負,也就是燒掉的數量會比增發的數量還多!然後 ETH 就會變得更為稀缺,讓攻擊 PoS 系統的成本更為高昂。

共識演算法(比如 PoW 和 PoS)(譯者注:原文如此,consensus algorithm)的目標是保證區塊鏈的安全性和去中心化,保護網路的激勵機制才是真正讓密碼學貨幣活起來而不僅是賬本數字的因素。激勵機制保證了 礦工/質押者 會給網路提供安全性。而以太坊 2.0 在安全費用上所追求的是 最低必要增發率。最低必要增發率意味著鏈持續增發為保證安全性而必鬚髮放的最低數量。低增發率及銷燬策略會逐漸讓攻擊者的攻擊成本變高(因為 ETH 日益稀缺),從而降低大規模攻擊的概率。

無狀態性

你可能聽說過 “狀態爆炸” 這個詞,人們在論及以太坊及其狀態資料規模的時候常常提到。這個問題的實質是,一次性支付 Gas 費就可以讓你的資料永遠留在以太坊區塊鏈上,這就導致了狀態資料不受限制地日漸增長,而很多資料可能再也沒有被使用過。狀態資料在儲存規模上的 “爆炸”,意味著以太坊的節點的儲存空間和硬體條件必須隨著網路的持續存活而線性增加。長期來看,這限制了能夠執行以太坊節點的人群規模,而狀態資料增長問題在每次區塊 Gas 上限提高時都會變得更為嚴重。

那麼,以太坊 2.0(以及日後的 ETh2) 解決這個問題的辦法就是無狀態性,就是讓節點不儲存任何狀態也能驗證所有交易和狀態的所有部分。實現了無狀態性之後,節點的模式就可以形成一條從有狀態到無狀態的光譜,每一種模式都有不同的規範。如果你硬體比較好,執行無狀態節點綽綽有餘,但還是不能執行完全儲存狀態的節點,那麼你可以取其折中,執行一個 “準-帶狀態” 節點。

這對於分片來說至關重要!因為每個分片都有自己獨有的狀態,而 Eth2 驗證者需要在他們所驗證的分片上依據狀態來執行狀態變更(處理交易)。無狀態式的協議使得驗證者無需下載一個分片的完整狀態,只需下載表示資料的二進位制默克爾樹即可(這比狀態資料小得多了)。

分片越多,狀態資料的增長越是沒有止境,雖然到時候肯定會有比如交易所或者區塊瀏覽器這樣的服務,有動力儲存所有的分片 狀態資料/歷史資料,並不計成本地準確交付。然後就有可能出現 “狀態提供者” 軟體,為驗證者提供一筆交易所要改變的狀態部分,讓後者能夠執行狀態變更。狀態提供者可以徹底地消除驗證過程中的硬碟讀寫需要和密集儲存需要。這不僅為新的、針對狀態的激勵機制開啟了可能性,還能極大地幫助驗證者,因為後者不再需要儲存完整的分片狀態了。當然,他們仍可以驗證從狀態中繼者處收到的狀態的正確性,因為可以拿這些資料與已完成同步的狀態樹相比較。

賬戶抽象

在當前的以太坊協議中,有兩種型別的賬戶,外部控制型賬戶(即人使用私鑰來控制的賬戶)和智慧合約型賬戶。只有外部控制型賬戶能發起交易,而且只有控制私鑰的使用者自己發起的交易才能改變自己賬戶的狀態。現在雖然有了元交易,但它需要依賴一箇中繼者網路(比如 GSN)來支付 Gas 費。

對於以太坊 2.0 來說,目標是把這兩種賬戶抽象化成一種賬戶,讓網路中的使用者賬戶和合約賬戶毫無區別。合約當然會繼續存在,但那時以太坊網路自己就能充當元交易的中繼者了,自己簽名發起一筆交易並廣播出去將不再是你與網路互動的唯一辦法。

到時候,你可以讓你的賬戶像一個智慧合約,比如別人發給你 ETH,你的主賬戶會自動將其轉發到你的冷錢包裡,又或者,把所有發給你的 ETH 都自動賣成 DAI 來持有。

能把功能模組直接做到賬戶裡面,會產生很多很多有意思的 dApp 設計和功能!使用者管理賬戶的操作會變得五花八門,而不是像現在的以太坊協議一樣,允許的操作都是被定死的。

賬戶抽象化的一個有趣可能性就是合約能夠自己支付 Gas 費,能自己發起交易。但這是個很複雜的問題,迄今仍在開發中,不過一旦開發成功,帶來的可能性就極為豐茂了。

執行環境(Execution Environments)

做以太坊應用開發的開發者,首選的程式語言都是 Solidity 或者 Vyper,它們都各有奇怪的特性,但在實用性上,其開發生態還是很好的。在當前的用法中,用這些語言寫成的程式碼都要編譯成更通用、更底層的操作,來方便以太坊虛擬機器(EVM)解讀。如果你想更深入地理解 EVM,可以閱讀這篇文章。雖然也不是太必要啦。

EVM 所用的操作碼(OPCODE)讓以太坊節點能產生出同樣的計算結果,而不論執行節點的計算機是什麼樣的(這也是 “虛擬機器” 的部分所在)。它也讓定製化的複雜操作比如驗證簽名和獲取賬戶餘額變得更簡單,只需一行程式碼就搞定。如果沒有 EVM 準確地讀取出狀態並執行狀態變更,各種功能都是不可能實現的。

雖然 EVM 作為整個智慧合約生態的基礎表現得很好(哪怕在其它鏈上也是如此),如果以太坊上的應用可以使用任意的執行時語言(run-time),那會更好。鏈不應該把自己的狀態轉換規則(比如 EVM)強加在他人身上,執行本身應該要更加開放才對。這就是為什麼大家想出了 “執行環境”。

執行環境機制使得所有的狀態轉換規則都可以直接做進協議層(使用 WASM),讓交易的處理方式能與系統的其它部分完全獨立開來。比如,可以有一個執行環境(EE)是專門用來處理 ZK rollup 和隱蔽交易的,而另有一個 EE 是用來處理 UTXO 模式交易的(就像比特幣區塊鏈)。甚至可以有一個 token 專用型 EE,專門用來承載所有 token,而不用為每一種 token 都上傳相同的程式碼。當然,現有的 EVM 也會被替換成一個叫做 eWASM 的 EE,以保證對現有生態系統的支援。

Eth2 上的每個 dApp 都必須在設計時充分考慮 EVM 的行為,因此以太坊狀態轉換函式(即 EVM)的侷限性就成了整個生態系統的瓶頸。有了 EE 機制,這個瓶頸就不復存在,利用對協議的開放式依賴的全新 dApp 也能出現。如果你想了解更多,EthHub 這裡有一個跟 Will Villanueva 一起做的絕佳播客。這裡還有一篇敘述最新進展的文章。

免責聲明:

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

推荐阅读

;