99金银MKR治理攻击:15秒内将2000年万美元变成3.4亿

 
99金银
 
 
前言:本文提出了对MakerDAO治理攻击的可能模式,并提出了改进期望。由于MakerDAO在整个以太坊的违抗生态中具有非常重要的地位,也是当前锁定资产量最大的挑战项目,任何跟它有关的潜在风险都会对整个违抗生态和以太坊产生重大影响。尤其考虑到可组合性,这也是双刃剑。整个加密世界处于早期也很稚嫩,几乎所有正常项目都具有共生共荣的特点,任何正常项目的风险都可能会转化为整个领域的风险。不管如何,期望所有的违抗项目都能够不断完善,99金银一起推动区块链行业的持续发展。本文作者MichaZoltu,由“蓝狐笔记“社群的“氯”翻译。
 
摘要
 
任何人只要拥有大约40000个MKR,也就是大万约2000美元,就能够偷走所有在MakerDAO上的抵押资产,包括戴和赛,以及来自化合物,Uniswap,和其他制造商集成系统的大量资产,全部加起来大约超过3.4亿美元。
 
 
MakerDAO v2,也就是多抵押资产的戴,原本应该采用防御措施(紧急关闭和治理延迟)启动的,这样可以防止有敌意的MKR持有人劫掠所有抵押资产,防止可能掠走Uniswap,化合物,以及其他集成制造商的系统中的大量资产。相反,他们决定不这么做。
 
银行
 
MakerDAO是让戴运转的东西。当前,已经有价值3.4亿美元的ETH锁定在其V1和V2版本中。跟Uniswap和预示着不同,它也是一个“治理”系统,这意味着某些有钱人可以控制系统的运作。
 
设计
 
治理系统可以调用各种各样的内部功能,以允许治理人实现各种他们想要的事情。治理是一个相当简单的“利益相关者说了算”的系统,你可以在合约中权益质押你的MKR代币,其中质押最多MKR的用户得到控制权。
 
由于当前的执行合约上有80000 MKR的权益质押代币(蓝狐笔记:MKR总量接近100多万个,权益质押的代币占8%左右,质押率较低),这意味着,想对制造商合约做任何你想要的事情的成本大约是80000 MKR换算成美元是4100年万美元。
 
为了减轻恶意行为者的威胁,系统有个机制,在新执行合约被选择之后,会存在一段执行的延迟时间。在此延迟时间,任何拥有足够MKR数量的人都可以触发整个系统的全球结算,从而可以在新执行合约做出任何不好的事情之前有效关闭系统。
 
这意味着,如果劫掠者出现并试图通过给执行合约投票以劫取所有抵押资产,即使他们拥有的代币比其他执行合约更多,他们也必须等待这一延迟时间,并希望没人在这期间触发防御机制。
 
疏忽
 
问题是制造商基金会已经确定此治理延迟的适当值是0秒。没错,防御者有0秒的时间来防御由有钱但恶意的攻击者发起的攻击。
 
微妙之处
 
鉴于如上所述,攻击者可以做如下的事情:
 
不管通过何种方式,获取80000个MKR代币。
 
创建一份执行合约,它可以将所有制造商上的抵押资产转给你。
 
立即对合约进行投票(在同一交易中)。
 
立即激活合约(在同一交易中)。
 
拿着价值3.4亿美元的ETH开溜(不要再管那些攻击用的MKR了,在攻击之后,它会毫无价值)。
 
这具有让人难以置信的利润,有8倍的投资回报,但执行起来很昂贵。不过,只需要有耐心就可以将攻击成本将至50%。
 
还记得我们上面提到的当前投票系统的运作方式是:拥有最多投票数的执行合约是拥有全部控制权的合约吗?每当治理投票对提议进行表决时,MKR权益从旧执行合约转入新执行合约会存在一段时间。这不会一次全部发生,它通常会随着时间推移发生,因为个人转移他们的投票会有时间。
 
那么,在某个时间点上,将80000个积极参与的MKR分到两个执行合约,每个大约有40000个MKR。一个好的脚本可以很容易进行交易计时,它可以在MKR给两个执行合约最佳分配时进行恰时操作,并在那时执行上述攻击,仅仅花费大MKR约40000,也就2000年是万美元。
 
收银机
 
如果窃取3.4亿美元还不满足,那么,他们还可以在攻击执行过程中铸造出千万亿戴的。在抢掠制造商的同一交易中,他们还可以将戴移至Uniswap,并通过乙交易对偷走所有乙可用的流动资金。
 
要从不走运的银行顾客的口袋中获得一些额外的零钱,他们还可以去复合,出借千万亿的戴,并借入所有可获得的可借资金(他们永远不会偿还贷款,只保留借入的资产)。如果他们行动迅速,在铸造所戴有之后,他们甚至能立即在一些半去中心化的交易所,例如国际防务展,Paradex, RadarRelay等进行套现。
 
群众
 
但是等一下,还有更多!以太坊是建立在具有约束力的协议之上的系统。这意味着,一个人能够创建一个智能合约,其中多个互不信任的各方可以根据一套严格规则实现合谋。规则集可能如下:
 
如果该合约集中了40000个MKR,那么任何人都可以触发它,金银行情且它将立即劫掠制造商。成功劫掠之后,战利品会在MKR贡献者之间平均分配。如果劫掠失败,参与者可以取回MKR。任何时间任何人都可以拿回其MKR。
 
