編者註:2020 年7 月,以太坊基金會研究員再一次在Reddit 上舉行AMA(有問必答)活動。本文為問答內容的節選。為便於閱讀,下文對回答者的名字都做了縮寫,“Justin” 代表“Justin Drake”,“Vitalik” 代表“Vitalik Buterin”,“Danny” 表示“Danny Ryan”。

Phase 0 發佈時間問題

問:上一次AMA 的時候,你們提到Phase 0 可能在2020 年7 月發布。現在看來是不太可能的,當然我們卻確實更接近了。從你們個人來看,我們什麼時候能看到Phase 0 部署上線呢?就不用說具體哪一天了,我只是想了解一下最新的時間表。謝謝!

Justin:我希望能在啟動前看到下列事項完成:

一個有超過3 個客戶端參與的公開測試網能平滑運行2~3 個月一個帶有激勵措施、鼓勵大家實驗攻擊的網絡能運行2~3 個月(這裡有更多細節)bug 懸賞計劃能運行2 ~3 個月客戶端間更嚴格的differential fuzzing 測試(見此處)

上述所有事項在2020 年第三季度都做不完。再加上11 月26 日的感恩節假期和12 月假期,我覺得要在2020 年推出Phase 0,最後一個可能的機會是在11 月中旬,也就是4 個月後。我現在會傾向於認為Phase 0 啟動最早、最現實的時間是比如2021 年1月3 日(比特幣12 週年)。

在這條推特中我解釋過,(出於一些美好的目標)我們已經讓Eth2 變得對我們自己來說都有點難搞。不過,在等待黎明之前的這段時間裡,可能還會有一些好東西能讓你激動起來:

我們現在預計,在Phase 0 啟動的時候將有3 ~4 個能用於生產環境的驗證者客戶端。感謝Lighthouse、Nimbus、Prysm、Teku 客戶端團隊的努力—— 他們提高了生態的多樣性和去中心化。 blst 庫正在為客戶端實現best-in-class 性能(例子請看此處),並將在2020 年完成形式化驗證。 BLS12-381 硬件錢包整合已在進行中(例子請看此處),新的保證金合約在用Solidity 編寫,Gas 消耗可以更低。

Vitalik:不管說這話有沒有用,我個人很不認可這一計劃(譯者註:指在2021 年1 月3 日啟動),我絕對更喜歡能在那天以前就啟動Phase 0,不論我們要付出多大努力。

Eth1 從推出第一個多客戶端測試到啟動花了4 個月時間(從2015 年3 月底Olympic 測試啟動到2015 年5 月底Eth1 啟動),我會支持從Altona 測試網啟動(7 月)後安排4 個月的倒計時。 Eth2 Phase 0 有些地方比Eth1 簡單,有些地方更複雜:更複雜的PoS 共識機制,但沒有那麼複雜的GPU 導向性PoW;需要更多的優化,但沒有復雜的虛擬機,等等。我傾向於認為Eth2 Phase 0 更簡單一些,而且在Phase 1 之前,Eth2 上不會有任何重要的應用,所以遭到破壞的實際風險還更低(雖然你可以說整個生態變得更大了) 。所以,整體來說,我覺得沒有道理認為Eth2 Phase 0 的啟動週期要比Eth1 的啟動週期更長。

Danny:說實在的,我和其他人都押注在2020 年能夠發布上。

(譯者註:在該問題下面產生了許多回复。包括Justin 也回復了Vitalik 的說法,認為Eth2 Phase 0 的啟動還是複雜很多,而且從安全的角度來看還有不少事情沒做。但大部分回复者都表示支持Vitalik 的意見,或者表示不能接受Justin 的預期,認為發佈如果再推遲會產生信任危機,等等。後來,Justin 在自己的推特上說:呼聲響亮而且明確,整個社區都以在2020 年發佈為目標,那我們就加油幹吧。)

