您能检测出msg.sender是否是智能合约?

时间:2018-09-23 21:07:41

标签: solidity

如果我有一个实体函数被调用,该函数是否可以知道msg.sender是否是智能合约?

2 个答案:

答案 0 :(得分:2)

是的,您可以:

Statement -> Label -> Identifier : Statement -> Identifier : WhileStatement

答案 1 :(得分:0)

我认为没有安全的方法来检测msg.sender是否为智能合约,因为可以通过执行智能合约的构造函数的调用来破解它。

Etherenaut的第14级“ Gatekeeper Two”是关于此问题的。参见以下说明: Ethernaut Lvl 14 Gatekeeper 2 Walkthrough: How contracts initialize (and how to do bitwise operations)

  如果extcodesize是发送方合同原始构造函数中的子例程,则

extcodesize(sender)应该返回0