钯金2000美元_15秒内从2000万美元变成3.4亿美元?MakerDAO紧急修复这一安全漏洞

摘要所有拥有约40000 MKR (约2000万美元)的人都可以偷走Maker DAO的所有抵押品,包括来自DAI、SAI、Compound、Uniswap和其他Maker集成系统的大量资产,总计超过3.4亿美元。

Maker DAO v2版本(也称为多抵押DAI或MDai )必须启动安全措施(紧急关机和管理延迟),以防止恶意MKR所有者偷走所有抵押品(攻击者在此过程中与Maker集成的Uniswap ) 但是,他们并没有选择这样做。 某银行

Maker DAO是DAI在工作。 现在v1和v2版本锁定了大约3亿4千万美元的ETH。 与uniswap.exchange和augur.net不同,它也是一个“治理”系统,这意味着某些财阀可以控制系统的运行。 Maker DAO的设计

治理系统可以调用各种各样的内部函数,管理者可以自己尝试做。 治理是一个非常简单的“stake the leader”系统,在这个系统中,在您想要控制MKR的合同中,约束MKR最多的合同拥有这样的控制权。

由于现在的执行合同(也称为执行提案)保证了约80,000 mkr,想要做什么的原始成本约为80000 MKR (或者约4100万美元)。

为了减少恶意参与者的威胁,在选择新的执行协议后,执行某些操作可能会延迟。 在此延迟期间内,拥有足够MKR的人可以触发整个系统的全局结算,并在新的运行合同变得不利之前有效地关闭。 也就是说,如果盗贼出现,试图投票给他们自己的执行合同,那么该合同的手续就是偷取所有抵押品,即使他们比其他执行合同有更多的权利,他们也必须等待这个延迟,期望在这期间不要启动防御机构。 粗心大意

问题是制造商基金会将此治理延迟的适当值确定为0秒。 是的,防御者有0秒的时间,防御一方的攻击。 微妙之处

在这种情况下,攻击者可以:

尽可能获得80000 MKR

制定将所有抵押品从制造商系统转送的执行合同

立即投票合同

立即(在同一交易中)使合同生效

这次攻击带着价值3.4亿美元的ETH,收益是难以置信的( 8倍),但是如果执行成本高,幸运的是有耐心的话,这次攻击的成本可以降低50%。

你记得怎么说明现在的投票制度的结构吗? 也就是说,投票权最多的执行合同拥有一切控制权。 无论何时提出统治投票,都有将MKR的质押权益从旧的执行合同转移到新的执行合同的时期。 这种情况暂时不会发生,通常随着时间的推移,个人将他们的选票向前移动。 因此,80,000个积极参与的MKR可能会分割成两份执行合约,每份执行合约约为40,000 mkr。 擅长编写脚本的人可以轻松确定交易的时间,因此如果在两个合同之间以最佳方式分配了MKR,则此时可以执行上述攻击,只有40000 MKR (约2000万美元)的金额。 自动取款机

如果对你来说,偷3亿4千万美元不够的话,在攻击过程中也可以为自己铸造一千万DAI。 您可以将DAI传递给Uniswap,并在与Maker抢劫事务相同的事务中窃取DAI:ETH事务对中可用的ETH。 为了从倒霉的银行客户口袋里收取一点零钱,还可以去Compound借千兆DAI,借入可用的贷款资本(不偿还贷款,只留下借出的资产)。 如果行动迅速,在铸造完所有DAI后,也可以立即在IDEX、Paradex、RadarRelay等半中心化交易所再现。 集体

但是等等,再多一点! 以太网坊是在有约束力的契约上构建的系统! 这意味着一个人可以制定智能契约,在这个契约中,不信任对方的多个人可以在严格的规则下结盟。

规则集应如下所示:

如果这个契约收集了40000 MKR的话,谁都能触发它,马上就会袭击Maker。 抢劫成功后,赃物平均分配给贡献者。 抢劫失败后,MKR被参加者撤回。 任何人都可以随时回收MKR。

这个非常简单的契约对于MKR的贡献者来说是有约束力的契约,他们不需要相信他人。 这和传统的强盗大不相同。

任何人都不能带着所有战利品逃跑。 没有人能窃取其他参与者的贡献。 每个人贡献的MKR,除了执行约定的强盗,别无他法。

