新闻加密货币一笔 10 ETH 退款漏洞如何冻结 THORChain 十条链上的交易

一笔 10 ETH 退款漏洞如何冻结 THORChain 十条链上的交易

作者: Coindoo·

要点速览

  • •10 月 31 日以太坊一次单区块重组使一笔 10 ETH 存款触发了 THORChain 共 20 ETH 的付款:已入账的兑换交易和存款本身均获得退款。
  • •每个 THORChain 节点都记录了重组,但对存款的自动复核未能在观察结果于 THORChain 链上最终确认、退款发出之前完成。
  • •自动偿付能力检查器暂停了 ETH 兑换,节点运营商在约两分钟内停止了交易签名,并出于预防目的暂停了包括 ATOM、BCH、BSC、BTC、DOGE、ETH、LTC、SOL、TRON 和 ZEC 在内十条链的交易。
  • •收款人主动归还了多出的 10 ETH,但 THORChain 曾警告,恶意行为者在重组期间重用交易 nonce 可能从其金库获得付款且无归还理由。
  • •此次暂停意外延迟了被归因于朝鲜 TraderTraitor 组织的 64 亿美元 Binance 盗窃案资金的洗钱进程;THORChain 未设定恢复时间,并指出 5 月约 1070 万美元漏洞利用后,类似的修复和恢复耗时超过五周。
一笔 10 ETH 退款漏洞如何冻结 THORChain 十条链上的交易

跨链流动性协议 THORChain 因以太坊一次单区块重组导致其金库对同一笔 10 ETH 存款重复付款,随后冻结了十条区块链上的交易。该协议允许用户在其连接的区块链之间兑换资产:存款进入其金库,节点运营商为流出的付款签名。THORChain 于 11 月 1 日在 X 上的一篇帖子中说明了事件经过,称用户已归还多出的 10 ETH,核心开发人员正在开发必要的修改。

重组抹去了什么

10 月 31 日 11:34(UTC),以太坊用一个竞争版本替换了一个较新的区块。被丢弃的区块中包含一笔向 THORChain 金库的 10 ETH 存款,而协议的观察者此前已经看到并将其记入账目。

如此新的区块仍可能被替换。以太坊只有在约两个 epoch(大约 13 分钟)之后才将区块视为最终确认,THORChain 的说明中也没有任何内容表明最终确认的历史发生了变化。故障发生在 THORChain 内部,它在以太坊结算该存款之前就对其采取了行动。

随后发生了两笔付款。与已入账存款关联的兑换交易未达到价格限制,因此 THORChain 退还了 10 ETH。发送方在被接受链上的存款随后也获得了退款。一笔 10 ETH 存款进入金库,却有 20 ETH 流出。

THORChain 自己的警告说明了同一笔存款如何可能被重复计算。每个以太坊账户都用 nonce 为交易编号。当原始转账随其区块消失后,该 nonce 便可在被接受链上再次使用。THORChain 写道,在任何外部重组期间,"恶意行为者可以使用相同的 nonce 发起新交易"并从其金库获得付款。

每个节点都看到了重组,退款却仍然发出。

问题不在于检测。据 THORChain 称,每个节点都记录了这次重组,但用于确认存款状态的自动复核未能在 THORChain 在其自身链上最终确认观察结果之前完成。Bifrost 文档描述了当外部交易消失时观察结果如何被撤销。在 10 月 31 日,这一撤销未在退款发出前发生。

帖子没有说明复核为何超时,也没有说明修复将改变什么。这次赔付之所以被弥补,仅仅是因为收款人选择归还资金。正如 THORChain 所描述的,该漏洞会向触发它的人付款,而围绕未来重组安排交易时机的人没有任何理由归还资金。

为什么一个 10 ETH 的漏洞冻结了十条链

THORChain 的自动偿付能力检查器发现了资金缺口,并暂停了 ETH 兑换。在约两分钟内,节点运营商也停止了 ETH 交易签名,这阻止了金库的付款支出。随后他们出于预防目的暂停了其他链上的交易,因为 nonce 警告涵盖任何已连接链上的重组,而不仅是以太坊。

截至 11 月 1 日帖子发布时,THORChain 各项服务的状态:

  • 交易暂停: ATOM、BCH、BSC、BTC、DOGE、ETH、LTC、SOL、TRON、ZEC
  • 交易正常: AVAX、BASE、RUNE、XRPL
  • 对外付款: 10 月 31 日的状态数据显示,大多数暂停的链上签名仍然启用,因此待处理的付款可以流出,而新的兑换交易保持封锁。

交易状态依据 THORChain 11 月 1 日的帖子;签名状态依据 10 月 31 日报告的 THORChain 状态 API。

这份名单已经发生过一次变化。10 月 31 日晚,The Defiant 报道称,THORChain 的状态 API 显示 13 条外部链中有 12 条暂停交易。到 11 月 1 日的帖子发布时,其中三条已重新启用。THORChain 未说明为何这三条链率先恢复。

这些暂停都不会影响底层网络。比特币、以太坊及其他链继续出块;暂停只是限制了 THORChain 为每条链处理的业务。

从某种角度看,这一事件表明安全机制在正常运作。检查器无需人工干预即被触发,付款在几分钟内停止,风险敞口保持在 10 ETH。今年 5 月,在一次漏洞利用从金库抽走近 1070 万美元后,同样的检查不得不暂停交易和签名。检查器无法做到的是修复观察逻辑,这就是为什么在金库恢复完好之后,暂停范围反而扩大而非缓解。

三票即可暂停,四票方可推翻

此类暂停属于运营设置,THORChain 的治理文档允许少数节点修改这些设置。一项设置至少需要三个活跃节点投票,并且得票必须超过每个竞争值;平票则维持当前设置。

这一门槛此前已在公开场合受到过考验。在 2025 年 2 月洗钱从 Bybit 被盗资金的行动中,三名验证者投票暂停 ETH 交易,其他节点运营商几乎立即推翻了该投票。THORChain 在 11 月 1 日的说明中还指出,暂停某条链并不会让节点获得金库资产的控制权。停止活动与为转账签名是两项独立的权力。

一个 THORChain 拒绝用于对付洗钱者的暂停措施

9 月 28 日,在面临冻结 Bitget 被盗资金的呼声时,THORChain 在 X 上写道,网络暂停是为保护协议而设的紧急安全措施,并拒绝针对该笔资金使用。而重组漏洞恰恰属于这种紧急情况,其触发的暂停却意外拦住了洗钱者。

将 64 亿美元 Binance 被盗案归因于朝鲜 TraderTraitor 组织的 Chainalysis 于 11 月 1 日表示,THORChain "无意中延迟了对从 Binance 被盗的大量资金的洗钱"。这一延迟来自同一个让普通用户感到沮丧的特性:暂停的链不为任何人的兑换提供服务。

兑换恢复之前需要发生什么

THORChain 的开发者文档警告不要向暂停的链发送资金,因为在暂停解除之前,交易可能一直处于未处理状态。11 月 1 日的帖子没有给出恢复时间。节点运营商将在判断安全后重新启用每条链。

有三件事可以表明漏洞已被修复而非仅仅暂停:THORChain 公布其处理外部重组方式的更改、节点运营商升级到该版本,以及 ETH 签名与被暂停链上的交易一同恢复。在 5 月的漏洞利用之后,这一过程从紧急补丁到完整修复再到重新开放交易,耗时超过五周。那只是流程的参考,而非本次事件的时间表。

归还的 10 ETH 已了结 10 月 31 日的赔付。重新启用 ETH 签名将是运营商相信 THORChain 能够应对下一次重组的第一个公开信号。