比特幣交易所 比特幣交易所
Ctrl+D 比特幣交易所
ads

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

Author:

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

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

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

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

目標

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

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

DeFi投資服務平臺Otori One完成pre-seed輪融資:金色財經報道,DeFi投資服務平臺Otori One宣布完成pre-seed輪融資,但本次的具體融資金額暫未披露,Genesis Vault Capital領投。據悉,Otori團隊由來自美國銀行美林、摩根士丹利和德意志銀行等全球頂級金融機構人士組成,旨在為用戶提供具有不同風險狀況的策略來推動 DeFi 投資主流化,目前Otori已推出測試版,并計劃在今夏晚些時候添加看漲期權和區間遠期等投資策略。(einnews)[2023/7/18 11:02:45]

無效操作碼

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

Doodles與阿迪達斯達成合作,擬為參與其Discord論壇的NFT持有者提供Pharrell Pack獎勵:金色財經報道,阿迪達斯旗下Web3項目ALTS by adidas在社交媒體宣布已和藍籌NFT系列Doodles達成合作,后者將為在ALTS by adidas官方Discord服務器上參與競賽活動的ALTS by adidas持有者提供5個Pharrell Pack獎勵,據悉每位持有者最多可贏得一個Pharrell Pack,相關獎勵將會6月7日之前轉入獲得獎勵的用戶錢包。[2023/6/5 21:17:25]

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

B站首次發布“洛天依十周年系列”數字藏品,并已開放預約:7月12日消息,嗶哩嗶哩(B站)宣布發行“洛天依十周年系列”數字藏品,并已開放預約。每套藏品中包含一張“干杯!洛天依”聯名款原創數字頭像,一首可定制獨白的十周年特別紀念版數字音樂單曲《光與影的對白》,以及配套的專屬單曲封面。據悉,這套數字藏品由B站經洛天依官方授權,專為紀念洛天依十周年特別發行,這也是B站首次嘗試發行可定制的音樂數字藏品。

“洛天依十周年系列”是建立在高能鏈上的原創數字藏品,限量2022套,其中9套將作為獎品空投給用戶。中簽用戶可獲得融入定制獨白的紀念版單曲和配有專屬編號的音樂單曲封面。此外,擁有這款數字藏品的用戶也將享受一系列B站專屬權益。[2022/7/12 2:07:54]

遍歷代碼的字節碼

如果代碼是一個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

翻譯:阿劍

Tags:GASTORORITORIMegaShiboX InuProtectors of the RealmSensoriumTorii Finance

萊特幣最新價格
提振全球經濟發展 貨幣政策還能奏效嗎?_加密貨幣

金色財經比特幣9月9日訊RickRieder是貝萊特集團全球固定收益首席投資官,也是其全球分配投資團隊負責人,他最近談到如今的經濟和貨幣政策狀況,并認為如果經濟增長停滯不前.

1900/1/1 0:00:00
IBM在區塊鏈聯盟Hyperledger技術委員會席位增至6位,引發外界擔憂_區塊鏈

據Coindesk今日消息,上周宣布的11個2019-2020區塊鏈聯盟Hyperledger技術指導委員會成員中有6個是IBM員工.

1900/1/1 0:00:00
BTC可能在9月末重回主趨勢拉升走勢_Huobi

BTC周線收陽,并成看漲吞沒形態,陽線實體將上周的陰實體吞沒,表明大趨勢方向依舊向好。而且,前期BTC自19年上半年強勢站上7000美元開始,整體走勢仍處于2015年上一輪牛市初始階段形成的長期.

1900/1/1 0:00:00
中幣(ZB)關于上線UP首期項目LivenPay(LVN)的公告_VEN

尊敬的中幣用戶: 中幣決定在“活動區”上線UP首期項目LivenPay,現就相關事項公告如下:1、項目名稱:LivenPay;2、UP申購時間:香港時間2019年9月12日14:00至2019年.

1900/1/1 0:00:00
分析:比特幣全球搜索量創新高,這可能和巴哈馬颶風有關_比特幣

據Cointelegraph報道,最新的谷歌趨勢數據顯示,比特幣價格指數“BTC”在互聯網上的搜索量飆升至前所未有的高點.

1900/1/1 0:00:00
冰火兩重天:比特幣牛市 山寨幣卻一路下跌 Staking價值縮水48%| Fun Twitter_SSE

01 Staking價值近三月縮水48%TheBlock發布了一份Staking分析報告指出:Staking生態現在有48億美金資金體量,公司和投資者將繼續參與其中,盡管目前行業表現并不樂觀.

1900/1/1 0:00:00
ads