EIP-2537:ETH 1.0可為ETH 2.0提供的支持
編者按:本文來自以太坊愛好者(ID:ethfans)以太坊愛好者(ID:ethfans)
以太坊愛好者(ID:ethfans)
一級標題
新的疆域
,作者:Alex Stokes,譯者&校對: 閔敏& 阿劍,Odaily經授權轉載。
新的疆域
圖片描述
ETH 2.0 Phase 0(又稱“信標鏈”)的主網預計將於今年晚些時候上線。眼下,我們應該思考這樣一個問題:現有網絡可以做些什麼來推動新的系統平滑上線?我們可以想像出一些令人振奮的應用場景,可以(在ETH 1.0 併入ETH 2.0 之前)利用兩個網絡之間的互操作性,但是事實表明,如果不能修改EVM(以太坊虛擬機)來適應ETH 2.0 系統使用的新密碼學元件,這些應用就將受阻。在此我希望為這些新的密碼學元件提供概要的說明,並解釋為什麼將其整合進EVM 有助於我們在Eth1 在遷移之前也能利用新系統的功能。
圖片描述
ETH 1.0 少了什麼?
以太坊區塊鏈上的所有數據都是公開的,因此我們必須使用密碼學簽名來確保特定交易反映相關方的訴求。以太坊所使用的簽名方案是以橢圓曲線為基礎的,使用的是名為secp256k1 的曲線。這條曲線上的點被用於名為ECDSA 的簽名方案,為我們的密碼學簽名賦予我們所期望的屬性。
圖片描述
,該橢圓曲線的屬性提高了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 解釋器之外被智能合約調用。
如何實現預編譯?
zk-SNARKs
以太坊協議的預編譯部分屬於稀缺資源,因此僅留給社區認為重要的計算邏輯。此外,預編譯需要通過硬分叉來部署(因為它們會改變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 實現),我們可以編寫一個“轉發” 智能合約來獲取保證金數據,驗證簽名然後僅將保證金數據發送至保證金合約。這個功能雖然不是保障保證金合約安全性的必備條件,但它確實能給那些與保證金合約交互的開發者帶來心理上的慰藉。
我們認為,在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 等等)。


