X100 治理缺陷导致 600 万美元损失,因闪电贷而起

By: cryptoslate.com|2026/10/28 02:10:15

攻击者在 X100 上获得了两个治理席位,该项目的财政由参议院管理,并在 10 月 24 日通过单个区块链交易批准了一项财政交易并偿还了闪电贷。

在 Arkadiko,一个用户可以以金库抵押品借款的借贷协议中,投票大约持续了五天,但提前两天结束,导致恶意合约对金库资产的控制。人们在决定性投票前不久购买了投票代币,提案在投票结束时生效。

这些事件暴露了在投入资金、获得投票资格和执行批准行动之间的不同漏洞。X100 代币应锁定一年,因此较长的代币锁定可以施加成本,而不会延迟权力。

与此同时,较长的投票可以提供通知,同时仍然允许晚期购买。两者都不会在决策可执行后自动创造反应时间。

X100 的锁定股份获得了即时权力

X100 的 Freezer 合约持有冻结的 X 代币,并提供用于对其参议院候选人进行排名的股份。其锁定条款为一年、三年或五年,但参议院资格使用当前冻结的金额,没有最低股份年龄。

在 10 月 24 日的首次攻击中,两个辅助合约在一年期内各冻结了 19,000.000001 X。它们注册、进入排名,并提供了执行提案 7 的两个支持投票。它们在单个交易中完成了股份、投票和执行。

治理截止日期没有强制等待期。当提案保持开放时,当前排名的参议院席位的多数可以授权执行。持有三席中的两席使得辅助者有足够的权力立即行动。

批准的交换将 400,000 财政 X 发送到攻击者创建的池中。Freezer 仅收到 35.675313 USDT,攻击者随后从该池提取代币并出售 X,以获得偿还所需的现金。

股份保持冻结状态,而来自财政提取和代币销售的现金则用于偿还,因此攻击者不需要先收回购买的股份。

此次攻击借入了大约 194 万 USDT,并偿还了本金及其溢价。偿还后,大约 475 万 USDT 到达第一个最终收款人。

ChainBounty 的贡献者 Philippark 对支付给三位选定收款人的 484.8 万 USDT 进行了核对。该小计不包括未售出的 X 及其变化的价值,测量选定的支付。

Freezer 还保留了一项重要限制:在执行后,其 X 余额必须覆盖用户冻结的总金额。保护该数量的锁定本金并未保护外部池流动性或代币的市场价值。

Arkadiko 的投票允许晚期资金

Arkadiko 的提案 12 于 10 月 17 日 20:35 UTC 提交,并于 10 月 22 日 16:04 UTC 执行。其治理合约给予外部提案者 720 个比特币区块的投票间隔,通常描述为五天。

规则要求 0.25% 的合格 DIKO 供应量来提案,5% 的参与率以达到法定人数,以及更多的赞成票而非反对票。供应量计算减去在初始分配合约中持有的 DIKO。

这些门槛和投票规则并不要求代币持有者在提案之前持有代币。提案钱包在 10 月 22 日 15:03:46 UTC 进行了交换,并在 15:06:47 进行了投票。它承诺了大约 457.3 万 DIKO。提案以相同的赞成票总数和零反对票结束。

Bitquery 估计投票代币的购买约为 51,000 美元。其追踪还显示,77% 发送到投票钱包的 STX 来自早期的 StackSwap 收益。

攻击者在多个交易和日期中投入资金,因此 Arkadiko 的案例在实质上与 X100 的单交易借款和偿还不同。晚期购买是关键,因为它在已经开放的投票中成为可用的投票权力。

当投票结束时,变更立即执行。该决定与合约获得授权之间没有单独的等待期。

经批准的恶意合约在其提款和USDA铸造功能中缺乏调用者授权。提案12将其注册为具有铸造权限的金库操作合约。成功的调用在协调时间16:06 UTC移除了sBTC,并在16:09移除了stSTX,激活后几分钟内完成。

Bitquery估计Arkadiko的损失约为109万美元:大约78万美元的stSTX,13.5万美元的sBTC,以及通过出售无担保USDA获得的17.3万美元的STX。 X100的攻击者在一笔交易中行动,尽管存在一年的代币锁定,而Arkadiko在投票后执行,没有单独的延迟。

在10月22日的回应线程中,Arkadiko表示已禁用恶意合约,并暂停了治理、金库赎回和清算。它表示受影响的stSTX和sBTC金库无法修改,因为其抵押品不可用。

在10月27日07:57 UTC,提案14,“AIP 32.2 -- 恢复金库操作”,执行,设置金库操作入口为Arkadiko的合法v1-3合约。

退出窗口需要一个出口

要求较早的质押或使用早期快照的投票权可能会防止新获得的代币立即合格,而执行延迟将使批准与资产移动分开。

如果每个相关行动都必须经过该延迟,X100的确切顺序将无法在一笔交易中自我融资并偿还其贷款。

使用长期资本的攻击者可以等待,但对已批准合约的限制仍然是一个单独的问题。

OpenZeppelin的治理文档将历史投票权和执行时间锁描述为不同的机制。

将这种区别应用于这些事件使得测试成为一个问题,即新获得的资本何时获得权力,这种权力可以移动什么,以及在执行之前剩余多少可用时间。

X100被冻结的X在其锁定到期之前通常无法解冻,因此执行延迟不会消除该提款限制。

Arkadiko的合法关闭金库功能提供了一个有条件的出口:活跃的所有者偿还债务,支付稳定费用,并在操作启用时提取抵押品。这需要必要的资金和可用的抵押品。

大约五天的提案窗口提供了对拟议变更的提前通知。最终投票在很久之后到达,关闭立即激活合约。将整个投票视为保证的批准后提款窗口将模糊危险何时变得可执行。

-- 价格

--
--
--

本内容仅供参考,不构成任何金融、投资、法律或税务建议。文中提及的任何活动、奖励、线上活动或相关信息,不应被视为对购买、出售或交易任何加密资产的推荐、招揽或邀请。加密资产具有高波动性,存在价值损失风险。WEEX服务、产品及相关活动的可用性可能因地区而异。用户在参与前有责任确保符合当地适用法律法规。

猜你喜欢

iconiconiconiconiconiconiconicon
客户服务:@weikecs
商务合作:@weikecs
量化做市商合作:bd@weex.com