有人可能会争论( Maker基金会这样做),每个攻击者都必须告诉消息来源他们的存在。 Maker基金会很容易破坏“我们不参与管理”的规则来阻止攻击,将基金会的所有MKR投入投票,攻击费用达到了400,000,000 mkr (即无法攻击)。

制造商基金会肯定会阻止这种情况,但不一定马上就能看到。 例如,攻击者可能在其他地方有资金,他们可以利用这些资金在交易所外得到MKR。 攻击者也可能是MKR的所有者,其他MKR的所有者也知道此攻击意图,可以个人协调。

即使有约束力的合同是公共知识,也可以设计成混淆参与者。 例如,将事先签署给所有感兴趣的人的事务提交给中心服务提供商(不需要完全信任),中心服务提供商可以等待广播这些事务,直到有足够的MKR。 在这种情况下,制造商基金会不知道是否有人真正参与集中管理系统,或者什么都不做,冒着随时发生攻击的风险,在发生攻击时不能立即作出反应。 内部攻击的可能性

值得注意的是,如果制造商基金会想要的话,他们现在可以用这种方法攻击系统。 他们持有的MKR超过了必要的80,000个。 更糟的是,a16z也有足够的MKR。 此外,还有一些MKR的所有者和机构。 他们的身份对我来说是未知的,他们有足够的MKR来执行这次攻击。 其他人需要合作来执行这一攻击。

所以,恐怕不是DeFi而是CeFi,但是个人能够偷你的钱的银行,而是银行和大股东,小股东团体能够决定随时偷你的钱。 攻击的结果

那么,如果有人实行这样的攻击,制造商用户会怎么样呢? 首先,任何拥有CDP/保险箱的人都会受到伤害。 攻击者偷的是所有抵押品,所以DAI发生了100%抵押不足,价格有可能变为零的连锁反应。 此后,MKR的价值可能为零。 因为整个系统几乎失败,失败后恢复的可能性很小。 以太网坊也可能受伤。 这是因为在以太网坊的生态系统中再次出现了巨大的失败。 不过,我认为以太网坊还会复活。 因为那是个好平台,所以经常提醒人们“不要把坏事当好事”。 辩论者的反应

我向厂家提交了这个攻击场面。 他们明确表示,为了防止这次攻击,不值得放弃即时治理。 他们的辩护理由一般如下(这是我的说明,如果你想先发言的话,请和他们说),我的反驳:

攻击向量已经有相当长的时间了,但是到现在为止一切都很顺利。

反驳: Heartbleed(OpenSSL攻击)是10年后被发现的。 制造商的源代码很难理解,这些投诉来自以太网开发社区的大部分人。 我以前自己告诉过他们。 我没有审查制造商的合同。 因为读他们的代码很难。 Maker v2上市后,我终于尝试了。 因为理论上应该安全(像Maker v1那样,很多人说不安全。 虽然不知道有多安全)。 还没有人进攻,并不意味着他们将来不进攻。 这在向量变得更广为人知时是特别正确的。

这次攻击的代价对任何人来说都太高了。 只有少数人可以实行。

反驳:请注意,上面的“组”部分,攻击所需的只有一个人,“太高了,有这种可能性的只有少数人”不能保证系统的安全。

3、攻击者一定会泄露他们的攻击。

反驳:攻击许多协作的MKR所有者时,仅在制造商正在准备攻击的提示下进行防御时发生。

4、我们对任何攻击者都采取法律行动。

反驳:这基本上是脸#DeFi,在以太网的生态系统的很多人明确地想保护自己不受政府的侵害,声明“你的钱很安全”,完全不能放心。

此外,假设攻击者不匿名(见下文)。

5、在以太网Fang平台上实现匿名化是困难的。

反驳:是的,在以太网坊实现匿名化有点麻烦,但是The DAO的攻击者至今仍然是未知数,很多非常富裕的ETH所有者至今仍未知。 对于一次赚大钱的攻击来说,强硬不是好的防御措施。

6、这是已知的风险,但未知的风险可能更差。

反驳:我强烈反对这个风险评估,你有已知的风险,因此攻击系统是非常有利的,并且比较未知的影响和未知的风险。 这个想法大体上是这样的。 “没有攻击向量值得放弃控制”公开

制造商在制造商v2发布之前就已经意识到了这个问题,可能从一开始就知道了。 尽管如此,他们还是选择了不堵塞这个洞。 所以,让我闭嘴不是我的责任,我不想让攻击者知道谁应该理解制造商的管理模式。

大家都在看

相关专题