今天在批量 Mint 以太坊主网上的 Base NFT 的时候,有小伙伴误连上了 Optimism 网络,将 Mint 资金打到了 Optimism 链上和以太坊主网相同的合约地址中;当然,最后通过 #MoneyStory 团队的努力,也成功将资金找回返还。 这就引出了一个问题:在以太坊上控制的合约地址,同样的地址在其他链上能被控制吗?这个问题和之前慢雾披露的 2000 万 OP 代币被盗关键:交易重放 有相似之处,本质上都是如何在另一条链上创建出相同的合约地址。 这次遇到的问题还算是一个比较通用的问题,所以从技术的视角,给大家解析一下如何将这笔资金解救出来。可以将这篇文章收藏起来,下次发生类似的错误时,也不失为是一种可行的解决办法。 在讲解之前,我们需要先了解部署合约生成地址的规则。通常有两种方式。 第一种方式: 通过创建者(交易发起者)和创建者发送过的交易数量(nonce)编号后进行 hash 计算确定合约地址。例如,当nonce为1时,计算合约地址的公式为:address(keccak256(0xd6, 0x94, sender, nonce))。大多数情况下,这种方式是部...