15秒内从2000万美元变成3.4亿美元?MakerDAO紧急修复这一安全漏洞_比特币:RFBTC

译者前言:来自Coinmonks的研究者MicahZoltu日前披露了MakerDAO治理系统存在的漏洞,其表示任何拥有约40000MKR的人,都可以窃取MakerDAO的所有抵押品,包括DAI、SAI以及来自Compound、Uniswap以及其它Maker集成系统的大量资产,共计超过3.4亿美元。目前,Maker基金会已发布了紧急公告,称会通过修改治理规则修复这一问题。

(图片来自:pexels.com/)

以下是MicahZoltu披露的漏洞细节及Maker基金会的公告内容:

摘要

任何拥有约40000MKR的人,都可以窃取MakerDAO的所有抵押品,包括DAI、SAI以及来自Compound、Uniswap以及其它Maker集成系统的大量资产,共计超过3.4亿美元。

MakerDAOv2版本本应启动安全措施,以防恶意的MKR持有者窃取所有抵押品。然而,他们并没有选择这样去做。

一家银行

MakerDAO,正是这个东西让DAI在工作,目前,它在v1和v2版本中锁定了价值约3.4亿美元的ETH。它也是一个“被治理”的系统,与uniswap.exchange或者augur.net不同,这意味着一些财阀可以控制系统的行为。

ZKSwap将于今日18:00开启第三期流动性挖矿 总奖励超150万ZKS:ZKSwap官方宣布,将于北京时间2021年4月26日(今日)18:00开启第三轮的流动性挖矿(PoL)和交易挖矿(PoT)活动,本次活动持续14天,至5月10日18:00结束。PoL总奖励为140.5万ZKS,PoT总奖励在10-15万ZKS之间。

同时为提升ZKSwap使用体验和激励ZKS持有人,本次活动将削减大部分交易对的挖矿产出,更多的挖矿奖励给到交易需求量大的交易对(整体ZKS挖矿产出降低70%)。并且为赋能ZKS、提升ZKS使用场景,本次活动新增了ZKS单币挖矿,只需在L2钱包中持有ZKS即可参与挖矿(可同时参与ZKS持币生息活动)。[2021/4/26 21:00:13]

MakerDAO的设计

治理系统可以调用各种各样的内部函数,这些函数允许管理者做他们想做的任何事情。治理是一个相当简单的“staketheleader”系统,在这个系统中,你将你的MKR质押在你想要控制系统的合约当中,而质押最多MKR的合约,就拥有这样的控制权。

由于当前的执行合约上大约质押了80,000MKR,所以,做任何你想做之事的原始成本大约是80000MKR。

为了减轻恶意参与者的威胁,系统有一种机制,其在选择新的执行合约后,在采取任何行动之前会有一个延迟。在此延迟期间,任何拥有足够MKR的人,都可以触发整个系统的全局结算,在新的执行合约做出任何不利的事情之前有效地将其关闭。这意味着,如果一个窃贼出现,并试图在他们自己的执行合约中投票,而该合约的程序是窃取所有抵押品,即使他们拥有比其他执行合约更多的权益,他们也将不得不等待这一延迟,并希望在此期间没有人触发防御机制。

BiKi将于1月21日15:00上线KSP并开启流动性挖矿:据BiKi官方公告,平台将于1月21日15:00(GMT+8)上线KSP(KlaySwap Protocol)并开放KSP/USDT交易和提现,现已开放充值。为庆祝KSP上线,将开启KSP网格流动性挖矿活动,用户通过APP或者PC开启KSP/USDT网格交易,满足条件即可获得网格+流动性挖矿双收益,一键双挖。

Klayswap是以去中央化金融所需的基础——去中央化交易所为开端,通过多种方式提供流动性的流动性协议,集中增加Klaytn生态系统内各种资产的活用性。目前,不仅提供 KCT 基础项目对代币的兑换功能,还利用跨链平台Orbit Chain,为DAI、USDT、ETH 资产以KCT为基础,带来可灵活使用的兑换及流动性。 KSP 代币是在Klayswap平台上全面使用的治理通证,可参与治理并修改协议参数或设置。之后将通过Orbit Chain支援多种资产,并激活资产运营相关的其他功能。[2021/1/21 16:40:47]

疏忽之处

而问题在于,Maker基金会决定此治理延迟的适当值为0秒。好的,防御者有0秒的时间来防御一方发起的攻击。

微妙之处

鉴于上述情况,攻击者可以执行以下操作:

尽一切可能获得80000MKR;

创建一个执行合约,它会把所有抵押品从Maker系统转走;

立即对合约进行投票表决;

BTC突破33000美元关口 日内涨幅为4.15%:火币全球站数据显示,BTC短线上涨,突破33000美元关口,现报33011.6美元,日内涨幅达到4.15%,行情波动较大,请做好风险控制。[2021/1/3 16:17:33]

