操作指南

在错误网络上收到的 EVM 多签资产的恢复

你有一个 Ownbit 的 EVM 多签,但资产被转到了你本来没计划的链上。资金并没有丢失。Ownbit 多签合约的地址由它的部署地址(deploy 地址)及该地址的 nonce 推导得出——与链无关——因此同一个部署地址在任何 EVM 链上都会得到相同的合约地址。这是这里每一种恢复方法的关键。

你属于哪种情况?

具体路径取决于 Ownbit 是否在你资金所落的那条链上支持多签。

A · 支持的链

ETH、BSC、Base、Arbitrum、Polygon——用同一个部署钱包在该链上重新创建多签。

B · 不支持的链

例如 Optimism——把一个小小的 Sweeper 合约部署到相同地址,再把资金取出。

A. 该链是 Ownbit 多签支持的网络

直接在那条链上再创建一次多签即可。因为合约地址只取决于部署地址,在该链重新部署会把合约部署到你资金所在的同一个地址,资产随即可以通过正常的多签流程转出。

  • 必须用同一个部署钱包去部署。这是唯一的硬性要求——它决定了地址是否一致。
  • 建议使用相同的参与者与相同的门限/模式(更清晰),但技术上并非必须。
  • 多签热钱包会用该热钱包自动部署;多签观察钱包则让你选择一个个人热钱包来执行部署。

部署完成后,在该链上打开钱包,像平时一样把资产转出即可。

B. 该链不是 Ownbit 多签支持的网络——部署 Sweeper

这里无法重建多签,所以改为把一个小小的 Sweeper 合约部署到相同地址,再调用它把卡住的资产转到你的掌控之下。把多签的部署地址作为普通单私钥钱包导入,给它充一点 gas,再用它部署 Sweeper——由于地址由部署账户推导,Sweeper 会落在持有你资金的那个合约地址上。

保持 nonce 未被使用

部署地址在目标链上必须没有发过任何转出交易(它的 nonce 必须未被使用),否则创建出来的地址会对不上。收款是没关系的。千万不要从这个钱包乱发交易——每发一笔都会推进 nonce,可能让资金永远无法取回。

导出多签的部署私钥

在 Ownbit 中对该多签打开 导出私钥,选择带有 (MS_DEPLOY_INDEX) 标记的地址。如果该多签是由你手动选择的某个个人热钱包部署的,则改为导出那个钱包的私钥。

把它导入为一个临时的标准钱包

用该私钥导入一个钱包,私钥类型选 ETH(64 位十六进制)。这个临时单私钥钱包现在控制着部署地址。

在目标网络上充一点 gas

切换到目标网络的原生币(如 ETH · Optimism),持有少量 gas。此时先不要转出任何东西。

部署 Sweeper 合约

在目标网络上点击发送,把接收地址设为 0x0(在 Ownbit 里这表示“部署合约”),金额 = 0。在确认页打开高级选项,设置足够的 Gas Limit,把 Sweeper 字节码粘贴到 Hex 数据中。

核对创建出的地址与你的多签地址是否一致

在区块浏览器上,该交易显示为一次合约创建——创建出的地址必须等于你的多签地址。如果对不上,请查看该多签当初使用的创建 nonce,并用同一个钱包重复部署相应的次数。

把资产 sweep 回自己

再次发送到刚创建的合约地址(即你的多签地址),金额 = 0,把 sweep 调用数据粘贴到 Hex 数据中。资金会到达你的部署钱包;如果某次 sweep 失败(例如 gas 太低),直接重试即可。

构造 sweep 调用数据

在 sweep 步骤中,把下面两者之一作为 Hex 数据填入:

方法Hex 数据
Sweep 一个 ERC-20 代币——sweep(address)0x01681a62 + 24 个 0 + 代币合约地址(左补零至 32 字节)
Sweep 原生币——sweepETH()0xd47f6877(无参数)

这是一个技术性、开发者级别的恢复。用于部署的完整 Sweeper 字节码、供参考的 Sweeper.sol 源码,以及带图的实操步骤,详情见指南:EVM 多签——恢复存错网络收到的资金

FAQ

常见问题

我的 EVM 多签在我未曾计划的链上收到了资金——它们丢了吗?

没有。多签合约地址由它的部署地址(及 nonce)推导,与链无关,因此同一个部署地址在任何 EVM 链上都会得到相同的合约地址——这正是恢复得以可能的原因。

该链是 Ownbit 多签支持的网络——我该怎么做?

只需用同一个部署钱包在那条链上重新创建多签。合约会重新部署到持有你资金的那个确切地址,随后你就能通过正常的多签流程花费它们。

该链不受支持——我如何恢复?

导出多签的部署私钥,把它作为临时 ETH 钱包导入,充一点 gas,部署 Sweeper 合约(接收地址 0x0 + Hex 数据里填字节码),让它落在你的多签地址上,然后调用 sweep()/sweepETH() 把资金拉回到你的部署地址。

为什么我必须避免从部署钱包发送交易?

创建出的合约地址取决于部署地址的 nonce。任何转出交易都会推进 nonce,从而让 Sweeper 落在一个不同的地址上,资金可能变得永远无法取回。

最近更新:

下载

下载 Ownbit

安装 App,然后按你的需求设置冷钱包或多签。