编者按:本文来自蓝狐笔记,Odaily星球日报经授权转载。前言:本文提出了对MakerDAO治理攻击的可能模式,并提出了改进期望。由于MakerDao在整个以太坊的DeFi生态中具有非常重要的地位,也是当前锁定资产量最大的DeFi项目,任何跟它有关的潜在风险都会对整个DeFi生态和以太坊产生重大影响。尤其考虑到可组合性,这也是双刃剑。整个加密世界处于早期也很稚嫩,几乎所有正常项目都具有共生共荣的特点,任何正常项目的风险都可能会转化为整个领域的风险。不管如何,期望所有的DeFi项目都能够不断完善,一起推动区块链行业的持续发展。本文作者MichaZoltu,由“蓝狐笔记”社群的“CL”翻译。摘要
任何人只要拥有大约40,000个MKR,也就是大约2000万美元,就能够偷走所有在MakerDAO上的抵押资产,包括Dai和Sai,以及来自Compound、Uniswap、和其他Maker集成系统的大量资产,全部加起来大约超过3.4亿美元。MakerDAOv2,也就是多抵押资产的Dai,原本应该采用防御措施启动的,这样可以防止有敌意的MKR持有人劫掠所有抵押资产,防止可能掠走Uniswap、Compound、以及其他集成Maker的系统中的大量资产。相反,他们决定不这么做。银行
MakerDAO联创Rune时隔一个半月再次购买MKR:7月16日消息,据链上分析师余烬监测,MakerDAO创始人Rune时隔一个半月再次购买MKR。其1小时前将500万枚DAI转至0x0f8地址,通过0x0f8地址花费62万DAI买入620枚MKR,均价1000美元。随后又将200万USDC转入Coinbase。[2023/7/16 10:58:19]
MakerDAO是让Dai运转的东西。当前,已经有价值3.4亿美元的ETH锁定在其V1和V2版本中。跟Uniswap和Augur不同,它也是一个“治理”系统,这意味着某些有钱人可以控制系统的运作。设计
治理系统可以调用各种各样的内部功能,以允许治理人实现各种他们想要的事情。治理是一个相当简单的“利益相关者说了算”的系统,你可以在合约中权益质押你的MKR代币,其中质押最多MKR的用户得到控制权。由于当前的执行合约上有80,000MKR的权益质押代币,这意味着,想对Maker合约做任何你想要的事情的成本大约是80,000MKR,换算成美元是4100万美元。为了减轻恶意行为者的威胁,系统有个机制,在新执行合约被选择之后,会存在一段执行的延迟时间。在此延迟时间,任何拥有足够MKR数量的人都可以触发整个系统的全球结算,从而可以在新执行合约做出任何不好的事情之前有效关闭系统。这意味着,如果劫掠者出现并试图通过给执行合约投票以劫取所有抵押资产,即使他们拥有的代币比其他执行合约更多,他们也必须等待这一延迟时间,并希望没人在这期间触发防御机制。疏忽
MakerDAO已在链上部署MKR买入合约:7月6日消息,MakerDAO已在链上部署MKR买入合约,此前MakerDAO新提案拟将金库上限设为5000万枚DAI,超出部分买入MKR,并在Uniswap上组建LP以添加流动性。[2023/7/6 22:20:48]
问题是Maker基金会已经确定此治理延迟的适当值是0秒。没错,防御者有0秒的时间来防御由有钱但恶意的攻击者发起的攻击。微妙之处
鉴于如上所述,攻击者可以做如下的事情:不管通过何种方式,获取80,000个MKR代币。创建一份执行合约,它可以将所有Maker上的抵押资产转给你。立即对合约进行投票。立即激活合约。拿着价值3.4亿美元的ETH开溜。这具有让人难以置信的利润,有8倍的ROI,但执行起来很昂贵。不过,只需要有耐心就可以将攻击成本将至50%。还记得我们上面提到的当前投票系统的运作方式是:拥有最多投票数的执行合约是拥有全部控制权的合约吗?每当治理投票对提议进行表决时,MKR权益从旧执行合约转入新执行合约会存在一段时间。这不会一次全部发生,它通常会随着时间推移发生,因为个人转移他们的投票会有时间。那么,在某个时间点上,将80,000个积极参与的MKR分到两个执行合约,每个大约有40,000个MKR。一个好的脚本可以很容易进行交易计时,它可以在MKR给两个执行合约最佳分配时进行恰时操作,并在那时执行上述攻击,仅仅花费大约40,000MKR,也就是2000万美元。收银机
MakerDAO拟将金库上限设为5000万枚DAI,超出部分买入MKR并添加流动性:7月3日消息,MakerDAO风险核心单元团队在社区发布“智能销毁引擎与初始参数介绍”提案,目前该提案尚未投票。该提案称,智能销毁引擎(Smart Burn Engine)是一种新型智能合约系统,旨在从Maker未将其用作应急储备的Surplusbuffer中分配多余的Dai。智能销毁引擎与此前的销毁设计不同之处在于,MKR代币将以Uniswap V2LP代币形式累积,而非被获取并销毁。此外,Surplus Auctions(Flaps)将被DssFlapper合约取代。[2023/7/3 22:14:51]
如果窃取3.4亿美元还不满足,那么,他们还可以在攻击执行过程中铸造出千万亿的Dai。在抢掠Maker的同一交易中,他们还可以将Dai移至Uniswap,并通过ETH交易对偷走所有ETH可用的流动资金。要从不走运的银行顾客的口袋中获得一些额外的零钱,他们还可以去Compound,出借千万亿的Dai,并借入所有可获得的可借资金。如果他们行动迅速,在铸造所有Dai之后,他们甚至能立即在一些半去中心化的交易所,例如IDEX、Paradex、RadarRelay等进行套现。群众
数据:MakerDAO治理代币MKR每日链上转移量达历史新高:Glassnode数据显示,MakerDAO治理代币MKR在过去24小时内链上转移量突破1100万美元,超过了上一次历史峰值2020年8月13日的1,090万美元。转移量是指链上转移的代币总价值。Glassnode将转移量和整体交易量加以区分,前者涉及区块链网络参与者之间的财富转移,后者则还包括发生在链下的转移,以及内部钱包之间的转移。目前,Maker每日交易量接近10亿美元。[2021/1/11 15:50:19]
但是等一下,还有更多!以太坊是建立在具有约束力的协议之上的系统。这意味着,一个人能够创建一个智能合约,其中多个互不信任的各方可以根据一套严格规则实现合谋。规则集可能如下:如果该合约集中了40,000个MKR,那么任何人都可以触发它,且它将立即劫掠Maker。成功劫掠之后,战利品会在MKR贡献者之间平均分配。如果劫掠失败,参与者可以取回MKR。任何时间任何人都可以拿回其MKR。这个智能合约非常简单,它在贡献MKR的参与者之间是具有约束力的协议,因此他们之间无须像传统劫掠那样需要彼此间的信任。没人可以带着所有战利品逃跑,没有人可以窃取其他参与者的贡献,除了将所贡献的MKR用于执行约定的行为之外,也没有人可以将其用作其他任何事情。有人可能会争辩,任何攻击者都必须将其计划传达给人们,而Maker基金会可以简单地打破其“我们不参与治理”的规则,通过将基金会的所有MKR用于投票,以制止攻击。这样,这会让攻击的成本上升到400,000,000MKR,而不是40,000MKR。如果Maker基金会看到这种情况的来临,确实有能力阻止它。但是,没有任何保证说,Maker基金会一定会察觉到它的来临。例如,攻击者可能在其他地方有资金,并且他们随着时间用这些资金来购买MKR。攻击者也可能是MKR持有人,他们知道其他MKR持有人具有一定的道德缺陷,他们可以在私下进行协调。即使具有约束力的协议合约是公开的,但它也能够以一种混淆众包的方式进行设计。例如,可以让每个感兴趣的人都向中心服务提供者提交预签署的交易,然后中心服务提供者直到“动员”足够的MKR之后才会广播这些交易。在这种情况下,要么Maker基金会介入以集中控制系统,而不知道是否有人在行动,要么他们什么都不做,冒着随时都会发生被攻击的风险,且无法即时作出反应。局内人
动态 | MKR链上出现价值2227 万美元的大额转账:监测数据显示,北京时间06:53,从 0xa1f526开头地址向0x74c70c开头地址转账45795.451379084枚MKR,价值 2227万美元。[2019/4/9]
值得注意的是,Maker基金会现在就可以用这种方式攻击系统,如果他们想的话。他们拥有远超80,000MKR的代币。更糟糕的是,a16z现在手上也拥有足够的MKR实施有耐心的攻击。还有一些其他的MKR持有人,他们的身份我们不清楚,他们也拥有足够的代币去实施耐心版本的攻击。然后,还有少数人需要跟其他几方合谋实施攻击。这里让人感到恐惧的是,这不是DeFi,而是CeFi。不是只有一个人能够劫掠所有的钱,一些大的代币持有人,或一群较小的代币持有人也可以随时合谋来劫掠所有资金。后果
那么,如果有人实施此种攻击,对Maker用户会有什么影响?首先,每个用户的CDP/Vault将会擦除,劫掠者直接取走所有抵押资产。这会导致连锁反应,Dai会变成抵押不足,其价格有可能会归零。然后,MKR价值也将可能归零,因为在这种情况下其整个系统基本上失败了。在经历这种级别的失败之后,不太可能重新恢复。以太坊也可能会因此遭受不小的重创,因为这算是以太坊生态系统内的一个重大失败。也许它会恢复过来,因为它依然是个好的平台,但这提醒大家“人们可以在好的事情上构建坏的事情”,这是对非理性繁荣的清醒。防御措施
我已经与Maker提出过这种攻击场景,他们明确表示,放弃即时的治理控制来防止此类攻击是不值得的。他们辩护论点的一般主题如下,,其中也包括了我的反驳:攻击向量已经存在很长一段时间了,但迄今为止情况还不错。在被发现之前,Heartbleed已经存在10年了。Maker的源代码难以遵循,且在以太坊开发者社区中有不少抱怨。之前,我曾亲自告诉他们我没有审计Maker合约,因为其代码很难阅读。我最终咬紧牙关并深入Makerv2,因为它应该是安全的。仅仅因为没有人实施过攻击,并不意味着他们将来不会实施攻击。当向量变得广为人知时,更是如此。除了少数几个人执行之外,对任何人来说,都太昂贵了。请参考上述提到的,同时也请注意,攻击只需要一个人即可实施。因此,“除了少数几个人过于昂贵”的说法,并不会让系统安全。攻击者必须传播其攻击计划仅当攻击来自于大量MKR持有人协同工作时,且仅当Maker愿意在有人可能为攻击做准备时设置防御我们将对任何攻击者采取法律行动这几乎是对DeFi的打脸。以太坊生态中的很多人试图保护其资产安全。而这种方式无法保护所有。同样,它假定攻击者不是匿名的。以太坊上很难匿名确实,以太坊上很难匿名。尽管如此,DAO攻击者依然未知。中本聪依然未知。很多非常富有的ETH持有人也是未知的。“很难”并非是抵御大规模获利攻击的好防御。这是已知的风险,但未知的风险可能会更糟。我非常不同意这种风险评估。你有一个已知的风险,其攻击系统可以获利颇丰,并正在与未知影响和未知可能性的未知风险进行比较。这种思路是“没有值得我们放弃控制的攻击向量”。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。