以太坊價格 以太坊價格
Ctrl+D 以太坊價格
ads

GAS:無版本區別的EVM(以太坊智能合約虛擬機)

Author:

Time:1900/1/1 0:00:00

編者注:本文為Parity開發者WeiTang寫作的,關于如何增強EVM后向兼容性的文章,改進Gas機制的方案堪稱大膽。

如果我們有機會可以重新設計EVM、提升其后向兼容性、讓它對功能升級更為友好,而且可以完全不必考慮我們現有的歷史包袱,我們該怎么做呢?

在這篇文章中,我會探究這個問題,并記錄下由此演化出來的技術說明和設計哲學。

目標

Web是沒有版本區別的,而且已經存在了幾十年。因此我在此假設,我們想做一個同樣沒有版本區別的EVM。

我們同樣希望保證,這種虛擬機具備良好的后向兼容性。也就是說,至少能良好兼容我們現有的合約,而且,也可以輕松加入新功能。

持有至少一枚BAYC NFT的錢包數量持續下降:6月23日消息,過去7天,很多持有時間較久BAYC持有者已經出售了他們的NFT,其中39個地址持有BAYC的時間已超過1年。持有至少一枚BAYC NFT的錢包數量一直在下降,并低于2021年10月的水平。[2023/6/23 21:55:30]

無效操作碼

要設計一個永續的EVM,最簡單可能也最重要的改動便是為合約部署添加一個驗證過程。并非所有的字節序列都是有效的EVM代碼,任何無效的操作碼都不應該被部署到鏈上,因為在未來,這些代碼可能會被分配以一個新的操作碼,有不一樣的功能。

此種檢查的技術詳述初次成文化是在EIP-1712中。簡要來說,在執行合約創建的狀態轉變函數之前,執行下列檢查:

數據:1000萬枚MATIC從Polygon Plasma Bridge轉到某未知地址:金色財經報道,WhaleAlert監測數據顯示,北京時間14:45:11,1000萬枚MATIC(約960萬美元)從Polygon Plasma Bridge轉移到某未知地址。[2023/5/2 14:38:18]

遍歷代碼的字節碼

如果代碼是一個PUSH(n)操作碼,則跳過接下來n個字節

如果字節碼是一個有效的操作碼,或者指定了無效指令,繼續

否則,捕捉到錯誤

上述檢查有點類似于jumpdestination檢查。注意,對于例外情形,我們在這里使用的是“trap”,下文我們會詳細解釋。

Sui:測試網當前有100個全球分布式驗證器 TPS近30萬:金色財經報道,Layer 1區塊鏈網絡Sui表示,其進行了一系列測試,以確定各種工作負載的當前峰值吞吐量以及完成時間。當前 Sui 測試網具有100個全球分布式驗證器,在各種工作負載上實現了從10,871TPS 到 297,000 TPS 的峰值吞吐量。Sui 的最終確定時間約為480毫秒。之后 Sui 將在基準測試工具的可擴展性和覆蓋范圍、水平可擴展性以支持跨多臺機器的驗證器內部擴展等方面進行優化。[2023/4/28 14:32:02]

功能調查

如果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

翻譯:阿劍

Tags:GASSUIBAYTPSgas幣價發行量SUIP價格CouponBaytps幣行情

加密貨幣
MKR:LOEX國際站關于MKR下線公告

尊敬的LOEx用戶:LOEx國際站將于9月10日18:00關閉MKR交易對和充幣,所有MKR/USDT、MKR/BTC、MKR/ETH交易對的掛單用戶.

1900/1/1 0:00:00
DRAP:Tim Draper加入EOS通訊軟件開發商MakeSense Labs董事會

風險投資家TimDraper加入了基于EOS區塊鏈的即時通訊應用開發商MakeSenseLabs的董事會.

1900/1/1 0:00:00
LIBRA:穆長春履新央行數研所掌門人 央行數字貨幣亮相在即

圖片來源:攝圖網 上證報記者近日獲悉,人民銀行數字貨幣研究所(下稱央行數研所)迎來了新任掌門人,央行支付結算司原副司長穆長春正式擔任所長,而備受關注的央行數字貨幣距離正式亮相近在咫尺.

1900/1/1 0:00:00
Kcoin:KKcoin權益紀念幣分紅第七周空投完成公告(2019-09-06)

親愛的KKcoin用戶: 您好! KKcoin權益紀念幣分紅已在昨日2019年09月05日,空投到持有KKcoin權益紀念幣的有令用戶賬戶中.

1900/1/1 0:00:00
比特幣:分析:比特幣在周六的漲幅基礎上難以為繼,本周漲幅仍超6%

FXstreet分析稱,BTC/USD周六上漲近2%,但難以繼續上漲。因為缺乏基本面驅動因素表明,這是對上周五大幅下跌的技術性修正.

1900/1/1 0:00:00
BNB:數觀平臺幣:逆勢平均翻2倍 三家位列TOP30

對于今年年后開啟的小牛行情而言,IEO即使不是直接“導火索”,也可以算是重要“助推劑”。各大交易所爭相開展IEO使得平臺幣擁有了交易媒介的新功能,平臺幣應聲而起.

1900/1/1 0:00:00
ads