1. 程式人生 > >以太坊2.0? 親歷3天的Devcon我看到了這樣一個以太坊 | 見聞錄

以太坊2.0? 親歷3天的Devcon我看到了這樣一個以太坊 | 見聞錄

 

有人說,區塊鏈最大的應用就是發行 Token 和開會。作為從業者,這一年多下來,我也參加過許多會議。但深深覺得以太坊 Devcon 是區塊鏈技術行業中最高水平的會議,這場會議指明瞭以太坊2.0的發展規劃與路徑,這是一場純粹的技術會議,參與者都是有高度技術信仰的程式設計師與自由主義者。

 

 

在區塊鏈的各種大會中,以太坊的 Devcon 是最為技術最為權威的,沒有之一。今年的 Devcon 三千張門票,每張近二千美元,在開售之後幾分鐘之內售完,搶購盛況堪比蘋果手機釋出。

 

 

 

我是從去年開始參加 Devcon 活動的。去年的 Devcon3 在墨西哥的海濱度假勝地坎昆,那時我們的專案 CyberMiles 剛剛成立,沒有人知道。

今年的 Devcon4 在捷克首都布拉格舉行,很多人一看見 CyberMiles 都知道這是在以太虛擬機器上發明實現了 libENI 與 Lity 語言擴充套件的團隊。一年時間,我們與以太坊一起成長,也在開源技術社群中有了自己的一席之地。那麼,以太坊成長的未來又在哪裡呢?

以太坊要支援大規模的落地應用的必要不充分條件,是必須先解決安全、效能、可擴充套件性、易用性等技術問題。這些技術的研發藍圖也是這次 Devcon4 的主旋律。而這些技術可能產生的社會變革,怎麼安全公平地推廣使用技術,以及技術對個人自由,私有財產,等普適價值觀的影響,也是這次大會熱列討論的方向。

 

因為 Devcon4 的參會者基本上都是有高度技術信仰的程式設計師與自由主義者,我在布拉客任何時間任何地點,都沒有聽到任何有關幣價的討論,也沒有看到人們爭著與名人照相。這與其它各種區塊鏈大會,反差強烈。

 

那麼,以太坊下面的技術藍圖是什麼呢?專門創作技術小調的網紅歌手 Jonathan Mann 的開場歌詞說明了一切,也是我們下文的大綱。

 

注:BUIDL 是專門把 Builder 這個詞拼錯。指區塊鏈世界裡真正寫軟體,貢獻價值的人。對應於幣圈的 HODL,holder,是指有信念長期持幣的人。

 

 

以太坊 2.0:沒有時間表的計劃

以太坊的下一個上線版本叫君士坦丁堡,再下一個叫做寧靜,也就是大家常說的以太坊 2.0。以太坊 2.0 的三大創新是:權益證明的共識機制、分片和 Ewasm 虛擬機器。

注:從某種意義上講,區塊鏈軟體是永遠不會有 2.0 的。區塊鏈軟體必須在任何時候都能處理從第一個創世塊到現在的所有塊,不能有與 1.0 不相容的 2.0 軟體。但是,以太坊的寧靜版有很大的改變,是對目前以太坊的硬分叉,所以也叫以太坊 2.0。   

 

 

當然,雖然目標與路徑已經有了,以太坊寧靜版的具體實現仍然任重道遠。事實上,我注意到 Vitalik 的講話中沒有給任何時間點。這些功能可能在一年之內實現,也完全有可能是二年甚至三年。以太坊的目標是技術改變世界,不是幣市的牛熊。

 

Casper

 

 

以太坊寧靜版的最大特色,也是最大挑戰,是需要把以太坊從一個工作量證明的區塊鏈,變成一個權益證明的區塊鏈。這是對基本共識機制的改變,也是以太坊的未來基礎。這個改變帶來的好處是以太坊效能的大幅提升,因為 PoS 是比 PoW 更有效率得多的共識機制

 

開發一個基於 PoS 的區塊鏈並不是尖端科學。CyberMiles 就是一個基於權益證明,相容以太坊所有功能,但是有 PoS 效能的公鏈。

 

但是,對於以太坊來說,這個轉化涉及社群各方,尤其是礦工的利益,所以挑戰非常大。Casper 是以太坊由 PoW 轉向 PoS 的過渡軟體,在很長的一個過渡期,會有 PoW 與 PoS 兩個機制共存。

 

Casper 的測試鏈在去年 Devcon 之後上線,CyberMiles 團隊早期參與,見證了它從很不穩定到現在的相對穩定。

在 Devcon4,大家的共識是 Casper 的軟體已經基本穩定。這次大會關於 Casper 的設計與方向的討論已經沒有多少了。

