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

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

祝賀中本聰共識誕生 10 週年!

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

<strong>那麼,什麼是以太坊 2.0 呢?

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

我們做過哪些探索?

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

<strong>PoS

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

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

<strong>可擴展性

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

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

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

<strong>2014 年的進展

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

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

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

<strong>2015-16:低谷

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

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

<strong>存儲租金

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

<strong>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。而且大家也多角度、更深入地理解了更優區塊鏈算法的形態。

<strong>砥礪前行

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

<strong>Casper FFG

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

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

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

<strong>分片

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

<strong>Casper CBC

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

<strong>Casper FFG POC

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

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

<strong>Shasper

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

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

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

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

<strong>其它

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

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

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

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

<strong>即將到來的 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,都會好很多。

<strong>期望的階段

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

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

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

<strong>Phase 3 以及更遠:不斷迭代,加入新的技術。

<strong>期望的特徵

  • 純粹的 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 秒降到更低。

中期的目標

  • 最終穩定化 Layer-1 的功能
  • 考慮使用 Issuance,以及費用……
  • 在人們希望協議層提供的保證(guarantee)和屬性上能夠得到越來越多的共識
  • 考慮治理問題

<strong>即將到來的更新

在最終發行之前,我們還會做哪些更新呢?

首先,將協議層的詳述定型。一直在關注 GitHub 上的 ethereum 和 2.0 主要規範、信標鏈規範等內容的人應該直到,協議層發展得非常快,但我們很快會將它們穩固下來。

繼續做開發和測試。現在以太坊 2.0 協議有 8 個實現正在開發。

跨客戶端測試網。一些人表明非常希望看到跨客戶端測試網能在明年 1 月份跑起來。我當然也非常樂於看到,今年 8 月的時候我們已經看到了希望。在這裡簡單回顧一下以太坊 1.0 的開發歷程。從白皮書提出概念到正式發佈,中間隔了 19 個月,用了這麼長時間的部分原因是在技術說明還沒有定稿之前,我們便試圖打造跨客戶端的兼容性,我們是先後同意做測試、發佈測試網、等待協議變更,同意發佈新測試網,然後等待更多的協議變更,這樣來來回回了 5 次。在這個事情中我們已經學到了教訓,我們並不需要完全專注於跨客戶端的兼容性,可以等到真正接近技術說明定稿時再說。我認為我們離發佈技術說明的候選稿已經不遠了,至少在不包括狀態執行的部分中是如此。

最後是安全審計。在座哪些觀眾認為安全審計是重要的?(觀眾呼聲)哪些觀眾認為安全審計不重要呢?(鴉雀無聲)誰認為這個世界是被蜥蜴人(Lizardman)掌控的呢?(觀眾笑聲)嗯,第三部分的人還笑了一秒鐘呢,真棒(譯者注:意思是相信世界被蜥蜴人掌控的,都比認為審計不重要的人多)。

最後就是發行啦。你們覺得發行不重要嗎?(無人回應)嗯,那麼在座哪位最喜歡的政治候選人是一個蜥蜴人呢?(觀眾大笑)

嗯,所以,發行就是我們期待已久並在過去四年中為之持續奮鬥的里程碑。並且,我相信這一切不會太遙遠。謝謝!

本文為 Vitalik 在 Devcon4 演講的翻譯稿。英文原文從錄音中聽寫而出,譯文或隨之有不確定之處,敬請見諒。

原文鏈接:https://www.youtube.com/watch?v=Km9BaxRm1wA

翻譯:shinechain

----------------------- end -----------------------

想了解更多區塊鏈科普文章和業內資訊:閃鏈區塊鏈,關注之後回覆“1”即可領取區塊鏈資源學習大禮包一份哦。


分享到:


相關文章: