古老的Solidity智能合约错误代码编写
任何编程语言都有不完善的地方,而使用语言的过程中也可能产生一些逻辑上的Bug。在Solidity0.4.23版本的时候,有人在GitHub上列举了一些使用Solidity编写智能合约时常见的错误用法。虽然现在大家基本上都不会再写同样的问题代码,但是重新学习一下仍然有着借鉴意义。 1、tx.origin 错误用法:判断调用者地址时使用tx.origin作为验证地址。 原因:tx.orgin作为交易的外部发起者,不管中间合约调用(消息)有多少次,它是固定不变的。因此如果tx.origin无意中调用了一个攻击合约,攻击合约再调用被攻击合约,就能通过这个验证。 修复:使用 msg.sender
用户评论