Electron Labs新提案:將IBC整合到以太坊
BlockBeats 律動財經 2022-09-14 17:01
這是一篇關於如何將 IBC 帶到以太坊的文章。本文的目的是概述該項目的技術細節並獲得以太坊社區的支持。讓我們深入了解它。
IBC 代表 Inter Blockchain Communication - Cosmos 生態系統中的跨鏈標準。
問題背景
IBC 遵循輕客戶端原則,需要將源區塊鏈和目標區塊鏈的輕客戶端實現為智能合約,以驗證跨鏈交易。
這意味著,為了將 IBC 連接到 Eth,我們需要在以太坊上以智能合約方式運行 Tendermint 輕客戶端 (run the Tendermint light client on Ethereum as a solidity smart contract)。
但是這個過程 gas 消耗昂貴,因為這需要在 Solidity 中驗證數百個 ed25519 簽名,而 ed25519 預編譯在以太坊上不可用。一個 ed25519 需要 500K gas。
這意味著驗證完整的輕客戶端 header 將需要至少 5000 萬 gas 費(100 個驗證者),對於擁有 1000 個驗證者的更大的 cosmos 鏈,則高達 5 億 gas。
因此,為了在以太坊上更便宜地驗證簽名,我們需要新的方法。
解決方案
我們通過從 zk-rollups 獲得靈感來實現這一目標。我們沒有直接在以太坊上驗證 ed25519 的簽名,(並在 solidity 智能合約內執行曲線操作),而是構建了一個簽名有效性的 zk 證明,並在鏈上驗證該證明。
在 Electron Labs,我們構建了一個基於 circom 的庫,允許你為一批 Ed25519 簽名生成 zk-snark 證明。在這裡查看完整的實現 。
如何參與體驗?
我們已經部署了一個服務器,其端點允許你提交一批簽名並獲得 zk-proof 作為回報。你現在可以使用我們的文檔中給出的 API 參考進行測試。
數學實現細節
為 ed25519 創建 ZK 證明 是一個難題。
這是因為 ed25519 的 twisted Edwards curve 使用的 finite field 比 altbn128 曲線(由 zk-snarks 使用)使用的 finite field 大。在較小的 field 內執行大型 finite field 運算很困難,因為模數和乘法等一些基本運算可能變得非常低效。
為了解決這個問題,我們能夠找到 2^85 作為基數,來定義我們的 twisted Edwards curve 的曲線運算。由於 ed25519 素數 p=2^255-19 是 2^85 的近似倍數,我們能夠為基數 2^85 的數字想出有效的基本運算,如乘法和模法(在 25519 素數下)。
接下來,我們使用這些自定義操作在 ZK 電路中定義曲線操作,例如點加法、標量乘法和簽名驗證。
在這個文檔中很難公正地解釋這背後的數學細節,請參閱我們的詳細文檔解釋 。
單一簽名證明的性能
由於上述優化,我們能夠為單個簽名實現的性能數據如下:
Batch Prover 的性能
要了解系統級別的性能,我們需要查看 3 個參數 -
· 每個簽名的證明生成時間 ~ 9.6 秒(平均)
· 每批/證明的簽名數 = 100(最大值)
· 為批次生成 zk-proof 的時間 = 16 分鐘(基於 100 個簽名批次)
證明生成時間(幾乎)與每批簽名的數量呈線性關係。我們可以增加/減少每批簽名的數量,並且證明生成時間會相應改變。
證明製作時間將以延遲的形式顯現。為了減少這種情況,我們可以在一個 zk 證明中放入較少數量的簽名。但是,這意味著同樣的批次大小(或每個輕客戶端 header)將需要更多的證明,這將增加驗證該批次的 gas 成本。
因此,減少延遲會增加 gas 成本。
下面我們列出了根據延遲和參與該 cosmos 鏈的驗證者數量來驗證以太坊上的 Tendermint 輕客戶端 (LC) header 的預期成本。
我們可以讓用戶/cosmos 鏈決定他們想要使用的延遲和 gas 費用的選項。
這裡我們選擇 200 個驗證人和 50 個簽名作為證明的基礎分析。
Relayer 基礎設施成本
由於 Tendermint 出塊速度是~7 秒,而證明的生成時間是 8 分鐘,我們將需要多個驗證人並行來跟上區塊的生產速度。
所需的並行機器數 = 8 分鐘 *60 / 7 秒 = 69 台機器
我們建議使用 m5.8xlarge AWS 雲實例來生成證明。
因此,此基礎設施的成本 = 1.536 美元*69 = 106 美元/小時
每個輕客戶端 Header 的機器成本 = 106/3600/7 = 0.206 美元
預估總交易成本
基於 8 分鐘延遲和 200 個驗證器的假設。
鏈上輕客戶端驗證的總成本 = 0.206 = 18.1 美元
讓我們假設一個最壞的情況(從交易費用的角度來看),即一個區塊中只有一個跨鏈交易。然後驗證 LC 標頭的全部費用由該交易承擔。加上一些間接成本,驗證跨鏈交易大約是 20 美元。
假設每個區塊有 10 筆交易的樂觀情況,此成本將約為 2 美元,這與以太坊上 Uniswap 交易的成本相似。
怎樣降低 gas 成本和延遲(使用遞歸)?
為了將延遲降低到幾秒鐘,並將每筆交易的 gas 成本降低到幾美分,我們正在研究遞歸證明技術。這將使我們能夠並行生成多個證明,然後遞歸地將它們組合成一個證明。
我們正在評估市場上可用的各種遞歸庫,例如 plonky2,以及 Mina、Aztec 和 Starknet 團隊的作品。我們邀請任何從事遞歸工作的人與我們聯繫。
通過使用遞歸和基於硬體的加速,我們相信我們可以實現跨鏈交易的 5 秒以下的延遲。
未來,我們甚至可以將多個輕客戶端 header 組合在一個證明中,每個證明的成本僅為 4.5 美元,並且每個跨鏈交易的成本可能低於 1 美元。
系統設計概述
當前 IBC 設計(簡化)
新提議的 IBC 設計
提案設計要點
1.IBC 的界面保持不變。這使得採用非常容易,因為不需要新的開發文檔和開發人員的再教育。現有的代碼庫也將按原樣使用。
2. 應用鏈(appchain)上不需要治理更新
3. 以太坊上的 IBC 需要兩項更改:
a.Relayer 現在將只提交其有效性證明,而不是提交完整的輕客戶端 Header。
b. 以太坊側的鏈上輕客戶端模塊將包括一個 zk-proof 驗證器,而不是 ed25619 簽名驗證。
下一步計劃?
我們邀請以太坊和 ZK 社區提供他們的意見並幫助我們收集支持以使該提案成為現實。
執行計劃:
階段 1:我 ZK 引擎與 IBC 的集成
階段 2:通過遞歸證明和硬體加速將延遲降低到約 5 秒。
階段 3:部署一個演示應用鏈,通過 zk-IBC 連接到以太坊。
階段 4:運行演示應用程序鏈的設置,進行廣泛的測試,並使社區能夠測試交易。
階段 5:安全審計
階段 6:主網部署
暢行幣圈交易全攻略,專家駐群實戰交流
▌立即加入鉅亨買幣實戰交流 LINE 社群(點此入群)
不管是新手發問,還是老手交流,只要你想參與虛擬貨幣現貨交易、合約跟單、合約網格、量化交易、理財產品的投資,都歡迎入群討論學習!
- 加入鉅亨買幣LINE官方帳號索取免費課程
- 掌握全球財經資訊點我下載APP
文章標籤
上一篇
下一篇