分片

以太坊擴容的第二個重要想法是分片。

與資料庫分片相似,區塊鏈分片可以由一部分節點處理一部分工作。這樣,整個系統能處理的總工作量就可以隨著節點數增加而增長。有了分片,以太坊的擴容就是增加更多的計算節點那麼簡單。

分片技術核心開發者王筱維(Hsiao-Wei Wang)

分片擴容聽上去容易,其實做起來非常難。怎麼分片,各個片之間怎麼共識?在研發 Casper 的過程中,大家發現 Casper 的共識機制也可以用來為分片提供共識。因此,有人也就叫這種分片機制叫 Shasper。

我在 Devcon4 的感受是,Shasper 還有很多未解的問題。但是因為這與廣大應用開發者關係不大,所以討論基本侷限在以太坊核心開發團隊之中。

當然,分片的想法不只是 Shasper 一個。針對應用的公鏈,比如針對電商的 CyberMiles,本身就是邏輯分片的。幾個,乃至幾百幾千個,針對各種應用的公鏈通過去中心化交易平臺連線,這就是通過應用邏輯分片。

Ewasm

如果 Casper 與分片是以太坊 2.0 的前期目標的話,EWASM 虛擬機器就是它的後期目標。由於虛擬機器是應用軟體與以太坊互動的視窗,廣大開發者社群對 EWASM 表現出了很大興趣。

今天以太坊的虛擬機器叫 EVM,是加密專家寫的。它雖然圖靈完備,但是主要是為加密共識演算法設計的。作為一個通用計算平臺,EVM 的效率,效能,安全性,可用性,都相當差。

EWASM 是基於開源的 WebAssembly 虛擬機器,把虛擬機的一部分隔離出來做共識計算,然後讓正常的 WebAssembly 做通用計算。因為 WebAssembly 已經有一個很大的開源社群,包括它的創造者 Mozilla Foundation、Google 與 Microsoft,這明顯是一個正確的選擇。

EWASM 的一個特點是支援多種程式語言。llvm 支援的十幾種程式語言都可以編譯在 EWASM 上執行。同時,EWASM 有一個擴充套件外掛機制,可以支援用 C/C++ 語言寫的外掛來拓展虛擬機器的功能。比如,一個高效能的演算法可以直接通過外掛放入虛擬機器,讓所有應用程式呼叫。

注:CyberMiles 的 libENI 為今天的 EVM 提供了一個擴充套件外掛的機制,包括通過共識機制讓外掛上鍊的機制。這是以太坊社群在這方面的一個探索。

可是,在 Devcon4 參與了近十個小時的 EWASM 講座與實驗室,我的感覺是 EWASM 離真正上線還很遠(估計要兩年)。目前,它還沒有測試鏈,寫不出一個像樣的 “hello world”,而且路徑依賴於 Casper。

注:EWASM 是在 2015 年由 EIP-48 提出的,已經開發了三年。

其他技術熱點

以太坊寧靜是以太坊的下一個主鏈。從 Devcon4 可以清晰地看出,以太坊的力量在於圍繞主鏈的生態與社群。

側鏈

我們前面討論過了,以太坊生態的最大挑戰是擴容。在 Casper / 分片 / EWASM 為基礎的主鏈擴容之外,另一個很重要的擴容方案是用側鏈。

側鏈的基本原理是在主鏈之外進行大量的交易,這些交易的正確性與安全性是由一個智慧合約批量在主鏈上驗證的。

這其實就是為比特幣成功擴容的閃電網路的基本想法。只是以太坊的交易中含有程式碼,比起比特幣的複雜性大大增加了。所以以太坊沒有閃電網路,需要完整的區塊鏈智慧合約平臺在主鏈之外執行交易,這就叫側鏈。

因為側鏈是主鏈以外的“第二層”所以叫做 Layer 2 network。

可是如同上面講過的很多想法,側鏈也是一個看似簡單,實現很難的想法。側鏈的設計機制有好幾種,也有好幾個專案融了資,在這個領域探索。在 Devcon4 主會場上有影響的側鏈設計就是 Plasma。

以太坊首席歡樂官 Karl Floersch

Plasma 這個設計在幾個月前有一個最小驗證的產品叫 Plasma MVP,給了社會很大信心。但是 Plasma MVP 也有很多問題,不能在現實場景中使用。受到 Plasma MVP 的啟發與鼓勵,以太坊開發者社群目前有好幾個 Plasma 的實現專案在競爭。

以太坊核心工程師 Karl Floersch 給大會介紹了 Plasma 實現的現狀。他很樂觀,認為在過去的幾個月之中,這些專案已經試通了一條路:“我們已經站在山頂,可以看見曙光”。但是對於應用開發工程師來說,我們還在等待第一個以太坊主鏈上可用的 Plasma 側鏈。

