幾年來,我們孜孜不倦地討論和研究系統(tǒng)的一些特性,也在 App 開發(fā)上投入了大量精力,最終,它們匯集在一起,組成一個(gè)融洽的世界。這些特性包括權(quán)益證明算法, Casper;可擴(kuò)展性,分片;虛擬機(jī)升級,EWASM;跨鏈合約上的強(qiáng)化;協(xié)議經(jīng)濟(jì)模型改進(jìn),以及非常多促成邏輯層分散化的改進(jìn)。重要話題還真不少。我們做過哪些探索?
PoS
權(quán)益證明(PoS)的相關(guān)研究始于 2014 年。我在一月份發(fā)表的這篇博文(Slasher: Punitive Proof-of-Stake Algorithm)闡述了一個(gè)叫做罰沒者(Slasher)的算法,引入了權(quán)益證明算法中最基礎(chǔ)的概念:如果你違反協(xié)議并且被發(fā)現(xiàn)了,(這是可以被證明的),你就要接受懲罰;這一方法可以用來提升安全性。但在那時(shí),正如你可以在幻燈片中看到的,我相信 Slasher 是一種非常有用的建構(gòu),可以讓權(quán)益證明“挖礦”的武器庫變得更充實(shí),并為我們提供更強(qiáng)力的理由切換到權(quán)益證明。當(dāng)然我們還沒這么做。
因此,在那時(shí),要不要 PoS 當(dāng)成我們的方向還未有定論。但隨著時(shí)間推移,這一點(diǎn)變得清晰很多。
可擴(kuò)展性
在 2014 年,首先,我們探討了一系列有趣且重要的觀念,比如“Proof of proof of work”,這是一種提升可擴(kuò)展性的建議;“中心輪輻鏈模型(Hub and spoke chains)”,讓一條鏈成為中心,一系列的鏈成為附屬,這其實(shí)就是一個(gè)非常早期的可擴(kuò)展性和分片提議,嘗試提高區(qū)域內(nèi)交易的可擴(kuò)展性,但并不能提高全局交易(即從某條鏈到另一條鏈)的可擴(kuò)展性;“超級立方體模型(Hypercubes)”,立方體有 12個(gè)維度而不是 3 個(gè),因此我們可以達(dá)到比中心輪輻模型更強(qiáng)的可擴(kuò)展性。
現(xiàn)在,出于多個(gè)原因,這些觀念都被拋棄了;不過,真的有人弄了一場浩大的 ICO 來開發(fā)它們,真高興有人愿意嘗試(觀眾笑)。那么在 2014 年我們究竟有沒有取得正確的進(jìn)展呢?
2014 年的進(jìn)展
有的。我們得到了一個(gè)概念叫做“弱主觀性(Weak Subjectivity)”,某種程度上來說,這是一個(gè)半形式化的安全模型,嘗試探討 PoS 保證金的罰沒條件,以及在什么條件下 PoS 是安全的。同時(shí),我們也越來越確定,具有更強(qiáng)安全屬性的 PoS 算法是存在的,所以點(diǎn)點(diǎn)幣(Peercoin)及其變種是真的有可能的。我們也逐漸意識到,有一些可擴(kuò)展性策略能夠通過隨機(jī)抽樣跟權(quán)益證明算法結(jié)合,但我們不知道具體怎么做。那時(shí)候我們確定了一個(gè)路線圖,Vinay Gupta 在 2015 年 3 月寫了一篇很棒的博文,列舉了當(dāng)時(shí)來看以太坊路線的 4 個(gè)主要階段。第一階段:Frontier,就是我們一開始啟動項(xiàng)目時(shí)所處的階段;第二階段:Homestead,從 alpha 走向 beta 版;第三階段,Metropolis(直譯為“大都會”),那時(shí)候的預(yù)期是開發(fā) Mist 和用戶交互界面并提升用戶體驗(yàn)。但自那時(shí)以來,我們的注意力轉(zhuǎn)向了實(shí)現(xiàn)更強(qiáng)的密碼學(xué)技術(shù)支持,而交互界面的提升變成了平行的目標(biāo)。第四階段:Serenity,實(shí)現(xiàn)權(quán)益證明。從今往后,我愿意稱之為以太坊 2.0,當(dāng)然我也不會拒絕用 Shasper 來代指。為免混淆,我們還可以稱為“Serenity”。然后,我們就迎來了一個(gè)低谷:我們在解決 PoS、可擴(kuò)展性中的一些核心問題上遭遇了一系列失敗,Vlad 悄悄地暫停了他在 Casper CBC 中的所有工作。我們得到的最有意思的觀念之一便是“投注共識(Consensus by Bet)”:參與者對下一次會敲定哪個(gè)塊打賭,而一旦某些人下注,他們下注的事實(shí)本身便會成為其他人下注的考量因素。這樣的話,在某種意義上我們就產(chǎn)生了一個(gè)遞歸公式,隨著時(shí)間推移,下注的人會越來越多,哪個(gè)塊會被敲定也會變得越來越明顯;在對數(shù)輪以后,每個(gè)人都會將自己所有的權(quán)益都投完,這樣我們就達(dá)到了去定性。我們沿著這條思路走得相當(dāng)遠(yuǎn),為它創(chuàng)建了完整的概念證明,你可以(在幻燈片上)看到確定化的過程,還有簽名函數(shù)什么的。我的意思是,我們在這里花去了絕大部分時(shí)間,但然后整個(gè)思路就停滯不前了,主要原因是我們認(rèn)識到了哪種 BFT 啟發(fā)型共識算法可以真正安全地工作。存儲租金
Rent 的觀念其實(shí)是這樣的:與其為使用存儲空間收取一次性的高額費(fèi)用,我們可以逐步收取費(fèi)用。因此,以每天、每個(gè)區(qū)塊或其它方式為計(jì),一旦特定的存儲空間被占滿,你就需要為此支付一定的 ETH。這里寫的是 EIP 103,但實(shí)際上應(yīng)該是 EIP 35 才對,因?yàn)?35 才是 issue 號碼。這是一個(gè)初步的想法,試圖形成一個(gè)正式的概念。從那時(shí)開始,我們在如何才能最好地利用租金這一點(diǎn)上迭代了很多想法。
2015 年的可擴(kuò)展性論文
這一篇論文的目標(biāo)是形成二次方分片和超二次方分片的概念,但它真的太復(fù)雜了。它會包含一些很復(fù)雜的激化博弈(escalation game)。整個(gè)觀念是受到 escalation 在法律系統(tǒng)中的作用的啟發(fā)(我知道 Joseph 的哲學(xué)非常喜歡使用這種類比),但我試圖把它用到基礎(chǔ)層。里面還包含“深度狀態(tài)逆轉(zhuǎn)“,就是說,如果有些事情真的弄錯(cuò)了,那么大量的狀態(tài)可以在將來進(jìn)行深度回滾。真的很復(fù)雜。實(shí)際上,其中一個(gè)我們無法完全把握、但在逐步接近的根本問題,就是所謂的”漁夫兩難“(Fisherman's Dilemma)。這是分片研究中的一個(gè)非常根本的概念,描述了狀態(tài)的擴(kuò)展性執(zhí)行(scaling execution)、程序的擴(kuò)展性執(zhí)行與數(shù)據(jù)擴(kuò)展可得性(scaling availability)之間的巨大區(qū)別?;締栴}是這樣的:如果要運(yùn)行程序,你可以讓人們承諾答案是什么,然后你可以用挑戰(zhàn)游戲、用二分法搜索確定在哪一步上誰算錯(cuò)了(譯者注:即每次都只運(yùn)行一半的運(yùn)算步驟,比對結(jié)果,來發(fā)現(xiàn)雙方到底在那一步上算錯(cuò)了),確認(rèn)事實(shí)后就可以懲罰那些給出錯(cuò)誤答案的人。而數(shù)據(jù)可用性的問題是:無論挑戰(zhàn)游戲如何運(yùn)行,你都可以作弊,因?yàn)槟憧梢酝耆还_任何數(shù)據(jù),直到機(jī)制來檢查你有沒有公開數(shù)據(jù),然后你只要公開機(jī)制要檢查的那部分?jǐn)?shù)據(jù)就可以了。這已經(jīng)證明是許多可擴(kuò)展性算法中的一個(gè)非常重大的問題。我過去還寫了一篇博文來討論這個(gè)問題,你們可以搜索 A Note on Erasure Coding and Data Availability,里面講到了更多問題的細(xì)節(jié)。這也是拖慢我們進(jìn)度的其中一個(gè)原因。但即便如此,我們還是很高興能推動以太坊繼續(xù)前進(jìn),我們走在自己的道路上!嗯,然后,就出了 The DAO 事件(觀眾笑)。這也沒什么,也沒別的問題了。慢著,好吧,又出了個(gè)”上海 DoS 攻擊“(觀眾反應(yīng)有點(diǎn)慢)。
總而言之,The DAO 事件、DoS 攻擊,最終耽誤了很多人的事件和精力,甚至長達(dá) 6 個(gè)月。不過,我們還是在前進(jìn),EWASM 在前進(jìn),關(guān)于虛擬機(jī)的研究在推進(jìn),我們還做了一個(gè)替代性版本 EVM1.5。而且大家也多角度、更深入地理解了更優(yōu)區(qū)塊鏈算法的形態(tài)。