你可以在离线状态下使用MyCrypto生成交易签名,并在准备就绪时将它们发送至太极网络,或使用ethers.js(或其它代码库)编写代码来创建已签名交易。 使用带有自毁功能的智能合约 这个方法和使用太极网络差不多。我们可以使用智能合约将ETH转入账户,同时不会在公共交易池中暴露这笔交易。为此,我们可以通过一个安全的地址部署智能合约,并通过其构造函数将ETH发送到被黑的地址上(这将是一笔内部交易)。 通过部署该合约,我们可以将ETH和被黑地址的字符串发送至构造函数的参数。该合约会在同一笔交易中创建并自毁。其中,`selfdestruct()`意味着我们会在同一笔交易中清除该合约的区块链状态(因此这个合约是一次性的),并将ETH发送至被黑地址。 请注意,这个方法虽然有效,但是会额外增加成本,因为我们要做的操作不只是将ETH从一个账户转移到另一个账户。这个方法需要大约7万gas的成本。当gas价格处于高位时,仅gas成本就高达0.0112 ETH。 接下来,我们将通过太极网络广播来自被黑地址的已预先签署过的交易(这里也可以使用公共节点,请将账户中的全部ETH余额设为gas费,以免被「清道夫」抢跑(至少尽量降低这种可能性),因为在这种情况下,「清道夫」必须发送更多ETH到被黑账户才能在gas费竞价中胜出)。 使用Flashbots 一般来说,我们需要支付ETH才能让交易上链(因为交易费由交易发送方支付)。但是,有了Flashbots,我们就可以在不支付gas费(即交易费)的情况下将来自外部账户的交易上链,只需使用另一个账户中的资金来「贿赂」矿工即可。也就是说,我们不需要向被黑地址转入一笔ETH作为手续费,就可以取走这个地址上的代币。没错,就是这样! 这个方案需要用到两个账户——被黑账户和用来贿赂矿工的账户。 Flashbots团队已经发布了一个名为Flashbots/searcher-sponsored-tx的项目,其中介绍了如何通过这个方案将交易上链的基本原理。 我们将使用另一个账户中的资金来支付交易费,因此不需要被黑账户中有ETH。事实上,我们巴不得被黑账户里没有ETH,毕竟我们最不想看到的,就是骗子/「清道夫」察觉到我们想要取走资金,使用账户内原有的ETH来抢跑我们。 为了确保被黑账户中没有ETH,我们强烈推荐大家运行一个燃烧器机器人(burner bot)。 我们通常建议在一台以上的机器上运行燃烧器机器人,并针对每个实例使用不同的RPC节点。例如,使用Infura在本地运行一个燃烧器,并使用其它提供商(如Quiknode)在远程服务器上运行一个燃烧器。这样就可以实现冗余,以防高网络延迟或节点故障等问题(例如,速率限制、同步问题等)。 (责任编辑:admin) |