返回博客
Solana

被黑的 Solana 钱包无法发送代币?如何安全转移

有些 Solana drainer 不只是清空你的 SOL。它们会修改钱包账户本身,使它无法再发送 SOL,而你充入的任何 SOL 都可以被攻击者提走。你的代币和 NFT 通常还在原处,但常规的转移方式,也就是从钱包应用发送,要么失败,要么反而让攻击者拿到更多 SOL。

本指南说明发生了什么变化、为什么不应向该钱包发送 SOL,以及如何在由另一个钱包支付手续费的同时,把剩余资产转到新钱包。

如何判断你的 Solana 钱包已被转换?

钱包里明明还有代币,发送却总是失败;在区块浏览器中,这个地址显示为 authority 不是你的 nonce 账户,或显示为归某个程序所有的账户。连接 Sol Incinerator 时,它会显示“你的钱包已被黑客控制”,并附上接管时间和交易链接。

普通的 Solana 钱包是没有数据的简单 System Program 账户。被转换的钱包地址不变,但地址背后的账户已经改变。可以通过三种方式检查:

  1. 在区块浏览器中打开地址。 Solana Explorer 会为被转换的钱包显示 nonce 账户详情,包括一个 authority 地址。如果这个 authority 不是你拥有的地址,说明账户里的 SOL 由别人控制。
  2. 找到造成这一切的交易。 在我们检查的案例中,受害者联署了一笔包含两条 System Program 指令的交易:allocate 为钱包地址分配了 80 字节的数据,initializeNonce 把它变成以攻击者为 authority 的 durable nonce 账户。网络手续费由攻击者支付。在其中一个案例里,受害者的 SOL 在 30 秒后被提走。
  3. 把钱包连接到 Sol Incinerator。 它会在连接时读取账户,发现接管时会显示警告,并附上接管时间和 Solscan 链接。

有些 drainer 采用另一种改动:把地址分配给某个程序。对你来说结果相同:钱包再也无法自行支付费用。

为什么被黑的钱包无法支付网络手续费?

durable nonce 账户是 Solana 的一项常规功能,用于提前签署交易。它保存一个 nonce 值和一个 authority,只有这个 authority 能推进 nonce、更改 authority 或提走账户中的 SOL。当 drainer 把你的地址变成这种账户,它就成了你地址上 SOL 的 authority。

  • SOL 无法再以正常方式转出。 System Program 拒绝从带有数据的账户转出 SOL,而你的钱包现在带有 nonce 数据。
  • 手续费来自攻击者可以拿走的 SOL。 nonce 账户只能用其 rent 储备金以上的 SOL 支付网络手续费,而 authority 可以在这些 SOL 出现时立即提走。
  • 归程序所有的地址完全无法支付手续费。 Solana 只接受来自简单 System 账户或 nonce 账户的手续费。
  • 你无法撤销。 只有当前的 authority 才能更改 nonce 账户的 authority,所以你签署的任何交易都无法把它夺回。

你的代币则是另一回事。每个代币账户都把你的地址记录为所有者,代币程序检查的是你的签名,而不是钱包账户的状态。你的密钥仍然可以转移每一个代币和每一个 NFT,只需要由另一个钱包支付网络手续费。

不要向被黑地址发送 SOL,哪怕只是用来付手续费的一小笔。请假定有机器人在监视它。不要签署任何来自网站或私信、声称能“解锁”或“修复”钱包的请求:通过私信提供的付费恢复服务是被黑后常见的二次诈骗。

如何把代币转出被黑的 Solana 钱包?

使用由另一个钱包支付网络手续费、被黑钱包只以代币所有者身份签名的交易。钱包应用会向发送方钱包收取手续费,所以请使用专为被入侵钱包打造的恢复工具,例如 Sol Recovery,并把所有资产发送到新钱包。

Sol Recovery 是面向被入侵 Solana 钱包的独立服务。它能识别被转换的钱包,其免费账户可以把接收资产的钱包与支付手续费的钱包分开。

  1. 创建新钱包。 如果你曾在网站上输入过助记词或私钥,请用全新的助记词创建新钱包。旧助记词下的另一个账户并不是新钱包。
  2. 查看还剩什么。 把被黑地址粘贴到 Sol Recovery。它无需连接钱包,就能扫描代币、质押仓位、DeFi 仓位、收藏品和域名。
  3. 设置安全钱包和付款钱包。 把新钱包添加为目标地址,再添加一个单独的钱包来支付网络手续费。只给付款钱包充值,永远不要给被黑地址充值。
  4. 检查并签名。 被黑钱包以代币所有者身份签署每一笔转账。批准前请确认每笔交易的作用,并核实资产已经到账。

