引介:以太坊2.0得自以太坊1.0升級的靈感
以太坊愛好者(ID:ethfans)以太坊愛好者(ID:ethfans)以太坊愛好者(ID:ethfans)
以太坊愛好者(ID:ethfans)
,作者:Ivan Martinez,翻譯: 阿劍,Odaily經授權轉載。
引介| 概述以太坊賬戶抽象化
對比以太坊1.0,以太坊2.0 最顯著的變化就是權益證明共識和分片架構,但實際上,還有很多方面的創新,啟發自改進以太坊的歷程。
自比特幣和以太坊創生以來,我們看到的事情
比特幣區塊鏈已經運行了11 年了,其創生啟發了無數有誌之士學習乃至研究區塊鏈的設計和密碼經濟學,以發現還有哪些可以改進的地方。
從PoW 上,我們已經知道,對於密碼學貨幣來說協議的安全性永遠是最重要的。用昂貴的硬件來激勵人們更深入地與鏈綁定(have more skin in the game),效果出奇地好。雖然仍不免有鑽空子的空間(即所謂的“自私挖礦”),在保護比特幣的網絡安全上,PoW 的表現已是超凡絕倫。
以太坊區塊鏈則是在2015 年啟動的,它的誕生標誌著“通用型” 區塊鏈的出現:每個人都能在網絡上建立可以與ETH 和其它token 互動的應用了。這些應用為去中心化金融打開了大門,如今,人們為去中心化金融操作而存入的質押品價值已超過10 億美元。我有另一篇文章講述了DeFi(去中心化金融)如何一步步成長為以太坊上真實可用服務的過程。
在2017 年,以太坊的發展陷入困境的時候,多個“以太坊終結者” 起來號稱要“打敗” 以太坊。但這些“終結者” 主要是犧牲安全性來換取更高的吞吐量(TPS,每秒交易處理量),還在完全誤導性地(或有意混淆地)宣傳說交易不需要支付手續費。實際上,沒有一種是以太坊所面臨問題的“解決方案”。
以太坊2.0
以太坊2.0
以太坊2.0
本文想談談人們不甚了解的以太坊2.0 變更,以及這些變更是如何從幫助以太坊朝向去中心化美麗世界的過程中取得靈感的。
本文想談談人們不甚了解的以太坊2.0 變更,以及這些變更是如何從幫助以太坊朝向去中心化美麗世界的過程中取得靈感的。
以太坊2.0 是密碼貨幣領域迄今為止最大的開源項目,旨在開發出一個能實現以太坊初始目標乃至更高遠追求的新系統。你可能聽過Casper(一種權益證明下的共識算法)和分片,但以太坊2.0 的目標還不止於此。
本文想談談人們不甚了解的以太坊2.0 變更,以及這些變更是如何從幫助以太坊朝向去中心化美麗世界的過程中取得靈感的。
本文想談談人們不甚了解的以太坊2.0 變更,以及這些變更是如何從幫助以太坊朝向去中心化美麗世界的過程中取得靈感的。
雖然很多以太坊的囤幣黨都覺得,以太坊區塊鍊為安全付出的費用太高了;但是,如果這就降低增發率,可能會導致挖礦算力和安全性的大跌,因為礦工賺不到那麼多錢了。因此,PoW 下的增發率是難以降低的,因為降低了會對鏈的安全性有意料之外的副作用。比特幣沒有這個問題(很大程度上)是因為其挖礦獎勵的變化在長期中基本上是可以預測的。
圖片描述
那麼,以太坊2.0 的最大目標之一就是轉換成權益證明(PoS)共識機制,也就是要移除昂貴的挖礦硬件(不管是ASIC 還是GPU)的作用,密集的計算和電力消耗,將被取而代之為便宜的普通電腦,僅處理Eth2 節點的進程如區塊傳輸和同步便足矣。這樣保護網絡安全的成本就低了很多!不過用戶要鎖定32ETH 才能加入。
圖片描述
圖片描述
- 增發數量(獎勵規模)隨實際需要為安全支付的費用而伸縮 -
除了增發率上的縮減,以太坊2.0 還旨在替換掉現在支付Gas 費時用到的拍賣市場模式,換成稍有區別的模式,即“EIP1559”。你不需要知道它的工作原理,只需要知道,在此模式下,用戶所支付的手續費的大部分都會被銷毀掉。雖然說在該模式下,用戶會支付更少的手續費,但因為以太坊2.0 有很多個分片,所以總的手續費規模會比現在的以太坊更大,因此銷毀掉的數量也會更多。
無狀態性
圖片描述
你可能聽說過“狀態爆炸” 這個詞,人們在論及以太坊及其狀態數據規模的時候常常提到。這個問題的實質是,一次性支付Gas 費就可以讓你的數據永遠留在以太坊區塊鏈上,這就導致了狀態數據不受限制地日漸增長,而很多數據可能再也沒有被使用過。狀態數據在存儲規模上的“爆炸”,意味著以太坊的節點的存儲空間和硬件條件必須隨著網絡的持續存活而線性增加。長期來看,這限制了能夠運行以太坊節點的人群規模,而狀態數據增長問題在每次區塊Gas 上限提高時都會變得更為嚴重。
圖片描述
圖片描述
- 無狀態範式下的網絡拓撲 -
這對於分片來說至關重要!因為每個分片都有自己獨有的狀態,而Eth2 驗證者需要在他們所驗證的分片上依據狀態來執行狀態變更(處理交易)。無狀態式的協議使得驗證者無需下載一個分片的完整狀態,只需下載表示數據的二進制默克爾樹即可(這比狀態數據小得多了)。
分片越多,狀態數據的增長越是沒有止境,雖然到時候肯定會有比如交易所或者區塊瀏覽器這樣的服務,有動力保存所有的分片狀態數據/歷史數據,並不計成本地準確交付。然後就有可能出現“狀態提供者” 軟件,為驗證者提供一筆交易所要改變的狀態部分,讓後者能夠執行狀態變更。狀態提供者可以徹底地消除驗證過程中的硬盤讀寫需要和密集存儲需要。這不僅為新的、針對狀態的激勵機制開啟了可能性,還能極大地幫助驗證者,因為後者不再需要保存完整的分片狀態了。當然,他們仍可以驗證從狀態中繼者處收到的狀態的正確性,因為可以拿這些數據與已完成同步的狀態樹相比較。
賬戶抽象
在當前的以太坊協議中,有兩種類型的賬戶,外部控制型賬戶(即人使用私鑰來控制的賬戶)和智能合約型賬戶。只有外部控制型賬戶能發起交易,而且只有控制私鑰的用戶自己發起的交易才能改變自己賬戶的狀態。現在雖然有了元交易,但它需要依賴一個中繼者網絡(比如GSN)來支付Gas 費。
對於以太坊2.0 來說,目標是把這兩種賬戶抽象化成一種賬戶,讓網絡中的用戶賬戶和合約賬戶毫無區別。合約當然會繼續存在,但那時以太坊網絡自己就能充當元交易的中繼者了,自己簽名發起一筆交易並廣播出去將不再是你與網絡交互的唯一辦法。
到時候,你可以讓你的賬戶像一個智能合約,比如別人發給你ETH,你的主賬戶會自動將其轉發到你的冷錢包裡,又或者,把所有發給你的ETH 都自動賣成DAI 來持有。
能把功能模塊直接做到賬戶裡面,會產生很多很多有意思的dApp 設計和功能!用戶管理賬戶的操作會變得五花八門,而不是像現在的以太坊協議一樣,允許的操作都是被定死的。
賬戶抽象化的一個有趣可能性就是合約能夠自己支付Gas 費,能自己發起交易。但這是個很複雜的問題,迄今仍在開發中,不過一旦開發成功,帶來的可能性就極為豐茂了。
執行環境(Execution Environments)
做以太坊應用開發的開發者,首選的編程語言都是Solidity 或者Vyper,它們都各有奇怪的特性,但在實用性上,其開發生態還是很好的。在當前的用法中,用這些語言寫成的代碼都要編譯成更通用、更底層的操作,來方便以太坊虛擬機(EVM)解讀。如果你想更深入地理解EVM,可以閱讀這篇文章。雖然也不是太必要啦。
EVM 所用的操作碼(OPCODE)讓以太坊節點能產生出同樣的計算結果,而不論運行節點的計算機是什麼樣的(這也是“虛擬機” 的部分所在)。它也讓定制化的複雜操作比如驗證簽名和獲取賬戶餘額變得更簡單,只需一行代碼就搞定。如果沒有EVM 準確地讀取出狀態並執行狀態變更,各種功能都是不可能實現的。