問:Altona 測試網已經運行幾週了,離 可能的 最終測試網還有一個月時間,那麼,現在大家對Altona 該運行多久有共識了嗎? (假設沒有bug)我們已經聽到很多開發者說什麼“兩個月到三個月”,那我很好奇,這到底是不是一個正式的意見呢?還有兩個相關的問題:就假設要測試網要運行3 個月時間好了。那Altona 運行的時間算不算在內呢?還是要從最終測試網啟動的那個時間點開始算呢?

Danny:在最近我跟各Eth2 客戶端團隊的交流中,客戶端團隊已計劃為在幾週內重啟一個更大的公開測試網作好準備。

我可以接受最終測試網平穩運行6~8 週就行(如果事情非常順利,而且測試網上已經出現了很多樣的行為)。但是其他人可能希望看到至少運行12 週。在這一點上,我會聽從客戶端團隊的意見,因為他們所維護的軟件才是即將實現的主網的安全性的最終來源。

Altona 的運行時間不會算在那3 個月以內,但是,提醒一句,主網的推出計劃可以開始並行實施。也就是說,如果這個測試網足夠穩定,那我們就可以開始部署保證金合約,主網啟動的日子也可以確定下來,但這個日期仍然要依賴於當前測試網表現出來的穩定性,如果發生了意料之外的故障,也要作相應的推遲。

有很多部分都在推行,但最終它們會齊齊整整一起到來。大部分的責任最終都是由客戶端團隊來承擔的,所以我不會把話說死。當我們的對話越來越明顯地呈現出結論時,我會寫文章公開大家的計劃,絕對不會讓社區蒙在鼓裡。

Aditya Asgaonkar:我們已經有計劃啟動另一個帶有賞金的測試網,成功發動攻擊者就可獲得獎金(也就是“attacknet”)。至於Eth2 規範和客戶端的穩定性,一個很好的指標是attacknet 很長一段時間內沒有發生嚴重的攻擊。這個“很長” 到底要多長,也是一個需要小心確定的事情。我個人意見是要3 個月,對安全專家、Eth1 開發者、黑客愛好者等等群體來說,要3 個月才能正經嘗試打破這個系統。

問:現在發布保證金合約的計劃是什麼樣的?

Carl Beekhuizen:關於在Phase 0 啟動之前我們還需要做什麼,我覺得Justin 已經回答得非常好了。

關於保證金合約的實際部署時間,如果我們願意的話,現在就可以部署上去,但結果只不過是一些資金會一直鎖在裡面,直到各客戶端準備工作就緒。

所以關於保證金合約的部署,最重要的一方面是保證對哪個地址應成為保證金合約地址達成共識。毫無疑問,日後會出現許多釣魚合約、嘗試騙人錢財,所以,讓大家都知道保證金合約是哪個是非常關鍵的。到時候會有一個讓合約啟動的儀式,然後我們就可以宣布這個地址,讓盡可能多的人都知道這個地址。

有很多辦法能跟保證金合約交互。我就一直在開發Lauchpad,這是一個託管在ethereum.org 網站上的接口,讓大家能夠存入保證金、成為驗證者。客戶端團隊也在設計他們各自的保證金接口,幫助平滑化存入保證金的流程。

問:大家擔不擔心在Phase 0 階段沒有足夠多的人對staking 感興趣(因為他們的ETH 要鎖定很長一段時間而且不能轉賬)?

Danny:我個人感覺是早期參與的個體肯定比最終參與的個體少,但已經有許多ETH 持有者在躍躍欲試了。我估計達到啟動Phase 0 所需的最低門檻是沒有問題的,但因為這個系統是一個新系統(因此有其內在風險)、鎖定週期又不確定,我估計好幾年才能實現鎖入1000 萬ETH 的目標。

Justin:我的猜測是我們將很容易達到50 萬ETH 的信標鏈啟動門檻,部分原因是早一點參與可以早一點開始拿staking 獎勵;部分原因是以太坊有一票狂熱的粉絲會很樂意參與。

長期鎖定也有一些好處。舉例而言,我就希望長期鎖定能過濾出那些又懂技術、又希望長期囤幣的人,這樣能更好地適應信標鏈,因為屆時信標鏈可能出現動盪。