Skip to content

Latest commit

 

History

History
20 lines (12 loc) · 963 Bytes

ERC20Permit.md

File metadata and controls

20 lines (12 loc) · 963 Bytes

ERC20Permit

EIP-2612 提出了 ERC20Permit,扩展了 ERC20 标准,添加了一个 permit 函数,允许用户通过 EIP-712 签 名修改授权,而不是通过 msg.sender。

  • 授权这步仅需用户在链下签名,减少一笔交易
  • 签名后,用户可以委托第三方进行后续交易,不需要持有 ETH:用户 A 可以将签名发送给 拥有gas的第三方 B,委托 B 来执行后续交易

安全问题

ERC20Permit 利用链下签名进行授权给用户带来了便利,同时带来了风险。一些黑客会利用 这一特性进行钓鱼攻击,骗取用户签名并盗取资产。 签名时,一定要谨慎的阅读签名内容! 一些合约在集成permit时,也会带来DoS(拒绝服务)的风险。因为permit在执行时会用掉当 前的nonce值,如果合约的函数中包含permit操作,则攻击者可以通过抢跑执行permit从而使 得目标交易因为nonce被占用而回滚。