天天看點

以太坊都這麼堵了,Eth 2.0 在幹嘛呢?

雲栖号資訊:【 點選檢視更多行業資訊

在這裡您可以找到不同行業的第一手的上雲資訊,還在等什麼,快來!

自 4 月底以來,以太坊網絡變得非常擁擠。

資料顯示,以太坊網絡上的平均燃料價格自 5 月初以來上漲了三倍多,在過去幾天平均上漲了 30 Gwei。EthGasStation 表示,這樣導緻的結果是發送一筆簡單的 ETH 交易平均要收取 0.16 美元的費用,這還是盡可能少用燃料方式下的價格,ERC-20 令牌傳輸和智能合約呼叫的成本可能是這個數字的好幾倍。

以太坊都這麼堵了,Eth 2.0 在幹嘛呢?

費用增加已經對遊戲 DApp 産生了重大影響。DappRadar 資料顯示,5 月份,遊戲類 DApp 活躍度大幅下降,而其他類型 DApp 則略有增長。

以太坊網絡擁堵的原因歸根到底還是目前的網絡無法支撐起日益增大的交易量。而 Eth 2.0 作為一套可擴充的權益證明基礎架構,在即将到來的更新中,區塊鍊協定從 PoW 轉向 PoS 共識機制,引入可擴充性、安全性和性能等方面的提升。目前 Eth 2.0 的進展如何呢?以太坊 2.0 協調員 Danny Ryan 日前發文詳細介紹了目前 Eth 2.0 的最新發展和各項計劃。

Eth 2.0 現狀

目前團隊正在也在努力推出階段 1,代表即将達成大量共識。預計将初步啟動 64 個分片,且系統的總可用資料約在每秒 1 到 4 MB 之間。

注:Eth 2.0 的推出分為 4 個階段:階段 0、階段 1、階段 1.5 和階段 2。

階段 0 的目标是與遍布全球的數千個節點以及數十萬個共識實體(驗證器)達成共識。保證區塊鍊有能力處理大量驗證程式是這個階段的難點。其他非分片權益證明機制往往隻包含 100 或者 1000 個驗證器,而 Eth 2.0 至少需要包含約 1600 個驗證器,且這一數字有望在兩年之内增長至數十萬之多。

階段 1 則代表即将達成大量共識。達成共識的“事物”将以分片鍊的形式出現,來自信标鍊的驗證器将獲得随機短期任務,借此建構并驗證各分片鍊,并對每條鍊的狀态、可用性以及有效性做出加密經濟性承諾,最終将結果傳回至核心系統。

階段 1.5 是将以太坊主網作為一個分片(屬于階段 1 中建立的衆多分片之一)內建至新的 Eth2.0 共識機制當中。但與傳統以太坊挖掘算法不同,這一次建構工作由 Eth2.0 驗證器負責完成。該共識機制的熱交換将保持較高程度的透明性,應用程式仍将保持原有運作狀态。

階段 2 将進一步添加狀态與執行。具體操作可以采用多種形式。在目前的研究與原型設計工作當中,團隊的主要工作就是弄清楚哪種形式更好、以及這種選擇背後的細節含義。

Eth 2.0 用戶端與測試網的狀态

過去兩年的階段 0 中, Eth 2.0 用戶端已經發展成極複雜的軟體方案,能夠處理數千節點中成千上萬驗證器之間的分布式共識。目前已經進入測試網階段,一步步邁向全面啟動。

Danny Ryan 鼓勵大家積極體驗多用戶端,不過需要在穩定與探索之間做好權衡取舍。

此外,該協定中還内置反相關激勵機制。在極端情況下,如果某主要用戶端無意間令驗證器下線或者執行了某些後果嚴重的操作,而使用者驗證器又利用了這些操作,那麼開發者将受到非常嚴厲的懲罰——嚴厲程度遠超獨立的負面操作。換句話說,在這樣的制度之下,運作少而精的用戶端才是最佳選擇,因為用戶端的增加隻會提高出錯幾率。

需要強調的是——如果有多個安全且适合您需求的用戶端,使用者有義務主動選擇其中的少數用戶端軟體以促進不同用戶端在網絡上的健康分布。

測試網現狀

目前,以太坊網絡上正在運作小型公共開發網,大約每隔一到兩周就會進行一次重新開機。

該“開發網”主要負責客戶團隊開發人員的 bug 處理與系統優化等工作。開發網是完全公開的,但還不像 Goerli 或者 RInkeby 那麼成熟。由 Afri Schoedon 上司釋出的最新 Witti 測試網目前運作 0.11 版規範(如果您打算運作節點,請點選此處檢視說明文檔)。

用戶端團隊正在積極更新至 0.12 版規範,新規範內建了最新版本的 IETF BLS 标準。以此為基礎,以太坊團隊将不斷擴大網絡規模、增加用戶端的負載水準,并最終将開發網全面過渡至 0.12 版。在成功啟動完成 2~3 種用戶端,并在 0.12 版網絡上運作部分高強度負載後,團隊将開放公開度更高的測試網,開發者可以在其中運作大部分節點與驗證程式。

