注:此為2020.10.28 上海以太坊Meetup的第一場圓桌的記錄稿,部分嘉賓對內容進行了修訂。記錄人:沙漏時間。
彼時,Eth2的phase 0還未啟動。站在當下,回顧這場圓桌特別有意義。
圓桌1:以太坊2.0 Phase0討論
主持人: Esther(ECN)
嘉賓:Vitalik, Wang Hsiaowei(EF), Jan(Nervos), 阿劍(EthFans), Rudy(InfStones), 喵叔(SparkPool)
Q1:測試網中的問題
Esther:Eth 2.0快要上線了,存款合約正在審計當中,我們可能會在第四季度看到存款合約正式上線(注:已於11月5日上線)。第一個主題,在今年已經發布了很多測試網,在這個過程中產生了許多的問題,不是一帆風順的,雖然這也是我們的初衷,希望在測試網中暴露一些問題。所以我們的問題是,從測試網中暴露出的問題中,有沒有一些我們需要擔心的事情,挑戰或是不確定性?
Vitalik:你說的那個測試網中的低參與率問題,即很多驗證人沒有參與驗證,這不是區塊鏈的協議問題,而是因為測試網絡沒有利益,缺少經濟激勵。所以你啟動一個節點,但不參與驗證,並沒有什麼代價,所以很多人就不參加了。現在的低參與率不意味著主網的時候會有問題。這個問題僅存在於測試網。
還有一些客戶端的Bug,8月份的bug都是比較嚴重的,但是現在還有一點,但是已經不多了。很多客戶端也都通過了安全審計,昨天有一篇Quantstamp的文章(https://quantstamp.com/blog/quantstamp-completes-audit-of-2nd-eth-2-0-implementation),他們看了ConsenSys的Teku的工作,代碼已經審計好了。所以,我覺得現在那種客戶端的代碼相關的問題還有一點,但是不多。如果你看現在的情況,和以太坊1.0發布前的情況相比,現在測試網的情況已經是特別穩定的。如果說以太坊1.0的時候我們有很多問題,我們有三個月的時間要去解決共識的問題,但是現在沒有共識的問題,現在只有客戶端的效率問題和其他問題。所以我現在比較樂觀。
Hsiao Wei:我們在今年測試網的launch過程中學到了很多,像現在最新的測試網Zinken,老實說我們在啟動測試網Spadnia的過程中的排練失敗了,我們後來才有了Zinken。但在這個失敗過程中,我們學習到了,像很多客戶端一開始沒有意識到發布一個P2P的正在運行的軟件版本與發布自己本地運行的軟件是不同的。要怎麼樣讓全網同步更新,我們今年在測試的過程中學到了很多,相信主網上線的過程會更加順利。像共識方面的bug是少數,當然非常嚴重,像在8月的那場崩潰之中,回頭來看對社群是一個福音,我們當時發現了很多內存的問題、客戶端如何有效分配資源的問題,這些問題在Medalla的版本中都得到了更新。
Esther:我們也知道測試網的低參與度問題還是因為那不是真的ETH,大家比較散漫,測試網的初衷還是能暴露出一些問題,給客戶端團隊、開發團隊一些優化空間。所以說,我們也看到在最近的提案中,為了降低早期的風險,是有降低懲罰力度的,為驗證者減輕風險。
阿劍:我基本上是認同第一點的,即低參與度的問題確實是因為沒有實際的激勵,讓驗證者及時退出共識。但是我認為,即使是在實際的主網上,不能敲定終局性的時間會被縮短,但是它的影響可能同樣非常深遠。我個人比較擔心的是例如在Medalla 測試網8 月份的崩潰中暴露出的一些問題,因為當時不僅僅出現了長期不能敲定的情況,而且不能敲定的狀態都會放在客戶端的內存裡面,特別明顯的是lighthouse 客戶端出現了內存被擠爆的問題。這個部分可以認為是客戶端實現的問題,但是這也意味著例如針對時間同步的這種可能產生大規模障礙的攻擊時,客戶端必須設計得非常強韌,否則即使我們有四種客戶端,每種客戶端都佔一定的比例,仍然有20%、25%的客戶端可能出現問題。所以我最擔心的是目前的性能能應對多大規模的攻擊。
Esther:阿劍也拋出了客戶端性能和客戶端多樣性的問題。所以現場的嘉賓?
Jan:我覺得對於第0階段的整體的風險,首先第0階段已經相對簡單,把一個非常複雜的事情拆解,這個做法是非常好的。我覺得最大的風險在於,以太坊一直在選擇多版本的程序,同時做很多客戶端,這個其實是一個很複雜的。現在的研究團隊能去保證協議本身沒問題,但我們現在做的事情是如何通過工程把協議變成具體的代碼,變成實現。這個地方,有越多的團隊就越容易出問題。尤其是在這麼早期的情況下,你在這麼早就選擇這樣的道路,對我來說會有一些得不償失。可能一開始,我特別希望有多個版本,兩個可能就夠了,而不是7個,所以我也很久沒有跟進這方面的開發進展了,我會覺得這是一個擔心的部分。
Rudy:確實如Jan剛才所說,以太坊已經分階段了,階段0是一個比較簡單的。在階段0階段的難點就是要教育以太坊的社區和持幣者,PoS所帶來的staking的新模式。剛才Vitalik和Hsiaowei都表達了這樣一種觀點:它是一個測試網,大家對它不那麼重視,因此參與率不高。但是,同樣因為它是測試網,因此也可能隱藏了一些其他的問題。因為我之前有其他公鏈staking的比較多的經驗,比如說:我們現在是在用虛擬的以太坊參與2.0的測試,所以我們對它的價值和slash的風險沒有特別注重,那麼如果階段0真正上線,我們把ETH鎖倉進去,面對的是一個很未知的鎖倉時間。這個機會成本是所有考慮參與的人要面對的。這一點在測試網階段是沒有暴露出來的。所以這幾天萬向峰會期間,我也和一些朋友溝通流動性的解決方案。流動性解決方案也分為去中心化方案和中心化方案,就好比我們把BTC搬運到以太坊上,也存在這兩種方式,中心化的方式跑得更快。所以以太坊2.0在追求一種極致的去中心化,包括32個ETH的設計以及驗證人的數量,但在流動性的解決方案上可能會出現一些中心化的手段。但是,也可能在另一方面促成更大的參與率。總體來說,因為階段0在技術上比較簡單,在運行的過程中遇到的主要困難還是教育公眾熟悉這樣的新模式,例如在此過程中的參與率的問題、節點掉線的問題、節點掉線後能否呼籲大多數人回歸到驗證過程,尤其現在懲罰的比例降低了,能否起到很好的激勵。我覺得是很大的挑戰。
喵叔:前面幾位嘉賓對測試網的情況都做了概括和說明。我提供一些其它的視角。本身PoS對於礦池來說會是一個根本上的生意模式的改變,星火礦池從去年開始嘗試跟進Staking的產品線,並且也在跑驗證者節點,同時也在考慮如何解決Phase 0階段的流動性問題,設計了幾種解決流動性問題的方案。這些看起來都是工程問題,但是最終回到了另外一個問題。流動性挖礦給以太坊帶來了里程碑的改變,就是以Rollup為核心的擴容方案,這個里程碑比Phase 0上線更重要,也讓我看到以太坊的整個決策在朝著更加客觀可用,可以接納更多社區的力量,接納更多可用的方案的高效的思路方面發展。因此,我們在思考,從PoW轉到PoS的過程中我們到底在付出什麼,Phase 0這個階段是否是必需的,我們是否真的要做這件事情。因為看起來PoS的Staking在終極上想模擬PoW挖礦的過程,從設計上,從算法上模擬這件事情,但是否丟失了什麼東西?我過去沒有過多思考這個問題,而是更多地在嘗試跟隨ETH 2.0的進度,但是前段時間更多在各地與PoW礦工進行比較多的溝通。我的思考是,PoW的整個生態和激勵是有更多的閉環,比如說挖礦的層面,PoW是有自有閉環的,礦工不太在意以太坊鏈上在做什麼,這是不是會帶來更多的安全性?轉到PoS之後,參與staking的人和PoW礦工的人的選擇會怎樣,人對於安全性的作用可能會高過模擬的作用。我比較擔憂是最終轉向PoS之後,生態的參與復雜度會降低,因此會不會帶來更多安全性的問題。
Q2:理想的以太坊路線圖
Esther:喵老師把問題引向了下一個話題,我們也看到了以太坊接下來的發展路線可能是PoS+Rollup+Sharding。喵叔提出了一個質疑,就是PoS是不是有必要,與PoW的權衡,取捨在哪裡。我們想要就這個話題給大家開放討論的空間,每個關心以太坊的人都會關心以太坊的下一步走得穩不穩、好不好。想問各位,有沒有心目中比較理想的以太坊路線圖?
Vitalik:這個怎麼回答……因為我已經說過很多遍以太坊的路線圖,先做PoS,以太坊1.0和以太坊2.0的合併,等到2.0安全之後,可以把現在所有的東西搬到PoS上面,同時再做分片和擴展性的東西。長期的協議不會有特別大的變化。要做PoS還是不要做PoS,是非常複雜的,關於這個話題我已經寫了比較多,我有一個Proof of Stake的FAQ,還有一個Proof of Stake的設計哲學。這是一個比較複雜的權衡,但是我還是覺得PoS雖然存在缺陷,但不是特別多。假如一開始所有的區塊鏈都是PoS,有一個人發明了挖礦的概念,可能大家不會喜歡。 (聽不清)。
Esther:大家有沒有什麼不同的看法?阿劍老師有話要說。
阿劍:我覺得這樣的安排很好,一位支持當前以太坊路線圖(PoS+分片+Rollup)的發言,一位反對者發言。現場應該是有3位PoS支持者和PoW支持者。我心目中的以太坊路線圖非常簡單:以太坊1.0+Rollup。我想去挑戰Vitalik,他認為PoS有很多優點,相對於它的犧牲是值得的。我在這裡的挑戰是:在我看來,這件事情不像我們想像的那樣可持續,根本原因在於兩個點:(1)PoW的這個世界中,生產工作量證明的過程和節點間的P2P通信過程是分開的。也就是說你可以有無數個礦工在網絡之外,隨便在哪裡,生產PoW證明,其實你不會佔用這個系統內部的帶寬開銷。但是PoS剛好相反,要生產證明必須要在系統內部不斷與其他驗證者通信來產生終局性,會佔用系統內部的帶寬開銷。在我看來,這是技術上的非常大的不同。 (2)其次在於驗證,如果你只是要驗證這條鏈的共識,在PoW裡面非常簡單,你只需要驗證工作量證明即可,而在PoS世界中,它對於共識的驗證,必須要驗證每一位共識參與者的簽名是否有效。假設有128位參與者,就需要驗證128個簽名,即使採用BLS的簽名方案,可以通過聚合減少數據開銷,但不能節約驗證的次數,仍然要驗證128次。我覺得可以得出一個結論在於,PoS系統的驗證者的增加會導致內部開銷和帶寬成本上升,這是非常大的缺點,而在PoW中並不會出現這樣的情況。這只是共識層,而沒有涉及交易。如果我們把驗證者的開銷分為驗證共識的開銷和執行交易的開銷,PoW可以保證第一部分的成本長期保持在比較低的水平,但PoS第一步的成本會隨著共識的參與者數量的增加而不斷增加。這在我看來是非常大的缺陷,這使我不太相信PoS系統可以做到長期的發展,這個是我在這裡比較核心的觀點,就是這個屬性讓我覺得PoW可以在長期發展中保持相當好的競爭,因為它的節點在共識層的開銷是相當低的。注意是驗證共識而非參與共識。
Vitalik:這個我可以回答。你完全可以說PoW在每12s只需要驗證一個區塊,而PoS要驗證很多簽名。不過你可以看現在,實際上驗證共識的成本是非常低的,可能比現在驗證共識的成本還要低10倍。我的電腦上有一個測試網的節點,也有一個以太坊1.0的節點。以太坊1.0節點啟動的時候,我的電腦是比較慢的,很消耗計算。我在開Madella節點的時候,真的只需要一點點。原因有兩個(1)BLS聚合簽名可以把很多簽名放在一起驗證,很多簽名一起驗證的成本是比較低,驗證500個BLS簽名的成本可能只是驗證1個BLS簽名的2倍左右,所以這是很大的效率的改進。 (2)我們的PoS和Tendermint、DPoS這樣的PoS是比較不一樣的,Tendermint每一次出新的區塊需要所有的節點參與驗證,例如有1000個節點,10秒出塊,那麼每10秒就要驗證1000個簽名。但是在我們的算法裡,有32個slot,在每個slot只需要有3%的節點發一個簽名,所以這個的成本相對不高。我想說的是,PoS並不一定需要驗證很多簽名,如果你看Cardano的Ouroboros,和傳統的PoS相比,每次要驗證的簽名只有一個。我們做的每個區塊需要10個、100個、1000個簽名的原因是,每一個區塊可以收到很多confirmation,所以你把交易發布後,5-10秒後可能就有特別高的安全性。按現在的標準,你需要等12個區塊,比特幣需要6個,但是在PoS的方式中就只需要幾秒鐘。這個有點像把許多confirmation集中在一起。
Esther:你可以說中文。 (觀眾笑)
Jan:我覺得阿劍的觀點是非常有趣的分享。阿劍剛才一直在強調驗證共識的時間,我覺得Vitalik的第一點可能有些混淆。如果你把Eth 1.0的客戶端和Eth 2.0的客戶端去比較,你會發現Eth 1.0的客戶端的大部分時間是花在交易的驗證上。 PoW的驗證非常簡單,是單次的Hash驗證,這個一定比BLS簽名的驗證快很多倍,所以我覺得這裡面有一些不一樣。我從我自己的角度說一下對這個問題的看法,我是Nervos的架構師,我們也做PoW,我們也支持一般性的智能合約,所以從我的角度來說,我會希望以太坊堅持現有的路線。因為這樣,Nervos將會成為唯一一個PoW的智能合約平台,這會給我們非常足夠的追趕的時間。從這個角度來說,我挺希望以太坊堅持自己的路線。從另外一個方面,確實如Vitalik所說,PoS這個詞涵蓋了很多不同的內容,不同的項目是非常不一樣的。總的來說,我覺得以太坊的PoS在各個方面是非常完善和平衡的,也是我最喜歡的PoS之一。所以,要比較PoW和PoS的話,可能要跳出具體的共識算法範圍,更多從兩者抵禦女巫攻擊的手段的角度去考慮我們去採用哪一種。因為它們最後的原理是一樣的,即我們通過稀缺資源的分配來防止攻擊者無限制去複制它的身份,這是這兩者的本質。我會更喜歡PoW的原因是,它會帶來一個更加開放的系統,因為它依賴的資源是PoW體系之外的資源,它依賴的是能量和硬件,是在物理世界而不是系統內部的資源。而PoS更依賴系統內部創造出的資源,會更加封閉。因為,已經擁有這個資源的人可以得到更多的資源,即新創造出來的token分配,往後時間越來越長,更容易聚集在現有擁有資源的人的手中。為什麼開放系統更好呢?再往下一步想,就是你認為哪一種資源的分配更公平?區塊鏈的出現很多時候不是在追求效率,而是在追求公平。這就是我們為什麼希望有去中心化,希望有各種各樣很奇怪的設計。如果我們單純追求效率的話,我們用中心化的系統就好了,那已經解決了一切問題。如果考慮到公平,考慮到在尋找一種資源,抵禦女巫攻擊的手段。這個問題翻譯過來就是,哪一種資源在世界上的分配是最公平的?在我看來,我覺得能量的分配是最公平的。因為,地球上所有的能量都是來自太陽(認真臉)。大家可能覺得比較科幻,但隨著能源科技的發展,我們會找到越來越多的清潔能源,風能、核能、水電(中國的大部分礦工在用水電)、清潔的煤的能源。這些能源分配在全世界各個國家,美國、北歐,各個地方都有礦工,我覺得這個資源分配最公平。這就是我會喜歡PoW的原因。 (Jan因為有其它安排先行離開,向聽眾致歉)
Esther:大家也是意猶未盡,我們希望討論是endless的,在一會兒的其他環節和討論環節,嘉賓也可以保持在線參與辯論。喵老師還有什麼要補充的?
喵叔:不是說一個PoW一個PoS嗎(話筒交給Rudy)
Rudy:好的。剛才Jan說得很好,說了一些比較具體的問題,然後又上升到比較哲學的層面。比較具體的部分,Vitalik回應阿劍的部分已經說到了,雖然舉的那個例子Jan覺得不妥,因為Eth 2.0的階段0和Eth 1.0是不能比較的。但是Vitalik想表達的意思是交易速度究竟慢在哪裡,應該優化哪一部分,就像電流流過電阻的時候,應該優化電阻最大的部分,所以電阻比較小的那部分是10倍還是幾十倍,其實不是最重要的。說到資源的分配上,我覺得如果說能量都來自於太陽,確實如此,但是獲取能量或者說壟斷能量的效率是不一樣的,所以說電價便宜的地方會適合挖礦。我的意思是,能量來自太陽並不能說明哪裡都是公平的,其實一方面在現在這個層面來說,電價最便宜的地方,他們的優勢是最集中的。如果要討論不同的能源種類的話,那麼就是掌握先進技術的人或國家,他們的優勢是最集中的。所以這並不是一個完全公平的分配。當然,不用討論這麼細,我認為不論是幣還是電,還是其背後體現的技術提升的資源,我覺得他們之間都是可以互相轉換的。並不是用幣作為系統的資源,就會造成體系的封閉,除非以太坊的所有持幣人都不賣幣,阻斷你進入這個體系。在現實情況是,資源的轉換是非常方便的。這個是我關於這兩點的觀點。我認為這兩點都不是很成立,因為PoW和PoS幾乎站在一致的起跑線上,這個時候比較兩者的優劣,其實可以參考Vitalik之前的文章,PoS的優點在於輕便、效率高,可能和分片這種體系更加契合,我覺得用PoS是沒有問題的。我覺得PoW的支持者對於應用PoS之後可能產生的問題,尚沒有在已經運行的PoS公有鏈上觀察到,可能很多是停留在想像的階段。我覺得應該選擇一條更加切實、對現在有幫助的道路。
喵叔:拉回剛才的主題,路線圖。我心中的路線圖和阿劍的比較像,每個階段應該是可用的。無論如何拆解階段,每個階段應該是可用的,尤其是對於以太坊來說。 PoW是不是可用的?它是可用的。是否可以擴展?可以擴展。分片有什麼問題?數據可用性的問題、存儲數據的問題。當然這些可以繼續推演和研討,可能有更多的社區方案會出現。回到PoW和PoS這件事情上,已經拔高到太陽這個高度了。我確實比較認可一點是,大家無論怎麼關注礦機怎樣、算力怎樣,但它確實就是一個能源行業,不單單是電價,它會關係到參與的人的社會狀態、政局的穩定、經濟的因素,很多很多。因此,其實帶來的是PoW本身的基礎更複雜。舉一個例子,我理解的PoW的生態是在土壤裡種菜,裡面會有小蟲子,會有細菌,這些東西不是為種菜而生的,但是實實在在產生了很多的因素,促成了植物生長。因此,我們叫它所謂的生態。 PoS在朝著一種什麼樣的道路在走呢?你要種菜,你需要水,你需要營養液,我們搞水,搞大棚,這個還能叫生態嗎?我覺得這個叫“共識內捲”,好吧,一個新的名詞。我不知道怎麼再去解釋這個詞,我只是想表明自己簡單的立場,我會認為以太坊在當前的PoW共識基礎之上,其實已經捕獲了足夠豐富的人員參與,甚至這些人並不真的關心以太坊之上的應用,他們也在以太坊做出貢獻,他們自己都不知道。礦業有自己閉環的經濟體,更像是河流山川里的水體,有泥潭有水草有魚。我會覺得這樣的生態更豐富,創新更多,可能性更多,而不是定向地我們要搞一個什麼樣的東西。我會從生態角度去思考。
Esther:Panel時間也差不多,感謝大家的精彩討論,我們也收穫到了一些新詞:Power、Poser、共識內捲(Consensus Inclusion?),我覺得內捲這個詞用在這里挺合適。感謝大家發出不同的聲音,不同於以往的說教式的演講。總結一下,我自己喜歡的一位作家(編者註:韓寒),他評價中國的教育是“沒有立場,只有是非”,但是我覺得在去中心化世界是反過來的,“沒有是非,只有立場”,因為更多的在起作用的是共識性的東西,這也是以太坊社區一直感染到我的地方。第一個Panel到此結束。