Sol Recovery 还为在固定时间解锁的质押中或锁定仓位提供机器人服务,在解锁的瞬间与攻击者抢先。该服务收取所恢复资产的 10%,并需要被黑钱包的私钥以便即时签名。这是一个真正关乎信任的决定:只分享已经被入侵的钱包的密钥,绝不要分享新钱包的助记词。

Sol Recovery 与 Sol Incinerator 没有关联。签名前请确认它当前的费用和每一笔交易。开发者也可以自己构建同样的转账:只要代币所有者签名,代币转账就有效,无论由哪个钱包支付手续费。

你还能领取代币账户里的 SOL 吗?

可以。空代币账户里有可退还的 rent 押金,关闭账户就能取回这些 SOL。普通领取会把 SOL 付给钱包本身,在这里就等于付给攻击者,所以 Sol Incinerator 会以不同方式处理被转换的钱包。

当你连接被转换的钱包时,Sol Incinerator 会要求你提供一个安全钱包地址,并把回收的 SOL 付到那里。它自行支付网络手续费,这笔手续费和常规清理费会从回收的 SOL 中扣除。不会向被黑地址发送任何东西。支持关闭空代币账户和提取多余的 rent;不支持销毁以及其他需要钱包自行支付手续费的操作。

转走代币后,这些代币账户会变空。如果你的恢复工具没有关闭它们,之后请再领取一次,把这部分 rent 也收回来。

你还应该检查什么?

  • 完整阅读接管交易。 它可能还转走了资产或批准了某个 delegate。请记下交易签名和所有陌生地址,以便举报。
  • 列出质押中和锁定的仓位。 有些仓位需要先解除质押或度过等待期才能转移,而攻击者可能也在等待同一时刻。
  • 在所有收款的地方替换旧地址。 交易所的提现地址列表、收款设置和 airdrop 登记中凡是付款到被黑地址的,现在都会付给攻击者。
  • 停止使用这个地址。 资产转出后,不要再使用这个钱包,哪怕是小额。
Sol Incinerator

Sol Incinerator

连接被黑的钱包,把其中可回收的 SOL 领取到安全钱包地址。不会向被黑地址发送任何东西。

立即试用

相关阅读

常见问题

为什么我无法从被黑的 Solana 钱包发送代币?

drainer 的交易可以把你的钱包地址变成由攻击者控制的 durable nonce 账户,或把该地址交给某个程序。网络手续费必须由钱包中的 SOL 支付,而攻击者可以提走账户储备金以上的任何 SOL,因此转账会失败,或者你充入的 SOL 会先被拿走。

我应该向被黑的钱包发送 SOL 来支付手续费吗?

不应该。如果钱包已被变成 nonce 账户,攻击者就是它的 nonce authority,可以提走 rent 储备金以上的全部金额,所以请假定有机器人在监视这个地址。请使用由另一个钱包支付网络手续费、被黑钱包只以代币所有者身份签名的工具。

被 nonce 接管后,我的代币和 NFT 还属于我吗?

通常仍属于你,除非同一笔交易也转走了它们或批准了某个 delegate。nonce 接管改变的是钱包本身的账户,而不是它拥有的代币账户,所以你的密钥仍然可以签署代币转账。在计划转移之前,请在区块浏览器中打开这笔接管交易,查看它改动的全部内容。

我还能领取空代币账户里的 SOL 吗?

可以。Sol Incinerator 会识别被转换的钱包,自行支付网络手续费,并把回收的 SOL 发送到你粘贴的安全钱包地址,而不是被黑的地址。网络手续费和常规清理费会从回收的 SOL 中扣除,不会向被黑地址发送任何东西。

我需要分享私钥才能救回资产吗?

普通转账不需要。恢复工具可以构建一笔由被黑钱包签名、由另一个钱包支付手续费的交易。Sol Recovery 针对质押中或锁定仓位的机器人服务会索要私钥,以便在解锁的瞬间行动。这是一个关乎信任的决定,并且绝不要分享新钱包的助记词。

被黑的 Solana 钱包无法发送代币?如何安全转移 | Sol Incinerator