比特幣行情 比特幣行情
Ctrl+D 比特幣行情
ads
首頁 > FIL > Info

GET:詳解以太坊虛擬機(EVM)的數據存儲機制

Author:

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

來源:區塊鏈研究實驗室

以太坊存儲機制

在EVM中允許執行智能合約代碼。合約狀態或內存存儲在智能合約地址中。可以將這種存儲視為位于智能合約地址的無限長度的數據結構數組。存儲機制確保存儲位置沒有沖突,并遵循一組規則。使用這些規則,我們可以解碼任何合約的狀態。解碼存儲在映射中的數據需要知道所使用的密鑰。合約數據的解碼使用RPC調用eth_getStorageAt進行。

插槽位置

變量在智能合約的存儲陣列中的位置由代碼中出現的順序以及變量的大小決定。此位置稱為插槽。如果一個變量小于256位,則EVM會嘗試在空間中容納一個以上的變量,因此一個以上的變量可能會占用存儲陣列中單個插槽的空間。映射或數組將始終占據一個插槽。數組和映射元素的位置遵循一組特殊的哈希規則,本文將對此進行介紹,這些規則在以太坊文檔中也有描述。

Binance Labs承諾投資500萬美元后,Curve盤中拉漲近5%:金色財經報道,自Binance Labs承諾向 Curve DAO代幣(CRV)投資500萬美元后,CRV 上漲4.8%至64美分,然后回落至61美分。

根據 DefiLlama 的數據, Curve是一種穩定的掉期和去中心化交易所,鎖定的總價值 (TVL)約為24億美元。[2023/8/11 16:18:54]

下表提供了EVM遵循的分配規則的摘要。我們將看兩個智能合約的示例,并使用表1中提供的規則對其進行解碼

韓國檢方對姜氏兄妹就涉嫌操縱Bithumb股價及挪用資金進行傳喚調查:1月9日消息,韓國首爾南部地方檢察廳今日傳喚被稱為“加密交易所Bithumb實際所有者”的姜鐘賢接受調查,且上周已兩次傳喚姜鐘賢的妹妹、Vidente(Bithumb最大股東)首席執行官姜智妍接受訊問。姜氏兄妹涉嫌操縱Bithumb股價、擾亂資本市場,并挪用公司資金。

報道稱,韓國檢方正在調查姜氏兄妹是否通過散布出售Bithumb的虛假信息操縱股價,以及是否通過頻繁發行可轉換債券轉移公司資金并通過這種方式建立行賄基金。

此前去年10月份消息,韓國檢方對Bithumb相關的多家公司進行扣押搜查,包括INBIOGEN、Vidente、Bucket Studio等;去年12月消息,Vidente的副總裁在接受韓國檢方調查期間跳樓自殺。(JTBC)[2023/1/9 11:02:28]

Alameda近期清算ERC-20系Token并將其轉換為BTC:12月29日消息,鏈上數據顯示,Alameda Research持有的幾個代幣在周三晚些時候被出售,價值數百萬美元。鏈上數據顯示基于以太坊的代幣,如USDC、DAI、CRV、ETH、CVX等,從幾個錢包合并到兩個錢包,后來出售換成USDT。ZachXBT指出,資金隨后被兌換為BTC。

根據Arkham Intelligence的數據,Alameda仍持有價值超過1.12億美元的各種加密貨幣,低于先前報道的11月中旬持有的1.4億美元。(CoinDesk)[2022/12/29 22:14:16]

256位變量的簡單示例

比特幣全網未確認交易數量為6500筆:金色財經報道,BTC.com數據顯示,目前比特幣全網未確認交易數量為6500筆,全網算力為229.43 EH/s,24小時交易速率為2.50交易/s,目前全網難度為32.05 T,預測下次難度上調0.16%至32.10 T,距離調整還剩9天3小時。[2022/9/19 7:04:39]

首先讓我們看一個簡單示例,所有變量都是256bit。這樣做使我們無需考慮可變變量即可查看分配。

請注意,當對數字應用keccack哈希時,數字必須是0填充的64位值。

