Toc
  1. 一、简介
Toc
0 results found
bbcfive
msg.sender和tx.origin的区别

一、简介

  • msg.sender

    msg.sender (address): sender of the message (current call)
    指直接调用智能合约函数的账户地址或智能合约地址。

  • tx.origin

    tx.origin (address): sender of the transaction (full call chain)
    指调用智能合约函数的账户地址,只有账户地址可以是tx.origin。

avatar

您可能会注意到,账户地址和智能合约地址都可以是 msg.sender 但 tx.origin 将始终是账户/钱包地址。

强烈建议始终使用 msg.sender 进行授权或检查调用智能合约的地址。 并且永远不要使用 tx.origin 进行授权,因为这可能会使合约容易受到网络钓鱼攻击。

另外,一些NFT项目会使用msg.sender == tx.origin来限制科学家使用脚本来刷白名单,以此确保每一个交易来自真实user而非脚本合约。

本文翻译自:https://davidkathoh.medium.com/tx-origin-vs-msg-sender-93db7f234cb9

本文作者:bbcfive
版权声明:本文首发于bbcfive的博客,转载请注明出处!