去中心化金融协议Origin遭受攻击,损失近700万美元
周一深夜,去中心化金融(DeFi)协议Origin遭遇攻击,损失了近700万美元的资金。其中包括用户资金,以及Origin创始人和员工价值100万美元的存款。攻击者利用Origin Protocol的Origin Dollar(OUSD)金库,并转移了其中的大部分稳定币。
OUSD简介
OUSD是Origin的原生稳定币,由三种其他稳定币支持:Tether(USDT)、Circle和Coinbase的USDC,以及MakerDAO的DAI。
攻击细节
此次攻击导致攻击者至少获得了7,137 ETH(价值约330万美元)和225万DAI(价值约225万美元)。攻击者是如何将资金从OUSD金库转移到他们的钱包的呢?
Origin的联合创始人表示,Origin智能合约中的一个重入漏洞使攻击成为可能。这种漏洞允许攻击者通过重入从合约中提取比他们应得的更多的资金。
攻击者利用了一个在铸造多个稳定币(用多个稳定币铸造OUSD)时缺少的验证检查,传入了一个他们控制的假“稳定币”。然后,金库调用了这个“稳定币”的“transferFrom”函数,使得黑客能够在铸造过程中利用重入攻击来利用合约。
攻击者在资金从第一次大规模铸造转移到OUSD之后,但在OUSD供应量增加之前,能够在第二次铸造中创建一个重新基准事件。这为合约中的每个人(包括攻击者)创建了一个大规模的重新基准。攻击者随后还获得了他们第一次大规模铸造的OUSD,使得他们总共拥有的OUSD超过了合约的资产。
攻击者随后在Uniswap和SushiSwap上将多余的OUSD出售为USDT。他们还使用了加密货币混合服务Tornado Cash和包装比特币renBTC“来洗钱和转移资金”。
闪电贷的使用
一位名为“Frank Topbottom”的加密货币研究员详细分析了此次攻击,并表示在过程中使用了闪电贷。攻击者从去中心化交易所dYdX借了70,000 ETH的闪电贷,并在Uniswap上将这些ETH兑换成USDT和DAI。然后他们重新基准了Origin的合约,并用USDT铸造了额外的OUSD。
具体来说,攻击者使用的恶意合约有一个“transferFrom()”函数。这个函数使攻击者能够将合约用作代币。在调用transferFrom()函数期间,mint()函数被第二次调用。mint()函数的调用发生在另一个mint()函数[mintMultiple()]的执行过程中。这就是重入发生的方式,并允许攻击者引起额外的重新基准和膨胀OUSD供应。
然后,多余的OUSD币在Uniswap和SushiSwap上被兑换成ETH和DAI。根据Topbottom的说法,攻击者能够以11,804 ETH和2,249,821 DAI的形式获得了约770万美元。
简而言之,通过利用Origin的重新基准功能并免费铸造额外的OUSD,攻击者能够提取真正的稳定币。
后续行动
Origin目前正在详细分析此次攻击,并预计很快会发布更多更新。同时,Liu敦促用户不要在Uniswap或SushiSwap上购买OUSD,因为当前价格并未反映该稳定币的底层资产。根据Uniswap的数据,OUSD目前价值接近0美元,且没有流动性。
OUSD背景
OUSD由Origin于今年9月推出,功能类似于储蓄账户。Origin得到了风险投资公司Pantera Capital的支持,该公司在2017年领导了其300万美元的融资轮。
本文仅供参考,不提供或意图用作法律、税务、投资、财务或其他建议。