金砖国家即将遭到报复?专家预测美国关税后果
攻击者如何从去中心化音乐项目 Audius 窃取价值约 110 万美元的代币
周末,使用涉及该项目治理论坛的复杂攻击,大约 110 万美元的 Audius 的 AUDIO 代币被盗。
Audius 是一个代币化的音乐流媒体项目,它依赖于社区投票和治理来做出未来的决策。然而,在 7 月 23 日,一个恶意提案让攻击者发布了一个虚假帖子并操纵代币投票来窃取资金。
攻击者最初提出了“第 84 号提案”,该提案在内部将 10 万亿音频委托给了质押合约(没有代币供应变化)。该交易失败,因为没有对该提案进行投票。
攻击者随后提出了“第 85 号提案”,该提案要求在治理投票中转移 1800 万个 AUDIO 代币。Audius 开发人员在周一的验尸报告中解释说,攻击者随后“能够调用 initialize() 并将自己设置为该治理合约的唯一监护人”。
initialize() 函数在智能合约中为程序提供其初始数据点。这允许攻击者单独控制治理提案并在提案通过时转移代币。
在提出第 85 号提案后,执行了一项交易,将大约 10 万亿个音频委托给投票,从而使提案偏向于攻击者。流通供应没有受到影响,但该提案通过了,因为错误的投票能够欺骗 Audius 的智能联系人。这使得攻击者可以恶意将 Audius 治理合约持有的 1800 万个 AUDIO 代币(称为“社区金库”)转移到他们控制的钱包中。
然后,在隐私交换服务 Tornado Cash 上,被盗代币被兑换成超过 700 个以太币(ETH),在撰写本文时价值约 108 万美元,攻击者钱包的区块链数据 - 0xa62c3ced6906b188a4d4a3c981b79f2aabf2107f - 显示。
同时,Audius 开发人员表示,一个漏洞允许攻击者通过 initialize() 函数。“以太坊主网上的 Audius 治理、质押和委托合同,”开发人员在事后分析中解释道。
他们补充说:“[这些] 由于合约初始化代码中的错误允许重复调用初始化函数而受到损害。”
Audius 开发人员表示,这组被利用的合约先前已由 OpenZeppelin 团队审计,但当时并未发现该漏洞。所有剩余的资金都是安全的,并且已于周一进行了修复。