來源:區塊鏈研究實驗室
以太坊存儲機制
在EVM中允許執行智能合約代碼。合約狀態或內存存儲在智能合約地址中。可以將這種存儲視為位于智能合約地址的無限長度的數據結構數組。存儲機制確保存儲位置沒有沖突,并遵循一組規則。使用這些規則,我們可以解碼任何合約的狀態。解碼存儲在映射中的數據需要知道所使用的密鑰。合約數據的解碼使用RPC調用eth_getStorageAt進行。
插槽位置
變量在智能合約的存儲陣列中的位置由代碼中出現的順序以及變量的大小決定。此位置稱為插槽。如果一個變量小于256位,則EVM會嘗試在空間中容納一個以上的變量,因此一個以上的變量可能會占用存儲陣列中單個插槽的空間。映射或數組將始終占據一個插槽。數組和映射元素的位置遵循一組特殊的哈希規則,本文將對此進行介紹,這些規則在以太坊文檔中也有描述。
Cronos Labs啟動第二批1億美元加速器計劃以推進Web3 dApp開發:1月31日消息,Cronos 生態系統發展的區塊鏈創業加速器 Cronos Labs 宣布開放第二批 Cronos 加速器計劃,該加速器計劃規模為 1 億美元。
據悉,第二批為期三個月的加速器計劃將于 2023 年 4 月 24 日開始,申請截止日期為 2023 年 3 月 24 日,主要專注于 DeFi、GameFi、SocialFi 和基礎設施等加密垂直領域,選中項目可以獲得 3 萬美元的 pre-seed 投資,并有機會獲得后續 30 萬美元的種子輪融資,以及參加指導會議、定制大師班和與行業專家的爐邊談話。[2023/1/31 11:39:07]
下表提供了EVM遵循的分配規則的摘要。我們將看兩個智能合約的示例,并使用表1中提供的規則對其進行解碼
加密交易平臺Uphold要求法院駁回Cred對其的訴訟指控:1月12日消息,加密交易平臺Uphold否認欠加密借貸平臺Cred的清算信托約7.84億美元,并提出動議要求駁回Cred于2022年6月對該公司提起的訴訟中的所有罪名。Uphold稱Cred清算信托對其的指控不連貫、結論性和陰謀性,敦促特拉華州破產法院駁回這些指控,并表示與Cred的破產無關。
此前報道,去年6月Cred的清算信托起訴Uphold并索賠7.84億美元,稱其推出的產品CredEarn導致Cred在2020年破產。[2023/1/12 11:08:08]
加密貨幣保險公司Evertas完成1400萬美元A輪融資:金色財經報道,加密貨幣保險公司Evertas完成 1400 萬美元 A 輪融資,由 Polychain Capital 領投,其他投資者有 SinoGlobal Capital、CMT Digital Ventures、Foundation Capital、Morgan Creek、Bloccelerate、network0、Matrixport 和 HashKey。個人投資者包括 Balaji Srinivasan、Andrew Keys、Colleen Sullivan、Patrick McDonald 和 David Roebuck。加上去年獲得的580 萬美元種子資金,使公司的外部投資總額達到 1980 萬美元。(coindesk)[2022/12/12 21:39:35]
256位變量的簡單示例
加密交易所Liquid Global暫停所有提款:11月15日消息,加密交易所Liquid Global表示,由于FTX(Quoine Pte.Ltd的最終受益所有人)根據破產法第11章申請破產保護,Liquid Exchage(Quoin Pte.)暫停所有提款,包括法定貨幣和加密貨幣。
在另行通知之前,Liquid Global建議不要存入法幣或加密,并將在可用時提供更新。[2022/11/15 13:09:02]
首先讓我們看一個簡單示例,所有變量都是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部分將描述的智能合約規則編寫的工具。
來源:每日經濟新聞 “在這里,你不光能見證歷史,很可能創造歷史,改變世界。”能夠說出這種豪言壯語的招聘公告估計不多見,能有機會真正做改變世界的工作,更是機會不多,但現在看起來確實有了!4月25日.
1900/1/1 0:00:00幣安收購CMC后,交易量數據卻出現了極其詭異的一幕。幣信研究院院長熊越最先指出,幣安調整數據僅為原先的1/4,而其他交易所都沒有變化,因此是CMC在指控幣安刷量? 考慮到之前幣安下架了FTX杠桿.
1900/1/1 0:00:00本文來源:騰訊產業互聯網,原題:馬化騰為《產業區塊鏈》作序:區塊鏈全面擁抱產業互聯網》世界讀書日在即,騰訊正式發布深度解讀產業區塊鏈戰略書籍——《產業區塊鏈》新書.
1900/1/1 0:00:00作者:XiuMu 來源:比推bitpush.news去中心化金融近年來一直是加密行業最常用的流行語之一.
1900/1/1 0:00:00據Trustnodes4月16日報道,PrysmaticLabs正準備啟動代碼規范版本0.11.1上最新的以太坊2.0測試網,目前已經有超過22000枚ETH存入了測試網.
1900/1/1 0:00:00在之前的兩篇文章中,我們從鏈上大數據的宏觀角度解析了3月的整體數據情況,接著又以幣安、火幣、Okex三家交易所巨頭的鏈上數據趨勢剖析他們的鏈上數據行為體現的特征.
1900/1/1 0:00:00