01.replay signature @TransferProxy()
2023-07-31 00:30:10 # 17.signature

replay signature @TransferProxy()

简介

  • 定义:TransferProxy() 又叫做代理转账,是一个新提出的 EIP,用户可以用代币支付交易费用,而不是在传统的 ERC20 合约中仅用以太币支付。

  • 代理转账旨在解决用户必须持有足够的以太币来支付交易费用才能自由转账的问题。虽然 EIP 仍在审核中,但许多项目已经抢先一步,将 Proxy Transfer 纳入自己的智能合约中,这就造就了很多安全问题

攻击流程

  1. A(发送者)发起一笔交易,将 10个 Token 1 发送给 B(接收者)。然后 Alice 用她的签名 → sig(A,B,10) 签署交易。
  2. 交易由代理进行。B 从 A那里得到了 10个 Token 1。
  3. B在新交易中重放 A的签名
  4. 新的交易由Proxy执行。B在未经 A 授权的情况下从 A 那里获取了 10个 Token 2