原文標題:《NEAR 公布 EVM 發布計劃,諸多亮點不容錯過》
NEAR 協議引入 EVM Runtime 支持對那些尋求替代鏈的以太坊開發者來說將會是一個重大變化。研究這一方案主要是因為以太坊缺少有效的擴容方案造成 gas 費十分高昂。與以太坊相比,NEAR EVM Runtime 做了大量改進:
- EVM 費用將比以太坊便宜 1000~10000 倍
- EVM Runtime 能夠處理的交易吞吐量將是以太坊當前的 10 倍左右
- NEAR 交易的最終確認時間需要 2 個區塊的確認(大約 2 秒鐘),這比以太坊一個區塊的確認時間(平均 13 秒)都要低很多
- 為了防止隨著 DApp 生態的增長,單一的 EVM Runtime 無法適應這一情況,NEAR 的分片方法可增加 EVM Runtime 的數量,每個 EVM Runtime 都相當于以太坊 1.0,它們之間的連接將使用異步調用執行,
- 完整的、不打折扣的以太坊兼容性,基于去中心化的 PoS Layer1 協議
上述內容意味著 NEAR EVM 將會解決以太坊生態當前及未來所面臨的計算難題,現有的智能合約和前端代碼的工程實現都無須更改。本文旨在向大家闡明 NEAR EVM 架構和協議的預期變化。我們也計劃在最終的主網發布之前利用本文收集 EVM 測試的一些需求,
對 EVM 2021 第一季度路線圖感興趣的用戶,可訪問以下鏈接查看:鏈接1、鏈接2
EVM 架構
最近幾周我們做了一項重要決定,計劃將大部分 EVM 執行移至合約級別,這意味著什么呢?
- EVM Runtime 在 NEAR 協議的介入將會大大減少,
- 將 EVM 作為預編譯會帶來很多痛點,很多人在 EVM 基礎通證的討論中已經指出了這一點,
- 將大部分代碼設置為合約級別將會簡化 EVM Runtime 早期的維護、升級和治理工作,系統對任何安全漏洞也能做出更快速的反應,
- 盡管 EVM 治理和可升級性辦法尚未最終確定,但彩虹橋在絕大多數情況下是可用的,
NEAR EVM 當前的架構情況如下:
EVM 智能合約實現了兩個主要接口:執行和通證。執行接口允許用戶發送普通的以太坊交易(比如用 MetaMask 或 web3.js 創建的交易)。這些交易會在 EVM Runtime (Sputnik VM)中被解碼(RLP)、驗證(secp256k)和執行,假如智能合約達不到預期性能的話,EVM Runtime 允許的操作可能會轉移至 NEAR 協議級別(并因此成為預編譯)。
比如,在協議級別,sha256() 和 keccak256() 預編譯已經可用了,在需要額外的預編譯的情況下, NEAR 驗證節點會被建議進行協議升級,我們會在完成足夠的負載測試后,收集需要的預編譯相關資訊,
根據討論結果,在 EVM 基礎通證方面,EVM Runtime 將會使用 Ether (ETH)維持原生余額,這意味著用戶在向 NEAR EVM 發送任何其他交易之前,應該使用彩虹橋工具將他的 ETH 轉移至 NEAR。為了避免對用戶造成困擾,我們決定 EVM 合約將會實現一個同質化通證接口,用來代表 NEAR 基礎 Runtime 以及 EVM Runtime 中的用戶的 ETH 余額。
此外,用戶能夠向 NEAR 充值和提取 ETH,我們會實現獨立的彩虹橋連接器接口來支持這一操作。從底層看,該接口會與核心的彩虹橋合約溝通,更多內容可參見 彩虹橋架構。
EVM 合約代碼和周邊工具可在 NEAR EVM 代碼庫中找到。通證接口目前在彩虹橋連接器中實現,不過,當開發完成后,該接口將會被并入 NEAR EVM 代碼庫。
使用 ETH 支付 gas 費
用戶如何使用以太坊支付交易執行費用是 NEAR EVM 設計中很重要的一個方面,相關方法如下:
- 為了幫助了解 NEAR Runtime 中的 ETH gas 費,我們使用了 eth_gasPrice 的 JSON-RPC 端點,返回值將被用于未來給 RPC 節點的 ETH 費用的計算
- 用戶使用工具(MetaMask, 兼容 Wallet Connect 的錢包 , CLI, JS 庫等)對普通的以太坊交易進行簽名,并將其發送至 RPC,
- RPC 將以太坊交易打包成 NEAR 交易并將其發送到 EVM 合約,
- 在協議層面,RPC 簽名被確認,初始的以太坊交易被傳遞給 EVM 合約
- EVM 合約解析并執行以太坊交易,同時計算 EVM gas 使用情況。在以太坊交易執行結束時,一些 NEAR gas 已經被銷毀(根據協議規則),ETH gas 僅僅是 EVM 合約中的一個計算得到的數字。
- 為了支付 NEAR gas 費,ETH 會被使用:EVM 合約計算交易費并將其由用戶賬戶轉移至 RPC 賬戶。
從用戶角度看,該方法僅僅是支付 ETH 給協議,不過事實上被用于計算的是 NEAR 通證,RPC 節點在用戶和 NEAR 區塊鏈之間扮演的是代理/中繼者的角色。
需要注意的是,作為第一步,RPC 將能夠提供足夠支付中繼服務費用的 ETH gas 價格,此外,用戶將能夠根據多個 RPC 節點的響應,決定使用哪個節點。未來中繼服務將會被結構化,操作原理與 OpenGSN 類似。有關將 ETH 作為基礎通證的更多資訊,可訪問以下 鏈接。
上線計劃
NEAR EVM 團隊的現有目標是在3月結束前在 NEAR 測試網上線一個全面運轉的 EVM 版本,該版本將包括全部功能,包括 ETH 彩虹橋(使用現有的測試網彩虹橋部署)、RPC 代理、EVM Runtime 執行環境。我們還計劃使用一種被稱為‘EVM Bully’的定制工具對 NEAR EVM 進行壓力測試,該工具可以記錄以太坊鏈(比如 Ropsten 測試鏈)上的交易,并將每筆交易在 EVM 合約上重新執行,
以下內容將不會在第一季度被完成:
- 高級的可升級性和治理計劃
- 廣泛的測試和穩定的代碼版本
- 額外的預編譯(如果需要的話)
- 由第三方進行的有賞金支持的大量測試
盡管在主網發布 EVM (假使不添加任何預編譯)完全取決于部署方——可以是任何人,因為代碼是開源的,我們仍然希望能夠從驗證節點和社區那里收集需求和指標。我們會使用這些需求對合約進行微調,最終發布一個可以滿足社區需求的版本,