这个智能合约非常简单,它在贡献MKR的参与者之间是具有约束力的协议,因此他们之间无须像传统劫掠那样需要彼此间的信任。没人可以带着所有战利品逃跑,没有人可以窃取其他参与者的贡献,除了将所贡献的MKR用于执行约定的行为之外,也没有人可以将其用作其他任何事情。
 
有人可能会争辩,任何攻击者都必须将其计划传达给人们,而制造商基金会可以简单地打破其“我们不参与治理”的规则,通过将基金会的所有MKR用于投票,以制止攻击。这样,这会让攻击的成本上升到400000000 MKR,而不是40000 MKR。(蓝狐笔记:MKR总发行量为1000000个,不知道文中所提到的4个亿个MKR怎么来的)
 
如果制造商基金会看到这种情况的来临,确实有能力阻止它。但是,没有任何保证说,制造商基金会一定会察觉到它的来临,例如,攻击者可能在其他地方有资金,并且他们随着时间用这些资金来购买MKR。攻击者也可能是MKR持有人,他们知道其他MKR持有人具有一定的道德缺陷,他们可以在私下进行协调。
 
即使具有约束力的协议合约是公开的,但它也能够以一种混淆众包的方式进行设计,例如,可以让每个感兴趣的人都向中心服务提供者提交预签署的交易(无须完全信任他们),然后中心服务提供者直到“动员”足够的MKR之后才会广播这些交易。
 
在这种情况下,要么制造商基金会介入以集中控制系统,而不知道是否有人在行动,要么他们什么都不做,冒着随时都会发生被攻击的风险,且无法即时作出反应。
 
局内人
 
值得注意的是,制造商基金会现在就可以用这种方式攻击系统,如果他们想的话。他们拥有远超80000年MKR的代币。更糟糕的是,a16z现在手上也拥有足够的MKR实施有耐心的攻击。还有一些其他的MKR持有人,他们的身份我们不清楚,他们也拥有足够的代币去实施耐心版本的攻击。然后,还有少数人需要跟其他几方合谋实施攻击。
 
这里让人感到恐惧的是,这不是挑战,而是CeFi。不是只有一个人能够劫掠所有的钱,一些大的代币持有人,或一群较小的代币持有人也可以随时合谋来劫掠所有资金。
 
后果
 
那么,如果有人实施此种攻击,对制造商用户会有什么影响?首先,每个用户的CDP /库将会擦除,劫掠者直接取走所有抵押资产。这会导致连锁反应,戴会变成抵押不足,其价格有可能会归零,然后,MKR价值也将可能归零,因为在这种情况下其整个系统基本上失败了。在经历这种级别的失败之后,不太可能重新恢复。
 
以太坊也可能会因此遭受不小的重创,因为这算是以太坊生态系统内的一个重大失败。也许它会恢复过来,因为它依然是个好的平台,但这提醒大家”人们可以在好的事情上构建坏的事情”,这是对非理性繁荣的清醒。
 
防御措施
 
我已经与制造商提出过这种攻击场景,他们明确表示,放弃即时的治理控制来防止此类攻击是不值得的。(蓝狐笔记:这里的即时,应该是指没有延迟期间)他们辩护论点的一般主题如下,(这是二手的解释,如果需要第一手的陈述,可以直接与他们交谈),其中也包括了我的反驳:
 
攻击向量已经存在很长一段时间了,但迄今为止情况还不错。
 
在被发现之前,Heartbleed (OpenSSL攻击)已经存在10年了使的源代码难以遵循,且在以太坊开发者社区中有不少抱怨。之前,我曾亲自告诉他们我没有审计生产商合约,因为其代码很难阅读。我最终咬紧牙关并深入制造商v2,因为它应该是安全的(跟制造商v1被认为是不够安全不同)。
 
仅仅因为没有人实施过攻击,并不意味着他们将来不会实施攻击。当向量变得广为人知时,更是如此。
 
除了少数几个人执行之外,对任何人来说,都太昂贵了。
 
请参考上述提到的,同时也请注意,攻击只需要一个人即可实施。因此,“除了少数几个人过于昂贵”的说法,并不会让系统安全。
 
攻击者必须传播其攻击计划
 
仅当攻击来自于大量MKR持有人协同工作时,且仅当制造商愿意在有人可能为攻击做准备时设置防御
 
我们将对任何攻击者采取法律行动
 
这几乎是对挑战的打脸。以太坊生态中的很多人试图保护其资产安全。而这种方式无法保护所有同。样,它假定攻击者不是匿名的。
 
以太坊上很难匿名
 
确实,以太坊上很难匿名。尽管如此,刀攻击者依然未知。中本聪依然未知。很多非常富有的ETH持有人也是未知的。”很难”并非是抵御大规模获利攻击的好防御。
 
这是已知的风险,但未知的风险可能会更糟。
 
我非常不同意这种风险评估。你有一个已知的风险,其攻击系统可以获利颇丰,并正在与未知影响和未知可能性的未知风险进行比较。这种思路是“没有值得我们放弃控制的攻击向量”。

Copyright © 2014-2019 99金银-最全面的国际金银行情资讯网站 版权所有