发布于 2017-09-29 14:48:56
我只能想到两个半合法的用例:
tx.origin将更合适,因为该地址的所有者不能使用合同作为中间人来绕过您的块。请注意,这个块当然只会阻塞一个地址,而不是一个人。任何人都可以创建一个新地址并使用这个地址。还可以使用外部oracle、计时器或其他类型的服务来规避这个块,这些服务可以提供回调。tx.origin而不是msg.sender。我个人认为反对和删除tx.origin不会有什么问题。契约功能应该理想化地不知道是人类还是另一个契约在呼唤它。
我不知道目前有什么计划要删除它。
发布于 2017-09-29 21:46:06
只有当您对用户感兴趣时才可以使用tx.origin,但是安全性不是问题。我很开放,但我还没有看到一个同时满足这两个需求的令人信服的案例。这在原则上是一个很棒的想法,但由于它在实践中存在弱点,在我看来,这是一个“不使用”。
发布于 2018-09-04 16:55:57
如果一个聪明的合同,而不是某个EOA,会给你打电话:
tx.origin != msg.sender
如果您有兴趣知道这一点,这可以允许您管理。
https://ethereum.stackexchange.com/questions/27430
复制相似问题