測試網的目标在于建立一套長期存在的多用戶端測試環境,并盡可能模拟主網的運作條件(使用者可以在其中可靠地演練節點運作方式,并測試自己希望測試的一切)。最理想的作法當然是隻對測試網進行一次啟動,并在随後的網絡維護期間對所有故障加以分類。但根據實際故障的情況與嚴重程度,團隊也可能需要多次啟動才能完成測試網的全面上線。

除了普通的測試網之外,團隊還将提供更具激勵性的“攻擊網”,用戶端團隊可以在其中運作穩定的測試網,并邀請更多參與者以不同方式開展破壞性攻擊。一旦攻擊成功,大家将得到以太币獎勵。

Eth 2.0 工具現狀

雖然 Eth 2.0 的工具體系尚處于起步階段,但已經帶來了不少令人興奮的成果。工具貢獻主要來自用戶端代碼庫與用戶端團隊,但其他貢獻來源也在展示自己的力量。為了更好地與 Eth 2.0 進行互動,了解、保護并增強 Eth 2.0 項目,整個社群有必要建立并擴充出更龐大的 Eth 2.0 生态系統。

Eth 2.0 工具代表着前所未有的商業機遇。大家可以在這裡挖掘價值,并獲得真正的成功。

以下是目前正在開發的方向,更多工作也在推進當中:

資料總管: Beaconcha.in , Etherscan , Eth 2.0stats

網絡工具: Prrkl , Rumor , Pyrum , Stethoscope

密鑰庫與錢包: ethdo , deposit cli , EIP 2335 及其他新标準

API 設計與 原型綁定

Slashing 檢測: Prysm “hash slinging slasher”

以下是部分開放工具的創意示例:

Eth 2.0 驗證程式警報:提供一項服務,可在節點驗證程式未達到最佳性能時向節點操作員發出警報。

驗證器餘額跟蹤:通過跟蹤驗證器的保證金過程,在現有以太坊與 Eth 2.0 資料總管間架起橋梁。

通過代理保護驗證器:使用代理跟蹤驗證器消息,確定您的用戶端不會發送不安全消息。

Eth 1.0+Eth 2.0 的內建現狀

在目前的以太坊用戶端(例如 geth 等)當中,幾乎所有複雜性都展現在對使用者級活動的處理當中——包括交易池、區塊建立、虛拟機計算以及狀态存儲 / 檢索等等。協定中真正的核心共識(工作證明)反倒相當簡單。大部分複雜性都由核心協定之外的複雜硬體進行處理。

另一方面,Eth 2.0 用戶端則具有全面共識性。在權益證明與分片中,大部分複雜性被歸入協定當中,用以實作共識的可擴充目标。這種關注點的差異,使得 eth1 與 Eth 2.0 用戶端能夠完美比對。

目前,geth(EF)與 TXRX(ConsenSys)團隊的成員正在對二者進行合并。這項工作的具體内容包括:

定義 eth1 與 Eth 2.0 用戶端之間的通信協定;

向 eth1 用戶端添加可通過該通信協定進行控制的共識引擎;

對 Eth 2.0 階段 1 中的行為進行原型化與模拟,借此測試耦合結合。團隊希望在今年夏季取得部分具體成果。

不同分片間執行與通信的現狀

可跨多個分片正常執行的路徑一直是個廣受争議的技術難題。在這方面,團隊需要回答很多實際問題,包括:

執行時應啟用多少個分片?

對于其他分片,是否應該選擇 EVM 或 eWASM 作為虛拟機方案?

我們該如何有效組織并處理跨分片交易?

我們需要對現有 EVM 者哪些變更,以使其支援跨分片交易?

執行與賬戶結構能否 / 應否具備通行的可擴充能力?

eWASM(EF)與 Quilt(ConsenSys)團隊正在這些領域投入大量研究資源。事實證明,可行的解決方案多種多樣,而目前的頭号難題就是挖掘出更簡單、更務實的解決辦法,以便快速進行測試、建立設計原型并有針對性地做出讨論。eWASM 的 Eth1 x64 項目也正是由此誕生。

将抽象的跨分片思維引入具體規範、據此展開讨論并建構設計方案的實踐方法,幫助團隊在探索中取得了快速進步。DApp 開發人員在接下來的幾個月中需要密切關注這方面動向。

**無狀态以太坊與 Eth 2.0 的關系

**

與 Eth 2.0 并行推進的另一項重大研究工作是“無狀态以太坊”。

無狀态以太坊的核心是解決狀态規模持續增長的難題。在它的幫助下,參與者既能夠完成區塊驗證,又無需在本地存儲完整區塊鍊狀态。如今,以太坊狀态轉換函數中新增一項隐式輸入:整體狀态。使用無狀态以太坊後,區塊内部将包含必要的狀态證明(見證),借此保證區塊可以作為純函數進行轉換 / 驗證。

