新的疆域

ETH 2.0 Phase 0(又稱 “信標鏈”)的主網預計將於今年晚些時候上線。眼下,我們應該思考這樣一個問題:現有網絡可以做些什麼來推動新的系統平滑上線?我們可以想象出一些令人振奮的應用場景,可以(在 ETH 1.0 併入 ETH 2.0 之前)利用兩個網絡之間的互操作性,但是事實表明,如果不能修改 EVM(以太坊虛擬機)來適應 ETH 2.0 系統使用的新密碼學元件,這些應用就將受阻。在此我希望爲這些新的密碼學元件提供概要的說明,並解釋爲什麼將其整合進 EVM 有助於我們在 Eth1 在遷移之前也能利用新系統的功能。

ETH 1.0 少了什麼?

以太坊區塊鏈上的所有數據都是公開的,因此我們必須使用密碼學簽名來確保特定交易反映相關方的訴求。以太坊所使用的簽名方案是以橢圓曲線爲基礎的,使用的是名爲 secp256k1 的曲線 。這條曲線上的點被用於名爲 ECDSA 的 簽名方案 ,爲我們的密碼學簽名賦予我們所期望的屬性。

- https://en.wikipedia.org/wiki/Elliptic_curve_point_multiplication ,該橢圓曲線的屬性提高了 ECDSA 簽名方案的安全性-