所有解碼都是使用以太坊RPC調用eth_getStorageAt執行的,在本文中將其表示為GetStorageAt。可以使用任何語言打包程序來調用此RPCapi。

下圖顯示了如何對智能合約的地址和傳遞給它的位置值進行GetStorageAt調用。圖1左側的數字是變量的位置。對于基類型,可以將此位置傳遞到GetStorageAt以獲取變量值。對于數組,位置將返回數組的長度。

通過將Keccack哈希傳遞給索引為0的GetStorageAt來解碼數組索引。數組的每個后續索引位于與位置求和的哈希值處。可以認為這是訪問數組的指針并增加其位置以查找每個元素,類似于C或C++。

傳遞給每個鍵的GetStoragetAt的位置值是鍵的keccack哈希值和映射聲明的位置。對于多維映射,將密鑰和變量位置遞歸調用Keccack哈希值。參見圖1中的示例進行說明。

接下來,我們來看一個發生變量打包的示例。打包要記住的是:

1.它僅按出現順序適用于基本變量類型。EVM將按照代碼中列出的順序在256位空間中打包盡可能多的變量。

2.每個映射和數組變量將占用一個新的插槽。

3.數組變量映射將遵循打包規則。也就是說,如果一個元素小于256位,則陣列的多個索引將占用存儲陣列中的單個插槽。

圖2顯示并提供了發生的打包的說明。當類型的長度小于256位時,EVM嘗試將其他變量打包到插槽中。EVM按列出的順序選擇要打包的變量。映射和數組始終出現在新位置。但是打包規則仍適用于解碼數組索引,打包規則仍適用于存儲在映射中的結構。

有關這種情況下如何存儲變量的說明,請參見圖2。

繼承

關于繼承的說明。當智能合約繼承其他智能合約時,基本智能合約的存儲變量將按繼承順序占據存儲陣列的第一個插槽。子類的存儲變量將隨后出現。

結論

如前所述,我們在本文介紹的規則來解碼以太坊智能合約的存儲機制。在接下來的,第2部分將描述的智能合約規則編寫的工具。

Tags:GETTSTETSBITbitGet靠譜嗎bitstamp交易平臺正規嗎LETSGO幣rabbitking幣縮寫

FIL
DAI:DAI會成為DeFi最大的弱點嗎?

作者:XiuMu 來源:比推bitpush.news去中心化金融近年來一直是加密行業最常用的流行語之一.

1900/1/1 0:00:00
數字貨幣:2020年數字貨幣市場分析:專業化數字貨幣對沖基金受歡迎,投資數字資產已成趨勢

作者:RolandRoventa 編譯:子銘 來源:加密谷 摘要: 機構對數字貨幣資產的需求來自于客戶一端.

1900/1/1 0:00:00
區塊鏈:“互聯網女皇”萬字報告告訴你:新冠疫情過后,世界將會怎樣?

曾經投資Slack和Uber等創業公司的硅谷風投公司BondCapital近日通過電子郵件告訴投資者,新冠疫情的高速傳播和影響與1906年舊金山大地震相似.

1900/1/1 0:00:00
數字貨幣:巴比特專欄 | Libra對戰DCEP,張一鳴周亞輝李學凌滿倉全球數字化

最近兩天有幾個消息值得大家重點關注。一是中國國家數字貨幣DCEP開始內測,農行的數字貨幣錢包已經放出下載鏈接,工行內部發文到基層準備推廣,支付寶和微信也開始放風.

1900/1/1 0:00:00
COI:SHA-256、MD-5…… 哈希散列函數這些原理你懂了嗎?

作者:wagslane 譯者:火火醬 出品:區塊鏈大本營 本文對哈希函數進行簡要的介紹,旨在幫助讀者理解為什么要使用哈希函數,以及其基本工作原理.

1900/1/1 0:00:00
比特幣:比特幣S2F跨資產模型:預測比特幣價格的新思維

前言:PlanB之前提出了S2F模型,得到比特幣社區的極大推崇。而如今PlanB在S2F基礎上提出新的思考模式:S2F跨資產模型.

1900/1/1 0:00:00
ads