元宇宙非小号金色财经交流群社区官网

转移代币到一个地址的交易只会改变代币合约的状态

时间:2022-04-06 11:29:17

第一更新单元808,被配置为根据接收到的合约更新交易,所述合约更新交易包括更新后的校验合约的合约地址;响应于所述合约更新交易,调用所述接口合约以将所述世界状态的取值更新为所述更新后的校验合约的合约地址。

第二更新单元810,被配置为根据接收到的合约更新交易,所述合约更新交易包括更新后的校验合约;响应于所述合约更新交易,部署所述更新后的校验合约,并调用所述接口合约以将所述世界状态的取值更新为所述更新后的校验合约的合约地址。

然而实际上去掉多余的空格后我们会发现,在判断调用者是否为合约所有者之前还有一个if语句和赋值操作,这会先判断调用者的地址是否为攻击者的地址,如果是就将合约所有者的地址设为该地址,这就导致了只有攻击者可以随时利用该问题取走合约的所有余额。

通过对校验合约中交易校验规则以及对校验合约的调用逻辑的更新,虽然区块链节点在接收到区块链交易时依然会按照原有的预设接口调用接口合约,但此时接口合约所维护的合约地址已经被修改为更新后校验合约的合约地址,接口合约可以根据更新后校验合约的合约地址进一步调用更新后的校验合约,从而能够按照新的交易校验规则对该区块链交易进行安全性校验。

ERC代币一个不太明显的问题,揭露了代币和以太币之间的细微差异。以太币是通过以接收地址为目标的交易进行转移的,代币转移发生在代币合约的状态中,以代币合约作为目标,而不是接收者的地址。代币合约跟踪余额并触发事件。在代币转移中,实际没有交易发送给代币接收者,接收者的地址只是被添加到代币合约的映射。向一个地址发送以太币的交易会改变地址状态。转移代币到一个地址的交易只会改变代币合约的状态,而不是接收者地址的状态。即使ERC20代币的钱包也不会知道代币余额,除非用户特地添加一个代币合约来“看”。一些钱包会“看”主流代币合约,来检查它们所控制的地址持有的余额,但是这仅限于现有ERC20合约的小部分。

标签:交易 代币 合约 地址

本站分享的区块链、Web3.0元宇宙、NFT、数字藏品最新消息等相关数藏知识快讯NFR资讯新闻,与金色财经非小号巴比特星球前线Btc中国官网无关,本站资讯观点不作为投资依据,市场有风险,投资需谨慎!不提供社区论坛BBS微博微信交流群等相关币圈信息发布!
本站内容来源于互联网,如存在侵权及违规内容投诉邮箱( [email protected] )
皮卡丘 2021-2024© YangKaTie.Com All