零知識證明

在過去兩年中,零知識證明一直是區塊鏈研究的重點之一。零知識證明可以在所有交易都上鍊透明的區塊鏈上保證交易的保密與隱私。這裡突出的例子是 zcash。

去年區塊鏈技術圈的大新聞是以太坊引入了對 zkSNARK 的支援。這樣零知識的可能被應用於智慧合約,比如構建有隱私保護的資料市場。目前零知識演算法的可用性與效能都有諸多不足之處,所以應用還相當有限。

但是就在最近,Vitalik 發表了一篇文章講零知識證明可以用來成批次地打包驗證交易。這樣,以太坊會有第二種不依賴側鏈的交易打包擴容方案。

安全

在去年 Devcon3 期間,以太坊聯合創始人 Gavin Wood 的融資智慧合約被人發現一個安全問題,導致時價2.8億美元的930,000個 ETH 被鎖在智慧合約裡,沒人能動。

之後,以太坊智慧合約的安全問題頻出,造成了大量的經濟損失。以太坊智慧合約的安全工具與諮詢公司也進入了我們的視野。在市場上聲音比較大的是各種形式化驗證工具,從數學上證明軟體的正確性。

但軟體安全最終是一個系統工程,需要工具,也需要流程與系統。今年的 Devcon4 有好幾個關於智慧合約安全的討論會,其內容包括了系統化的方法論,安全測試,驗證與專案管理的工具,以及具體專案安全評估之後的覆盤。

我感覺,Devcon4 是區塊鏈開發者向傳統軟體開發工程系統靠近的一年。

UI / UX

區塊鏈開發以前一直是加密學專家與系統程式設計師的天下。在過去的一年,大家發現區塊鏈應用對於廣大使用者來說太難了,落地很難,就象早期撥號上網的網際網路。

所以,今年 Devcon4 請了去年比較成功的應用專案介紹 UI / UX 的經驗,同時也請來了傳統網際網路世界的著名 UI / UX 設計師來給大家講解一些基本概念與技巧。

以太坊生態中使用者最多的專案是錢包專案。面向開發者的錢包 Metamask 已經有一百萬使用者,並且有計劃向面向消費者的移動錢包發展。Metamask 在主會場分享了他們的經驗與發展計劃。

同時,開發者也在試圖建設讓整個以太坊更加易用的基礎設施。

比如以太坊的域名服務(ENS)是一個社群設立的智慧合約,可以把以太坊的賬號或者合約地址對映到人類可讀的名字(就像 DNS 把數字的 IP 地址對映到人類可讀的域名)。

技術的社會責任

從比特幣之初,加密貨幣的技術社群就一直強調技術對社會的責任。我們開發的新技術是會被用來戰爭,壓迫個人自由,還是會增加人類的幸福?

這是幾十年前愛因斯坦,奧本海默的困惑,也是今年 Google 僱員的鬥爭。技術的力量能不能建成核電站,但是不造原子彈?加密貨幣是加劇社會的貧富差距,還是為個人自由賦能?

嘉賓 Steward Brand 與 Corey Doctorow 等人帶來了精彩的演講與討論。

這屆 Devcon4 可能有 1/4 的時間在探討這個問題。比如,可以擁有財產,根據規則自主決策,甚至有性複製的智慧合約是一種“法人”嗎?該不該有“人權”?會不會在以後統治人類?而人類社會本身,能不能通過數學化的極端市場,去掉公司,政府,甚至私有財產本身?

看到這些討論,我突然覺得程式設計師真的是未來世界的主宰,軟體已經吃掉了全社會。

寫在最後

以太坊 Devcon 是名符其實的代表區塊鏈技術最高水平的大會,它定下了下一年區塊鏈技術發展的方向。與我今年在亞洲美國參加的各種大會小會相比,Devcon 是一股清流:這裡只談技術,不談幣價。

大會演講視訊連結:

https://slideslive.com/38911427/

 

 

Michael Yuan博士,CyberMiles基金會聯合創始人&首席科學家。畢業於美國德克薩斯大學奧斯汀分校,獲天體物理學博士學位。

Michael在開源軟體開發方面擁有豐富經驗,曾參與火狐瀏覽器、Fedora 和JBoss等專案,也是多項美國政府支援研究專案的負責人。

2005年,Michael被社群選為“Java冠軍”。迄今為止,Michael 撰寫了6本關於軟體開發的書籍,其中新書《Building BlockchainApps》由世界上最大的高等教育出版商 Addison Wesley出版。

 

推薦閱讀