儘管基於 secp256k1 的 ECDSA 簽名方案已經經過了多年的使用測試,但是二者的定義標準分別只有 20 和 10 年左右的歷史。ETH 2.0 採用了較爲新穎的構造,利用了密碼學方面的新進展。ETH 2.0 系統中的驗證者(類似 ETH 1.0 的礦工)使用 BLS   簽名方案 ,以另一種名爲 BLS12-381橢圓曲線 爲基礎。(請注意,“BLS” 是縮寫,這三個字母分別來自三位提出者的名字!)ETH 2.0 之所以採用這種新技術,主要是因爲它可以高效地將多個簽名聚合到一個簽名中,直接促進 ETH 2.0 安全性的參與可行性。欲知更多信息,請參見  Carl Beekhuizen文章 ,瞭解 ETH 2.0 中籤名聚合的重要性(編者注:見文末超鏈接《Eth2 Staking 指南 #2》)。

雖然 BLS 簽名對 Eth2 有很多好處,但是我們遇到的問題是,ETH 1.0 本身並不支持這種新的密碼學元件,而且其底層數學邏輯對計算要求很高,致使我們無法在 EVM 中實行 BLS 簽名。幸運的是,我們可以將計算邏輯添加爲 “預編譯” 部分,以此規避 EVM 在性能上的侷限性 —— 通過硬編碼算法讓原生實現在 EVM 解釋器之外被智能合約調用。

如何實現預編譯?

以太坊協議的預編譯部分屬於稀缺資源,因此僅留給社區認爲重要的計算邏輯。此外,預編譯需要通過硬分叉來部署(因爲它們會改變 EVM 的語義),因此協調成本很高。幸運的是,在當前的 EIP-2537 草案中,我們可以看到這些 BLS 預編譯的相關工作正在推進。 EIP-2537 包括對 BLS12-381 曲線運算的預編譯,以及 BLS 算法方案中使用的另一個被稱爲 “映射至曲線(map to curve)” 的高成本操作。如果你深入研究 BLS 算法方案的數學原理,你會發現需要利用某個機制才能將(你想要簽署的)某個消息通過 “映射至曲線” 操作轉化爲橢圓曲線上的點。

預編譯爲我們帶來了什麼?

EIP-2537 預編譯會通過提高保證金合約用戶體驗來幫助 ETH 2.0 上線,併爲在 ETH 1.0 內構建 ETH 2.0 輕客戶端奠定基礎。BLS12-381 曲線本身可用於構建 zk-SNARKs ,連同其他區塊鏈中使用的 BLS 爲實現這些網絡之間的互操作性鋪平道路。

  • 保證金合約用戶體驗

成爲 ETH 2.0 信標鏈驗證者的初始方法是,將 ETH 存入 ETH 1.0 上的智能合約(“保證金合約”)。爲了節省 Gas 費用並最大程度上降低複雜性,保證金合約的主要功能就是爲(在默克爾樹上)的某筆存款提供密碼學承諾,然後這樣一個承諾就能在信標鏈上用作證明。重要的是,確認保證金所需的 BLS 簽名並非在 ETH 1.0 鏈上驗證的。測試網就因爲出現漏洞而導致一系列 BLS 簽名計算錯誤,丟失了一部分測試網 ETH 。爲了在 ETH 1.0 鏈上對 BLS 簽名進行驗證(可以通過 EIP-2537 實現),我們可以編寫一個 “轉發” 智能合約來獲取保證金數據,驗證簽名然後僅將保證金數據發送至保證金合約。這個功能雖然不是保障保證金合約安全性的必備條件,但它 確實能給那些與保證金合約交互的開發者帶來心理上的慰藉。

  • 在 EVM 內構建的 ETH 2.0 輕客戶端

我們認爲,在 ETH 1.0 鏈上構建 ETH 2.0 輕客戶端之前,必須先讓 ETH 1.0 “理解” ETH 2.0 採用的密碼學技術。這樣纔有可能在智能合約中實現類似於 BTCRelay 的輕客戶端。這種輕客戶端一旦實現,將會成爲溝通 ETH 1.0 和 ETH 2.0 網絡 “橋樑” 的支柱,想想還有點小激動呢。通過這個雙向橋樑,ETH 就可以在 ETH 1.0 和 ETH 2.0 網絡之間轉移,ETH 2.0 分片也可以作爲一種具有高度可擴展性的數據層來支撐 ETH 1.0 上的二層架構(例如,optimistic rollups、zk-rollups 等等)。

激動歸激動,不過要注意的是,在 EVM 內構建輕客戶端來作爲一種智能合約(而不是在 ETH 1.0 客戶端層面實現輕客戶端)或許不是讓 ETH 1.0 理解 ETH 2.0 的最佳方法。此外,對 “雙向橋樑” 的最新研究表明,考慮到 ETH 1.0 和 ETH 2.0 網絡的其他安全參數,這種方法並不可行(還不如將 ETH 1.0 的狀態分叉然後放到 ETH 2.0 分片上)。話雖如此,現在打好基礎沒什麼壞處,而且隨着後續研究的推進,ETH 1.0 和 ETH 2.0 的合併策略有可能改變。

  • zk-SNARKs

創建 BLS12-381 曲線的目的是爲了讓 ZCash 能夠使用更加高效的 zk-SNARKs (若想了解更多關於 BLS12-381 曲線的信息,可以查看上文鏈接)。此外,將該曲線添加到 EVM 上能夠讓以太坊驗證這類 SNARKs ,通過零知識證明協議來實現具有隱私性和可擴展性的應用。

  • 其他網絡

一些 “新一代” 區塊鏈(Filecoin、Chia、Cosmos 等等)也打算使用 BLS 簽名方案;賦予 EVM 驗證這些簽名的原生功能,能夠解鎖更多互操作性用例,就像 ETH 1.0 和 ETH 2.0 之間那樣。

宜早不宜遲

EIP-2537 中提議的所有用途都不會阻礙 ETH 2.0 上線。而且,保證金合約的優化方案會帶來很好的效果;我們越早爲互操作性奠定基礎,就能越早開始創建這類應用的原型。該 EIP 有可能會放到接下來的以太坊柏林硬分叉中。如果你也想出一份力的話,可以在你喜歡的客戶端上支持 EIP-2537 的實現 :) 。

感謝 Kobi Gurkan 和  Alex Vlasov 的審閱。

(完)

原文鏈接: https://medium.com/@ralexstokes/what-eth2-needs-from-eth1-over-the-next-six-months-86b01863746

作者:Alex Stokes

翻譯&校對:閔敏 & 阿劍

本文由原作者授權 EthFans 翻譯及再出版。

相關文章