来源:区块链研究实验室
以太坊存储机制
在EVM中允许执行智能合约代码。合约状态或内存存储在智能合约地址中。可以将这种存储视为位于智能合约地址的无限长度的数据结构数组。存储机制确保存储位置没有冲突,并遵循一组规则。使用这些规则,我们可以解码任何合约的状态。解码存储在映射中的数据需要知道所使用的密钥。合约数据的解码使用RPC调用eth_getStorageAt进行。
插槽位置
变量在智能合约的存储阵列中的位置由代码中出现的顺序以及变量的大小决定。此位置称为插槽。如果一个变量小于256位,则EVM会尝试在空间中容纳一个以上的变量,因此一个以上的变量可能会占用存储阵列中单个插槽的空间。映射或数组将始终占据一个插槽。数组和映射元素的位置遵循一组特殊的哈希规则,本文将对此进行介绍,这些规则在以太坊文档中也有描述。
0x73b开头地址将8052.9万枚SAND转入CEX:金色财经报道,据SpotOnChain监测数据显示,0x73b开头地址在10-6小时前将8052.9万枚SAND(3234万美元)转入CEX,其中,7000万SAND转至Binance;1,000万SAND转至OKX;52.9万SAND转至Gemini。[2023/8/11 16:20:17]
下表提供了EVM遵循的分配规则的摘要。我们将看两个智能合约的示例,并使用表1中提供的规则对其进行解码
Origin Protocol考虑在加入NFT版税竞争后增加OGN质押奖励:3月21日消息,NFT平台Origin Protocol近日通过了在2023年6月1日之前将本地交易市场Origin Story的交易费用降至0%的提案(此前为1.25%),并正对“增加OGN质押的质押奖励”提案进行投票。这两项提案可能会重新平衡其代币经济学,因为它试图在零费用版税战争中竞争,同时又不排斥OGN代币的质押者,这些质押者依赖于平台现在大幅削减的费用收入。
据悉,“增加OGN质押的质押奖励”的提案旨在为3月8日开始的OGN质押第3季提供补贴的ETH和/或OGN,以提高OGN质押计划的吸引力。目标是增加有效的APY和抵押的OGN总量(目前为5600万枚)。目前提案支持率达100%,投票将于3月22日截止。[2023/3/21 13:16:17]
256位变量的简单示例
V神提出“秘密地址”以加强隐私保护:金色财经报道,以太坊联合创始人Vitalik Buterin周末发布了一篇新博客,寻求通过“隐形地址系统”加强对区块链用户的隐私保护。在他的文章中,V神指出,确保隐私仍然是生态系统面临的一大挑战,“改善这种状况是一个重要的问题”。隐形地址是由钱包生成的,并混淆公钥地址,以便以私密的方式进行交易。要访问这些私人交易,必须使用一个称为“消费密钥”的特殊密钥。鉴于区块链上的交易是公开的,隐私一直是以太坊生态系统的一个大问题。尽管已有一些隐私机制,例如Tornado Cash,但它只能隐藏“主流可替代资产,如ETH或主要的ERC-20代币”。隐形地址将提供一种机制,为NFT和ENS域名添加隐私保护。(Coindesk)[2023/1/24 11:27:24]
首先让我们看一个简单示例,所有变量都是256bit。这样做使我们无需考虑可变变量即可查看分配。
Vitalik Buterin批评比特币S2F模型给人带来错误的确定感:6月21日消息,以太坊创始人Vitalik Buterin在推特上批评比特币S2F模型(Stock-to-flow)给人带来一种错误的确定感,预定的数字会给人增加有害的感觉,盲从者应该受到嘲笑。PlanB回应了Vitalik的批评,称“人们正在为他们失败的项目或错误的投资寻找替罪羊。”
据悉,荷兰匿名机构投资者PlanB一直在推广比特币S2F模型,该模型因成功预测了几次比特币价格而获得大量关注。许多批评者指出的S2F模型的关键问题是片面估计,它只考虑BTC的供应方,而没有假设需求将继续增长。(Cointelegraph)[2022/6/21 4:43:16]
请注意,当对数字应用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部分将描述的智能合约规则编写的工具。
截至2020年3月末,全球数字通证总市值为1879.19亿美元,相比上月下跌963.05亿美元,跌幅为33.9%.
作者:姚前 来源:当代金融家 编者注:原标题为《证监会科技局姚前:区块链建设在疫情防控中的作用和价值》科技是抗击新冠疫情的重要手段.
来源:互链脉搏,作者:梁山花荣互链脉搏梳理了国内16家主要区块链底层平台的应用落地情况发现,超过七成底层平台开始将目标聚焦在各自细分领域,试图找到突破口,而剩余三成的底层平台仍在探索多领域应用.
在一系列MKR拍卖中,加密货币投资公司Paradigm是最大的赢家。此次拍卖于3月19日至3月28日进行,共筹得530万DAI。DAI是MakerDAO系统中的稳定币,与美元挂钩.
2020年4月6日,全球首个3D虚拟现实在线娱乐社交平台SensoriumGalaxy继上个月在全球发行其专属用币Senso之后.
DC/EP看起来快要来了,这对去中心化的加密数字货币是利空还是利好。利空派的理由主要是相互竞争,DC/EP和Libra都是和现在的各种币解决相同问题——货币支付&可编程的货币——是相竞争.