編者注:本文為Parity開發者WeiTang寫作的,關于如何增強EVM后向兼容性的文章,改進Gas機制的方案堪稱大膽。
如果我們有機會可以重新設計EVM、提升其后向兼容性、讓它對功能升級更為友好,而且可以完全不必考慮我們現有的歷史包袱,我們該怎么做呢?
在這篇文章中,我會探究這個問題,并記錄下由此演化出來的技術說明和設計哲學。
目標
Web是沒有版本區別的,而且已經存在了幾十年。因此我在此假設,我們想做一個同樣沒有版本區別的EVM。
我們同樣希望保證,這種虛擬機具備良好的后向兼容性。也就是說,至少能良好兼容我們現有的合約,而且,也可以輕松加入新功能。
英國貿易文件數字化或將使用區塊鏈技術:金色財經報道,英國政府表示,英國的一項貿易文件數字化舉措可能會利用加密技術,《2023年數字化貿易文件法》于7月20日正式成為法律,旨在推翻數百年歷史的商業法,允許以數字方式存儲和分發貿易文件,該法律將于今年秋天生效。一位英國政府發言人表示,該法案是技術中立的,如果符合可靠性測試,將允許使用區塊鏈技術。[2023/7/27 16:02:26]
無效操作碼
要設計一個永續的EVM,最簡單可能也最重要的改動便是為合約部署添加一個驗證過程。并非所有的字節序列都是有效的EVM代碼,任何無效的操作碼都不應該被部署到鏈上,因為在未來,這些代碼可能會被分配以一個新的操作碼,有不一樣的功能。
數據:StarkNet橋接存儲TVL突破5000枚ETH,月增長超150%:金色財經報道,據DuneAnalytics最新數據顯示,以太坊Layer2擴容解決方案StarkNet跨鏈橋接存儲總價值已突破5000枚ETH,本文撰寫時達到5,054枚ETH,按照當前價格計算超過600萬美元,參與橋接交易的用戶數量為69,181。歷史數據顯示,StarkNet跨鏈橋接存儲總價值于10月27日突破2,000枚ETH,這意味著該指標月增長超150%;在其他L2跨鏈橋方面,當前Arbitrum跨鏈橋接存儲總價值為2,014,832枚ETH、Optimism為438,250枚ETH、zkSync為187,180枚ETH。[2022/11/28 21:05:51]
此種檢查的技術詳述初次成文化是在EIP-1712中。簡要來說,在執行合約創建的狀態轉變函數之前,執行下列檢查:
dYdX關于啟動550萬美元補助計劃的提案投票已獲通過:7月18日消息,dYdX關于啟動550萬美元補助計劃“dYdX Grants Program v1.5”的提案投票已獲通過,dYdX將在V4版本發布前6個月內啟動該計劃,并把550萬美元的DYDX從社區資金地址轉移到dYdX贈款多重簽名地址,DYDX的數量將在提交DIP時根據價格確定。[2022/7/18 2:20:13]
遍歷代碼的字節碼
如果代碼是一個PUSH(n)操作碼,則跳過接下來n個字節
如果字節碼是一個有效的操作碼,或者指定了無效指令,繼續
否則,捕捉到錯誤
上述檢查有點類似于jumpdestination檢查。注意,對于例外情形,我們在這里使用的是“trap”,下文我們會詳細解釋。
功能調查
如果EVM要消弭掉版本的差別,基于EVM的代碼執行應有能力調查出底層環境是否支持一種特定的功能。給定EVM所承擔的角色,我們總是希望一個已經定義好的操作碼的功能可以保持不變,并且還可以引入新的操作碼來添加功能。而一些合約可能在引入某些特定功能之前就已經部署上去了。這些合約可以安排一個備用的子程序,在EVM不支持某功能的時候就運行子程序,而一旦硬分叉激活后就立即開始使用新功能。功能調查組件就像這里要用到的跳轉器。因此,我們正式地定義一種新的操作碼HAS_FEATURE。
該操作碼接收一個堆棧參數。它會檢查該參數是否位于0到2^8之間,如果不是,就捕捉錯誤
如果參數不受支持,就把0x0推回棧中;否則就推入0x1
例外與捕捉
在EVM的運行過程中,可能有很多因素會導致執行失敗。單個交易可能因為耗盡Gas而失敗;調用棧中的每一層都可能單獨失敗,而其錯誤必須被父調用框架明確處理。這些特性給了我們一定的彈性,但對于要運行在區塊鏈上的合約來說,并不必然就是好事。這里,我們想重新定義一下,任何EVM本身發出的異常,都可以有trap行為,作為對fail的替代。也就是說,所有調用框架的所有執行過程中、消耗任意gas的時候、甚至被當前的狀態函數回滾變更的時候,都可以有trap。合約接下來就被會鼓勵使用返回值,在它們想跟父調用者交流非致命錯誤的時候。
Gas消耗量
過去的經驗已經證明,我們總是想調整Gas消耗量。因為我們要這樣做,我們不希望合約開發者對交易的Gas消耗量甚至是任何操作碼的Gas消耗量作任何假設。要實現這一點,只需將EVM內所有關于Gas消耗量的公開信息都移除。這樣Gas消耗量就成了一個外在于EVM、被隱藏起來的“實現上的細節”,只需在區塊層執行中妥善處理。正式地移除0x5a的Gas操作碼。此外,重新定義CALL、CALLCODE和DELEGATECALL,不再使用gas棧參數,而是采取現有執行框架中所有可用的Gas。
原文鏈接:
https://that.world/~essay/nevm/
作者:WeiTang
翻譯:阿劍
從央行層面關于央行數字貨幣的公開發聲可以看到,從今年七八月份以來,發聲尤其密集,預示著央行離發行中國的數字貨幣真的不遠了,屆時,中國將成為第一個真正意義上發行加密貨幣的主權國家.
1900/1/1 0:00:00觀察下BTC2日線歷史走勢,可看出目前BTC近期圍繞2日線MA50均線附近來回震蕩,這與BTC2016年初產量減半前幾個月的走勢比較相似.
1900/1/1 0:00:00尊敬的BIONE用戶: 原定于今日中午12時開啟的LOLTokenIEO申購活動,延遲到今日18時正式開啟。對于延遲給您帶來的不便,敬請諒解,感謝您對BIONE交易所長久的支持.
1900/1/1 0:00:00金色相對論之開啟實物合約新篇章,明星Bakkt能否成牛市之鑰,于9月9日10:00在金色財經社群進行直播.
1900/1/1 0:00:00文章系金色財經專欄作者供稿,發表言論僅代表其個人觀點,僅供學習交流!金色盤面不會主動提供任何交易指導,亦不會收取任何費用指導交易,請讀者仔細甄別,謹防上當.
1900/1/1 0:00:00尊敬的WBFex用戶:WBFex即將上線TiTC,具體上線時間請關注官方公告。項目介紹:全球首家運用平行鏈技術,打造旨在保護會員隱私權和數據權的去中心化社交公鏈,首家通過平行鏈、五緣譜等多項綜合.
1900/1/1 0:00:00