對使用者來說,這意味着以太坊将成為一個環環相扣但又互不影響的世界,我們隻需要關注其中需要關注的一部分狀态。某些網絡參與者可能會存儲所有狀态(例如區塊生成器、區塊資料總管、按需收費的狀态提供程式等),但絕大多數參與者隻需要掌握整體狀态中的一部分。

對于 Eth 2.0,這将是一項重要的技術機制,能夠保證節點與驗證器成功驗證并保護整體協定,同時無需在每個分片上存儲完整的使用者狀态。相反,驗證器可能選擇接入某些分片的區塊生成器,而基準驗證器可能單純驗證無狀态區塊。無狀态以太坊将成為 Eth 2.0 發展願景中的重要補充,負責保證該分片協定的輕量化優勢。

當然,如果事實證明無狀态發展路線最終不具備可行性,團隊也準備了其他一些替代性選項。

Eth 2.0 的挑戰

Eth 2.0 目前工作中,遇到的挑戰主要是要引入過多的驗證器、分片和用戶端。

分片機制的關鍵在于共識參與者(即驗證器)必須以随機抽樣的形式加入委員會,并對協定中的特定部分(例如分片)進行驗證。如果特定協定中包含足夠的驗證器,那麼即使攻擊者控制的參與者數量達到最高(例如全部驗證器中的 1/3),後者在數學意義上仍然不可能控制委員會并破壞整套系統(成功的幾率一般在 1 / 2^40 左右)。為了達成這個目标,團隊需要對系統進行設計,保證使用者能夠使用消費級計算裝置(例如筆記本電腦甚至是舊手機)充當驗證器(各驗證器将被配置設定給系統中的各個子部分,并單一裝置的計算資源足以完成對該子部分的驗證)。

正是這樣的設計思路,讓分片機制既功能強大又難于實作。首先,我們必須擁有充足的驗證器以保證随機抽樣不受惡意人士控制。換句話說,eth2 天然要比大部分其他權益證明協定具有更多的潛在驗證器,而這将在流程中的各個階段給系統帶來挑戰——包括共識機制的研究與規範制定、網絡、資源消耗以及用戶端優化等等。每新增一個驗證器,都會在系統的各個步驟中帶來系統負載,這些影響因素顯然需要得到重視。

除了驗證器過多,另一項基本決策同樣提升了建構難度。在以太坊中,團隊希望在增強可擴充性的同時,盡可能降低對去中心化原則的影響。基于這個理念,團隊必須要建立起分片共識機制并借此将系統拆分為一個個體量較小的可驗證區塊。設計并實施這樣的共識機制将極為困難。

強調自身的協定屬性是以太坊核心宗旨之一。以太坊代表着組成協定的抽象規則集,而非這些規則集的任何特定實作。為此,以太坊社群在建立之初就鼓勵使用者們開發出各類用戶端實作方案。

今天的以太坊主網上,大家可以看到 besu、ethereumJS、geth、nethermind、nimbus、open-ethereum、trinity 乃至 turbo-geth 等等。而在 eth2 當中,又有 cortex、lighthouse、lodestar、nimbus、prysm、teku 以及 trinity。

多用戶端範式具有以下幾項重要優勢:

多種用戶端的存在,意味着社群可以對思路、算法以及架構做出更廣泛的探索(每種用戶端都有着自己的方法與觀點)。

不同用戶端通常有着不同的設計目标。随着時間推移,使用者與應用程式的多樣化程度也将同步提升。

目前以太坊主網上有着多種生産級用戶端,大規模攻擊雖然能夠擊倒任何單一用戶端(例如 DoS 攻擊),但卻無法徹底淹沒所有用戶端。

每種用戶端都是通向程式設計語言社群的門戶。使用特定語言的用戶端熱情邀請該語言的使用者們前來,嘗試進行實驗與創新。

但用戶端過多,同樣會帶來以下負面影響:

規範與測試必須嚴格而慎密,避免主網發生意外分叉。如果該協定隻有一種實作方式,則該實作将成為新協定。在單用戶端的情況下,一旦網絡上出現任何形式的共識“錯誤”,那麼錯誤将成為協定中的現實。雖然這可能損害了以太坊的純粹性,但也消除了意外分叉的風險。為了解決這個難題,團隊将在主網上保持着健康的用戶端分布(例如,單一用戶端的節點 / 驗證器總量絕對不會超過總數的 1/3);這樣即使單一用戶端出現共識問題,網絡仍可保持正常運作。

與單一用戶端相比,協調 N 個用戶端必然帶來開銷的線性增長,甚至在某些情況下引發開銷的平方增長(N^2)。團隊采用一系列技術來減少這種開銷——包括共識測試套件(網絡測試套件也即将推出),但這種開銷隻能削減、永遠不會徹底消失。

【雲栖号線上課堂】每天都有産品技術專家分享!

課程位址:

https://yqh.aliyun.com/zhibo

立即加入社群,與專家面對面,及時了解課程最新動态!

【雲栖号線上課堂 社群】

https://c.tb.cn/F3.Z8gvnK

原文釋出時間:2020-06-07

本文作者:Danny Ryan

本文來自:“

InfoQ

”,了解相關資訊可以關注“

繼續閱讀