立即激活合约;

带走价值3.4亿美元的ETH;

这种攻击的回报率是令人难以置信的,但它的执行成本很高,幸运的是,只要耐心一点,我们就能把这次攻击的成本降低50%。

还记得上面我们如何描述现行投票制度的运作方式吗?即拥有最多投票权的执行合约拥有着所有控制权。无论何时提出治理投票,都会有一段时期,让MKR质押权益从旧的执行合约转移到新的执行合约。这种情况从来不会一下子发生,通常是随着时间的推移,个人将把他们的选票向前迁移。因此,将会有一个时间点,其中80,000枚积极参与的MKR将被分割在两个执行合约当中,其中每个都有大约40000MKR。一个擅长写脚本的家伙,可以很容易地确定交易的时间,这样当MKR在两个合约之间以最佳方式分配时,它就可以在这个时候执行上述攻击,而只需要花费40000MKR的金额。

取款机

如果对你而言,偷窃3.4亿美元还不够的话,你还可以在执行攻击的过程中为自己铸造千万亿DAI。在抢劫Maker的同一笔交易中,你可以将这些DAI转到Uniswap,并窃取DAI:ETH交易对中可用的ETH。为了从倒霉的银行客户口袋里得到一点额外的零钱,你也可以去Compound借出一千万亿DAI,并借入所有可用的借贷资本。如果你行动迅速,你甚至可以在铸造所有DAI后立即在IDEX、Paradex、RadarRelay等半去中心化交易所进行套现。

公告 | 火币全球站将于11月16日15:00上线GXC/USDT交易:火币公告显示,因GXChain (GXC) 符合了火币全球站USDT交易区的上线标准,因此火币全球站将于11月16日15:00上线GXC/USDT交易。[2018/11/16]

群体

但是等等,还有更多!以太坊是一个建立在有约束力合约之上的系统!这意味着一个人可以创建一个智能合约,在这个合约中,不信任对方的多个人可以在一套严格的规则下进行合谋。

规则集可能是这样的:

如果这个合约收集40000MKR,那么任何人都可以触发它,它将立即抢劫Maker。抢劫成功后,赃物将平均分配给贡献者。而抢劫失败后,MKR可被参与者撤回。任何人都可以随时收回他们的MKR。

这个非常简单的合约对于参与MKR贡献的人来说是一个有约束力的协议,他们没有必要信任他人,这与传统的抢劫有很大的不同。

任何人都不能带着所有的战利品逃跑,任何人都不能窃取任何其他参与者的贡献,任何人都不能将贡献的MKR用于除执行约定的抢劫之外的任何事情。

有人可能会争辩,任何攻击者都必须将他们的存在通知众源,而Maker基金会可以简单地破坏“我们不参与治理”的规则来阻止攻击,将基金会所有的MKR扔进投票,从而使攻击花费达到400,000,000MKR,而不是40,000MKR。

虽然Maker基金会确实可以阻止这种情况的发生,但并不能保证他们会立刻看到这种情况的发生。例如,攻击者可能在其他地方有资金,他们可以利用这些资金在交易所外获得MKR。攻击者也可能是MKR持有者,他们知道其他MKR持有者也有这种攻击意图,然后就可以私下进行协调。

币安将于29日15:30开通THETA与BNB、BTC、ETH的交易市场:据币安最新公告,将于2018年05月29日15:30上线Theta Token(THETA),并开通THETA/BNB、THETA/BTC、THETA/ETH交易市场,THETA充值通道现已开放。该项目引入Theta区块链,旨在解决今天视频流媒体产业面临的挑战。THETA现价0.1806美元,今日涨幅9.7%。[2018/5/29]

即使有约束力的协议合约是公共知识,它也可以设计成一种混淆参与者的方式。例如,你可以让感兴趣的每个人向中心服务提供商提交一笔预先签署的交易,然后中心服务提供商将等待广播这些交易,直到有足够的MKR。在这种情况下,Maker基金会要么在不知道是否有人真正参与的情况下介入到集中控制系统,要么他们什么也不做,而冒着随时可能发生攻击的风险,届时攻击发生时,他们将无力及时做出反应。

内部攻击的可能

值得注意的是,如果Maker基金会愿意的话,他们现在就可以用这种方式攻击系统,他们持有的MKR超过了所需的80,000数量,更糟糕的是,a16z现在也有足够的MKR,另外还有几个MKR持有者或者机构,他们的身份对我来说是未知的,而他们也有足够的MKR来执行这种攻击,而其它人则需要进行合谋才能执行这样的攻击。

