V神最新演講:以太坊2.0到底是什麼?


今天我的演講主題是以太坊 2.0,但我希望呈現的不僅是以太坊 2.0 在技術上的要點,還包括為什麼我們需要推進以太坊升級,我們會做哪些升級,又經由哪些嘗試走到今天。


那麼,什麼是以太坊 2.0 呢?


幾年來,我們孜孜不倦地讨論和研究系統的一些特性,也在 App 開發上投入了大量精力,最終,它們彙集在一起,組成一個融洽的世界。這些特性包括權益證明算法, Casper;可擴展性,分片;虛拟機升級,EWASM;跨鍊合約上的強化;協議經濟模型改進,以及非常多促成邏輯層分散化的改進。重要話題還真不少。


我們做過哪些探索?


PoS


權益證明(PoS)的相關研究始于 2014 年。我在一月份發表的這篇博文(Slasher: Punitive Proof-of-Stake Algorithm)闡述了一個叫做罰沒者(Slasher)的算法,引入了權益證明算法中最基礎的概念:如果你違反協議并且被發現了,(這是可以被證明的),你就要接受懲罰;這一方法可以用來提升安全性。但在那時,正如你可以在幻燈片中看到的,我相信 Slasher 是一種非常有用的建構,可以讓權益證明“挖礦”的武器庫變得更充實,并為我們提供更強力的理由切換到權益證明。當然我們還沒這麼做。


因此,在那時,要不要 PoS 當成我們的方向還未有定論。但随着時間推移,這一點變得清晰很多。


可擴展性


在 2014 年,首先,我們探讨了一系列有趣且重要的觀念,比如“Proof of proof of work”,這是一種提升可擴展性的建議;“中心輪輻鍊模型(Hub and spoke chains)”,讓一條鍊成為中心,一系列的鍊成為附屬,這其實就是一個非常早期的可擴展性和分片提議,嘗試提高區域内交易的可擴展性,但并不能提高全局交易(即從某條鍊到另一條鍊)的可擴展性;“超級立方體模型(Hypercubes)”,立方體有 12個維度而不是 3 個,因此我們可以達到比中心輪輻模型更強的可擴展性。


現在,出于多個原因,這些觀念都被抛棄了;不過,真的有人弄了一場浩大的 ICO 來開發它們,真高興有人願意嘗試(觀衆笑)。


那麼在 2014 年我們究竟有沒有取得正确的進展呢?


2014 年的進展


有的。我們得到了一個概念叫做“弱主觀性(Weak Subjectivity)”,某種程度上來說,這是一個半形式化的安全模型,嘗試探讨 PoS 保證金的罰沒條件,以及在什麼條件下 PoS 是安全的。同時,我們也越來越确定,具有更強安全屬性的 PoS 算法是存在的,所以點點币(Peercoin)及其變種是真的有可能的。我們也逐漸意識到,有一些可擴展性策略能夠通過随機抽樣跟權益證明算法結合,但我們不知道具體怎麼做。


那時候我們确定了一個路線圖,Vinay Gupta 在 2015 年 3 月寫了一篇很棒的博文,列舉了當時來看以太坊路線的 4 個主要階段。第一階段:Frontier,就是我們一開始啟動項目時所處的階段;第二階段:Homestead,從 alpha 走向 beta 版;第三階段,Metropolis(直譯為“大都會”),那時候的預期是開發 Mist 和用戶交互界面并提升用戶體驗。但自那時以來,我們的注意力轉向了實現更強的密碼學技術支持,而交互界面的提升變成了平行的目标。第四階段:Serenity,實現權益證明。從今往後,我願意稱之為以太坊 2.0,當然我也不會拒絕用 Shasper 來代指。為免混淆,我們還可以稱為“Serenity”。


2015-16:低谷


然後,我們就迎來了一個低谷:我們在解決 PoS、可擴展性中的一些核心問題上遭遇了一系列失敗,Vlad 悄悄地暫停了他在 Casper CBC 中的所有工作。


我們得到的最有意思的觀念之一便是“投注共識(Consensus by Bet)”:參與者對下一次會敲定哪個塊打賭,而一旦某些人下注,他們下注的事實本身便會成為其他人下注的考量因素。這樣的話,在某種意義上我們就産生了一個遞歸公式,随着時間推移,下注的人會越來越多,哪個塊會被敲定也會變得越來越明顯;在對數輪以後,每個人都會将自己所有的權益都投完,這樣我們就達到了去定性。我們沿着這條思路走得相當遠,為它創建了完整的概念證明,你可以(在幻燈片上)看到确定化的過程,還有簽名函數什麼的。我的意思是,我們在這裡花去了絕大部分時間,但然後整個思路就停滞不前了,主要原因是我們認識到了哪種 BFT 啟發型共識算法可以真正安全地工作。


存儲租金