所以,让人害怕的是,这并不是DeFi,而是CeFi,但它并非是一家能让个人能偷走你所有钱的银行,而是说银行或任何一个大股东,或一群小股东可以决定在任何时候偷走你所有的钱。

攻击带来的后果

那么,如果有人执行这样的攻击,Maker用户会发生什么情况呢?首先,每个拥有CDP/金库的人都会被伤害到。因为攻击者盗窃的就是所有的抵押品,由此产生的连锁反应是,DAI将变得100%缺乏抵押,其价格可能会归零。之后,MKR的价值也可能会归零,因为它的整个系统基本上都失败了,并且在这种失败之后,它不太可能会恢复。以太坊也可能会因此而受伤,因为这将是以太坊生态系统中的又一次大失败。但我认为以太坊仍然会复苏,因为它是一个很好的平台,但这很好地提醒了人们,“不要把坏事建立在好事之上”。

辩方的回应

我已经向Maker提出了这个攻击场景,他们已经明确表示,这不值得他们放弃即时的治理控制来抵御这种攻击。他们的辩护理由一般如下,以及我的反驳:

1、攻击向量已经存在相当长的一段时间,但到目前为止一切都很好。

反驳:Heartbleed存在10年后才被发现。Maker的源代码是出了名的难以理解,并且这些抱怨是来自以太坊开发社区中的很大一部分人。我之前曾亲自告诉他们,我没有审核Maker的合约,因为阅读他们的代码实在太难了。在Makerv2推出之后,我终于还是尝试了,因为理论上它应该是安全的。仅仅因为还没有人执行攻击,并不意味着他们将来不会执行攻击。当向量变得更加广为人知时,这一点尤其正确。

2、这种攻击的代价对任何人来说都太昂贵了,只有少数人才能执行。

反驳:参见上面的“群体”部分,还要注意的是,它只需要一个人来攻击,因此“太贵了,只有少数人拥有这种可能”并不能保证系统的安全。

3、攻击者必然会泄露他们的攻击。

反驳:只有当攻击来自一大批共同工作的MKR持有者,只有当Maker愿意在一个可能有人准备攻击的提示下进行防御时才发生。

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

反驳:这基本上是在打脸#DeFi,以太坊生态系统中的很多人明确地试图保护自己免受政府的侵害,“你的钱是安全的”的这种声明,根本就不让人放心。

此外,这还假定攻击者不是匿名的。

5、在以太坊平台上很难实现匿名。

反驳:是的,在以太坊是实现匿名是有点棘手,尽管如此,TheDAO的攻击者至今都还是一个未知数,许多非常富有的ETH持有者至今也是未知的。对于一次大赚一笔的攻击而言,强硬并不是一个好的防御措施。

6、这是一个已知的风险,但还有一些未知的风险可能更糟。

反驳:我强烈反对这种风险评估,你有一个已知的风险,而通过它攻击系统会是非常有利可图的,然后去拿未知影响和未知风险进行比较。这种思路大致是这样的:“没有任何攻击向量值得我们放弃控制。”

披露

Maker在Makerv2发布之前就已经意识到了这个问题,而且可能是从一开始就知道。尽管如此,他们还是选择不堵住这个漏洞。正因为如此,我不认为让我闭嘴是我的责任,也不希望任何攻击者知道谁应该明白Maker的治理模式。

Maker基金会回应

截至发稿时,Maker基金会已发布新的治理规则提议,将延迟时间从0增加到24小时,该基金会在博客中这样写道:

“自MCD启动以来,延迟时间设置为0,这使得社区能够立即采取行动,减少技术错误、预言机故障或异常情况,如市场恐慌或经济攻击。

由于这些事件的可能性在MCD启动后开始降低,现在就快到审查GSM关于制定最佳延迟量讨论的时候了。

由于基金会收到一篇博文的通知,该博文详细介绍了一系列可能导致利用治理系统的事件,因此该版本现在已经升级。

此前,社区曾考虑过该漏洞的可能性,但这并不是一个紧迫的问题。然而,由于来自上述博客的潜在宣传,利用此漏洞的可能性增加了。出于这个原因,在我们典型的辩论和寻求共识的过程之前,社区正在接受一项民意测验,以减轻这种假设性的利用。

译者简评:Maker基金会已快速作出反应,以解决这一潜在漏洞的威胁,但这也同时印证了漏洞提出者的说法。创新的同时,也需要谨慎,否则就容易重现TheDao式的惨剧,所幸的是,这一漏洞的执行要求非常高,而符合这一条件的几个机构,也不太可能去进行这样的攻击,否则,这又是一场大祸。

相关链接:

1、https://medium.com/coinmonks/how-to-turn-20m-into-340m-in-15-seconds-48d161a42311

2、https://blog.makerdao.com/governance-security-module-gsm/

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:0ms0-5:543ms