Rent 的觀念其實是這樣的:與其為使用存儲空間收取一次性的高額費用,我們可以逐步收取費用。因此,以每天、每個區塊或其它方式為計,一旦特定的存儲空間被占滿,你就需要為此支付一定的 ETH。這裡寫的是 EIP 103,但實際上應該是 EIP 35 才對,因為 35 才是 issue 号碼。這是一個初步的想法,試圖形成一個正式的概念。從那時開始,我們在如何才能最好地利用租金這一點上疊代了很多想法。


2015 年的可擴展性論文


這一篇論文的目标是形成二次方分片和超二次方分片的概念,但它真的太複雜了。它會包含一些很複雜的激化博弈(escalation game)。整個觀念是受到 escalation 在法律系統中的作用的啟發(我知道 Joseph 的哲學非常喜歡使用這種類比),但我試圖把它用到基礎層。裡面還包含“深度狀态逆轉“,就是說,如果有些事情真的弄錯了,那麼大量的狀态可以在将來進行深度回滾。真的很複雜。

實際上,其中一個我們無法完全把握、但在逐步接近的根本問題,就是所謂的”漁夫兩難“(Fisherman's Dilemma)。這是分片研究中的一個非常根本的概念,描述了狀态的擴展性執行(scaling execution)、程序的擴展性執行與數據擴展可得性(scaling availability)之間的巨大區别。基本問題是這樣的:如果要運行程序,你可以讓人們承諾答案是什麼,然後你可以用挑戰遊戲、用二分法搜索确定在哪一步上誰算錯了(譯者注:即每次都隻運行一半的運算步驟,比對結果,來發現雙方到底在那一步上算錯了),确認事實後就可以懲罰那些給出錯誤答案的人。而數據可用性的問題是:無論挑戰遊戲如何運行,你都可以作弊,因為你可以完全不公開任何數據,直到機制來檢查你有沒有公開數據,然後你隻要公開機制要檢查的那部分數據就可以了。

這已經證明是許多可擴展性算法中的一個非常重大的問題。我過去還寫了一篇博文來讨論這個問題,你們可以搜索 A Note on Erasure Coding and Data Availability,裡面講到了更多問題的細節。這也是拖慢我們進度的其中一個原因。但即便如此,我們還是很高興能推動以太坊繼續前進,我們走在自己的道路上!


嗯,然後,就出了 The DAO 事件(觀衆笑)。這也沒什麼,也沒别的問題了。慢着,好吧,又出了個”上海 DoS 攻擊“(觀衆反應有點慢)。


總而言之,The DAO 事件、DoS 攻擊,最終耽誤了很多人的事件和精力,甚至長達 6 個月。不過,我們還是在前進,EWASM 在前進,關于虛拟機的研究在推進,我們還做了一個替代性版本 EVM1.5。而且大家也多角度、更深入地理解了更優區塊鍊算法的形态。


砥砺前行


然後,我們就非常迅速地取得了一系列重大進展。在這段時間,我們在很多不同的研究領域都有所收獲:一些是圍繞權益證明、希望讓我們的共識層更加高效的;一些是圍繞可擴展性,希望讓我們的基礎層共識可以分片;一些是嘗試提高虛拟機效率的;還有一些是圍繞賬戶抽象的,賬戶抽象可以讓用戶自己選擇要使用哪種簽名方案,這樣可以獲得後量子時代的安全性,并且讓隐私解決方案變得更簡單;還有圍繞協議層經濟模型的。當然所有這一切都還在生長。


Casper FFG


在 2017 年伊始的某個時間點,我們開發了一個協議,并且起了個謙虛的名字:最小罰沒條件(Minimal Slashing Condition)。最小罰沒條件轉化了 PBFT 類型的傳統拜占庭共識;在 80 年代,Lamport、Shostak 等人便創建了同類的材料,但我簡化了算法并把它放到了大多數區塊鍊的環境中。


基本的觀念如下:在一條區塊鍊上會不斷産生新的區塊,你可以通過連續的合并和觀察來獲得一種流水線版的效率:每一輪開始時你都會為本輪添加數據,而在下一輪中人們可以确認這些數據中的一部分;我們可以從中獲得巨大的效率提升(譯者注:此即 FFG 的核心思想,一旦在某輪中某區塊獲得 2/3 的驗證者同意,該區塊的父塊便被敲定)。


一開始的最小罰沒條件有 6 條,然後我減少到 4 條,而一年後,我們終止合并 prepare 和 commit,這便是 Casper Friendly Finality Gadget(FFG,友好的确定性小工具)。


分片


上一年的 Devcon 上我演示了這種新的分片設計,就是保持主鍊不變,然後創建分片作為某種意義上的 Layer-2 系統挂載在現有的主鍊上,确認足夠可靠之後再升級成為 Layer-1。


Casper CBC


然後是來自 Vlad 的 Casper CBC ~ 論文。


Casper FFG POC


泰國時間 2017 年12 月 31 日 23:40,那時候我們恰好在泰國,Casper FFG 概念驗證橫空出世。那時候我們真的非常想确定,一種 PoW/PoS 混合共識的技術詳述到底是什麼樣子的,而這一種混合共識會使用一部分來自 Casper FFG 中的觀念,還有一部分傳統拜占庭容錯共識所啟發的觀念,并加載在現有的工作量證明鍊上。這會是一種可以讓我們快速轉向混合共識的機制,并且對現有區塊鍊造成的沖擊也最小,然後理論上我們将有可能升級為完全的權益證明。


我們同樣在這條路上走了很遠,我們還做了一個 Python 測試客戶端,用不同的 VPS、服務器和電腦通信來做測試。


Shasper


與此同時,我們在分片上也取得了許多進展。我們不斷完善分片的技術詳述,最終我們在 18 年 3 月的台北組織了一次集體休整。在這裡很多想法開始冒出來,如何實現一條分片區塊鍊看起來變得明朗起來。對,看起來變得明朗起來。


在 6 月份,我們做了一個非常困難,但我個人認為從長遠來看非常有價值的決定。我們發現:咦,這邊我們有幾支團隊在實現混合權益證明,他們試圖将 Casper FFG 開發為一個現有鍊上的智能合約,對分叉選擇規則做調整;另一邊,有幾支完全隔離的團隊,要開發一個驗證者或者說管理者合約(後來被重命名為鍊上分片管理者合約),在這個基礎上開發分片系統;他們之間是沒有交流的。在分片這一邊,最終變得越來越清楚的是:讓分片系統的核心放在 PoS 鍊上會給我們帶來更高的效率;變成 PoW 鍊上的一個合約,我們就不得不處理 EVM 的開銷,應付 Gas 機制,應付不可預測的 PoW 區塊時間;PoS + 分片 可以帶來更快的出塊時間等一系列好處。


然後我們就意識到,為什麼這邊有個團隊在開發 PoS,那邊又有一個 PoS 項目?為什麼我們要做重複工作呢?然後我們決定要把兩邊的工作合并起來。這個決定給之前的許多工作判了死刑,但意義深遠:我們會在一起工作,開發同一份技術說明,同一個協議,而我們可以同時讓 Casper PoS 和分片相得益彰。


總而言之,與其這邊有一個目的,那邊有另一個目的,然後我們要努力分辨如何合并兩邊的成果,我們還不如在起點上多花一些時間,然後走向一套權益證明和分片區塊鍊。(掌聲)


其它


與此同時,我們花了不少時間讨論分叉選擇規則,最終我們越來越接近也越來越深入地理解分叉選擇規則;GHOST 算法雖然一開始是為工作量證明設計的,但因為一系列原因,我們重新提議用于權益證明。


Justin 開始研究可證延遲函數(Verifiable Delay Funciton,VDF),我們在斯坦福有個工作室,Justin 一直在跟那裡的許多研究者合作。


關于如何實現抽象和租金,我們也形成了更多想法。因為一些理由,我們決定将存儲租金重命名為存儲維護費。


在研究方面,我們正在研究跨分片交易,比如 csoss-shard-yanking,我們是普遍化傳統分布式系統中的一些概念,用到異步的跨分片環境中;還有資源定價的論文,包括最優化費用市場,如何收取存儲維護費,不同設計之間的權衡。Casey 還寫了這篇文章讨論同步假設下的跨分片交易。當然,CBC 的研究也擴展到了,分片領域,對了,這個真的不叫 Valding,Vlad 很讨厭這個詞。還有開發,我們在以太坊 2.0 開發推進中使用的策略是:追求創造性的多客戶端去中心化開發。這不僅僅是因為我們有去中心化的追求,這也是一套非常實用的策略,就是打賭别的團隊都不會有你幹得漂亮;此外,上海事件讓我們醒悟,如果某個客戶端出了問題而别的客戶端沒有,整個網絡可以更好地運行;順便,還讓整個生态系統的開發更不依賴于基金會本身。基金會真正開發的客戶端是 Python 客戶端,Python 在性能上有内在的限制,這也給了大家激勵去運行由 Prysmatic 創造的客戶端、Lighthouse、Status 還有 Pegasus 以及其他如雨後春筍般冒出的團隊開發的客戶端。


即将到來的 Serenity


那麼就下來,我得說,即将到來的,不能被稱為 Shasper。Serenity 即将啟航!


Serenity 是什麼?


首先,Serenity 是繼 Frontier、Homestead 以及 Metropolis 之後的第四個階段。當然 Metropolis 被分為拜占庭(Byzantium)和君士坦丁堡(Constantinople)兩個階段,并且君士坦丁堡升級就快啟動了。


其次,它是我們在所有這些不同領域長達四年的研究的集大成者,包括 Casper(不僅是混合共識,還包括 100% 純粹的 Casper)、分片、EWASM 以及所有這些協議研究的觀念。


然後,這是一種新的區塊鍊。從數據結構上來說是如此,但它會與當前的工作量證明區塊鍊保持一定的聯系。那麼,比如,PoS 鍊可以感知到 PoW 鍊的區塊哈希值,你可以将 Ether 從 PoW 鍊上轉移到 PoS 鍊上。這是一套新系統,也是一套相互連接的系統,最長遠的目标是:當這個新系統足夠穩定的時候,所有現有區塊鍊上的應用可以被存入新系統中某個分片上的合約,然後有一個用 EWASM 寫成的 EVM 解釋器。這一點還沒有最終确定,但從當前來看,這差不多就是我們的路線圖了。


再次,Serenity 會成為世界計算機,而不是像 1999 年的智能手機一樣,每秒隻能處理 15 筆交易,勉強能玩一下貪吃蛇。


最後,Serenity 仍會是去中心化的,我們還希望在一些維度上,它可以比現有的區塊鍊更加去中心化。舉個例子,作為一個信标鍊的驗證者,(從當前來看)你的存儲要求可能是小于 1GB,比起今天你需要 8GB 來存儲狀态,或是像網上的流言說的那樣存儲以太坊區塊鍊需要 1.8TB,都會好很多。


期望的階段


Phase 0:權益證明的信标鍊。從某種角度來說,PoS 信标鍊是一個區塊鍊倉庫,存儲着所有信息,但它自身是啞默的。在信标鍊上會有一些驗證者(validator),這些驗證者會運行 PoS 算法;它就像是介于測試網和主網之間的東西,它肯定不是測試鍊,因為你可以質押真正的 Ether 進去并獲得真正的 Ether 獎勵,但它也不是主鍊,因為上面沒有應用,所以如果它崩潰了,人們也不會哭爹喊娘,不會像上海 DoS 攻擊事件時那樣痛哭流涕。


Phase 1:作為數據鍊的分片鍊。這就是分片會有的角色。這是一個簡化的版本,也就是說我們并不對狀态做分片,而是對數據做分片;你可以把數據放到鍊上,然後嘗試運行一個自己的狀态執行引擎。實際上,最容易分片的就是數據。因此,如果你想要在區塊鍊上做去中心化應用,現在你擁有了可擴展性,但并沒有因此具備狀态執行能力來開發智能合約應用以及所有那些非常複雜的東西。(譯者注:此句應有疑義。在原文鍊接所附視頻的第 23 分鐘。)


Phase 2:支持 EWASM 的狀态轉換。這一點包括:支持虛拟機、支持賬戶、合約、分片間 Ether 轉移,等等。


Phase 3 以及更遠:不斷疊代,加入新的技術。


期望的特征


純粹的 PoS 共識。


更快的同步确認時間(8-16 秒鐘)。注意,因為信标鍊的分叉選擇規則以及簽名機制,信标鍊上的一次确認包括數百個驗證者之間的消息傳遞,從概率學的角度來說,實際上等同于現有以太坊工作量證明區塊鍊上的數百次确認。在消息同步傳遞的假設下,已經可以被視為将一個區塊敲定。


在同步确認的假設下,10 - 20 分鐘達緻經濟确定性(Economic Finality)。


通過 EWASM 實現更快的虛拟機執行。


在理想狀态下,達成 1000 倍的可擴展性。


後 Serenity 的創新


強化隐私保護。我們已經做了大量的工作。比如,在拜占庭階段,我們激活了橢圓曲線運算、橢圓曲線匹配的預編譯。Barry White 做了非常棒的工作,用 Layer-2 來保護代币轉移、投票、聲譽系統中的隐私。這些工作都可以借用過來。


跨分片交易。


半隐私鍊(Semi-private chain)。其中的觀念是,如果你想開發一些應用并讓數據在一部分用戶間保持私密狀态,你仍然可以将所有的數據都放到公鍊上,隻不過你是用加密形式放上去的,或者上傳哈希值、零知識證明,都可以自己決定。


權益證明上的創新。這是我們始終關切的一個事情。當 Casper CBC 在開銷上足夠經濟時,也會加入到我們的路線圖。


在實現 Serenity 之後,我們準備将所有的東西都升級到 STARK。比如,将 STARK 用于簽名聚合、驗證糾删碼(erasure code)來檢查數據可用性,也許最終會用來檢驗狀态執行的正确性。


更強的跨分片交易形式。


更快的單次确認。将确認時間從 8 秒降到更低。


http://m.juhua862547.cn|http://wap.juhua862547.cn|http://www.juhua862547.cn||http://juhua862547.cn