首页 币圈新闻 Mempool操纵在黑色星期四盗窃了MasdfskerDAO抵押品中的800万美元:报告

Mempool操纵在黑色星期四盗窃了MasdfskerDAO抵押品中的800万美元:报告

外卖:

一家在全球保存以太坊内存池数据的公司Blocknative可能对黑色星期四对MakerDAO的“零出价”攻击有一个解释。内存池是等待事务被挖掘成块的存储箱。 在市场压力下,它们往往被堵塞。 在攻击发生当天,Blocknative在内存池中发现了无尽的,毫无价值的交易流,显然是为了使交易难以通过。ETH价格下跌触发了MakerDAO上的抵押品拍卖。 由于内存池被阻塞,在许多情况下,竞标者无法通过这些竞标获得出价,从而使攻击者可以用价值0美元的出价赢得ETH抵押品。攻击者以830万美元的身价走了出去。

根据周三发布的研究报告,以太坊网络内存池的巧妙运作使攻击者在黑色星期四从MakerDAO用户那里窃取了830万美元。

回顾一下:3月12日,以太坊(ETH)的价格暴跌,以太坊网络因大量尝试交易而拥挤不堪。 随着投资者逃往法定货币,以太坊的价格低至足以触发对MakerDAO贷款平台上持有的抵押品的清算。 这些程序性清算使攻击者可以免费获得830万美元的ETH,从而使借款人和MakerDAO本身做空。

不过,据研究区块链内存池行为的公司Blocknative称,拥塞是关键且完全是故意的。

这项新的研究表明,3月针对以太坊的“黑天鹅”事件实际上可能是一项复杂的计划,旨在利用COVID-19的担忧推动全球抛售。

“整个事件意味着 [the attackers] 能够实现1,000多次零价竞价……并以几乎没有自付费用的方式收集了潜在价值,” Blocknative首席执行官Matt Cutler在接受采访时告诉CoinDesk。

内存池操作

Blocknative工作的核心是内存池:每个以太坊节点上的临时存储,交易在这里等待开采和完成。

Blocknative表示,在3月中旬,mempool充斥着无用的交易,这是在这种情况下在MakerDAO上以太坊(ETH)赢得零价竞价的计划的一部分。

确实,Maker Foundation在4月份发布的验尸报告中写道:

“网络拥堵和高油价导致交易延迟,在许多情况下还导致失败。这些问题,加上资产价值的空前下降,使Maker Vault所有者,Keepers和流动资金池措手不及。”

(Maker Foundation在上面的博客文章中提到了CoinDesk,并拒绝对此事作进一步评论。)

显然,许多以太坊用户会怀疑以太坊价格下跌本身是否是出于某种原因造成的,但是这个问题不在Blocknative的调查范围之内。 攻击者可能已经准备好机会利用ETH价格的急剧下跌。 价格下降本身是否被制造仍然未知。

就是说,Blocknative确实发现了攻击机制的3月8日试运行,这家研究公司并未在报告中描述这一事实。

卡特勒告诉CoinDesk:“测试和攻击相距仅四天,这是一个有趣的巧合。” “[But] 我们没有任何证据表明这只是机会主义。”

无论哪种方式,攻击者都利用了有关以太坊和MakerDAO的一些非常微妙的见解。 卡特勒说:“他们基本上利用了一些以前从未见过的技术。”

稍后将详细介绍这些技术。 首先,我们需要涵盖有关MakerDAO和以太坊的一些基础知识

MakerDAO基础

MakerDAO被称为dai(DAI)的创建者,dai是目前受农户青睐的去中心化稳定币。 DAI是通过债务创建的。 用户将ETH或其他加密资产放在Maker平台上作为抵押,然后以全新的DAI形式提取这些资产的部分价值。

要取回抵押品,用户必须偿还借入的DAI以及贷款应计的任何利息(在MakerDAO看来,这是“稳定费”,但这只是可变利率)。 如果MakerDAO的价值低于最低阈值以维持适当的抵押品,MakerDAO通过清算抵押品来执行DAI价格。 对于ETH,这是150%,但是大多数用户输入的ETH比最低数量多得多。

因此,如果ETH的价格为200美元,并且用户发布1 ETH以借入100 DAI,则除非ETH跌至150美元以下,否则他们将不会被清算。

但是在黑色星期四,以太坊的价格从193美元下跌了近100美元,因此引发了大量清算。

顺便说一下,任何人都可以使用名为“ Keepers”的机器人进行清算。 MakerDAO本身运行Keeper,但其他一些未知实体也可以运行。

守护者通过拍卖赢得清算(CoinList用通俗易懂的语言一步步描述),因此不同的守护者竞标关闭贷款,在黑色星期四,这些拍卖仅持续了10分钟,或几十个以太坊区块。

想法是,这些拍卖本应(通常是)导致用户取回其抵押品减去所欠的金额,再加上稳定费和清算费(这是最不利的部分)。 但这不是这次发生的事情。

借款人一无所获,事实上,MakerDAO偿还的DAI太少了,整个系统的抵押品不足。

以太坊基础知识

以太坊是一个区块链,这意味着它一直在收集交易,矿工正在竞争组成这些交易的区块,对其进行加密,破坏加密,然后向其余矿工证明其工作以赢得区块奖励。

交易只有在被开采的区块中才是真实的。 通常,等待进入一个区块的交易多于有更多交易的空间。 这些延迟的交易在所谓的“内存池”中等待。

内存池是大多数人大部分时间实际上不需要考虑的事情之一,除了在紧急情况下它们变得非常重要,例如当以太坊价格跌落时。

卡特勒说:“当您最需要确保事情正在有条不紊地进行时,就是事情最不可靠的时候。”

这就是Blocknative的重点。 该公司详细记录了全世界的内存池,研究所谓的“动态价值”。 Blocknative可以帮助客户确定在事情变得疯狂时是否需要在诸如天然气支付等方面更加激进。 内存池数据是“移动中的价值”; 最终确定的区块链数据是静止的价值。

至关重要的是,如果先前的交易未通过,矿工将无法处理新的交易。 以太坊从钱包中进行的每笔交易都会得到一个数字,如果514没有通过,则515将不会通过(以太坊而言,这是“立即”交易所跟踪的)。 事实证明,这种顺序现实是攻击的关键。

Blocknative发现了什么

Blocknative一直保持以太坊的内存池数据可以追溯到2018年初(还有其测试网和比特币网络)。 该公司决定查看一下内存池数据,以了解3月12日前后发生的情况。

Blocknative发现,由于汽油价格非常低廉,交易阻塞了异常大的内存池。

通常,这个比例不是很高,因为用户实际上希望他们的交易能够通过,因此他们将监控汽油价格并将其设置为可能被矿工捡拾的水平。 但这不是3月12日发生的事情。池中有很多交易,天然气价格低廉。 太多。

这使攻击者可以在MakerDAO附带有强劲汽油价格的抵押品拍卖中提交“零投标”,因为他们充分了解他们很可能会与无法通过投标的善意的Keeper bot赢得那些拍卖。

Blocknative描述了一种称为“ Hammerbots”的东西。 这些机器人将被设计为精确地进行交易以堵塞内存池。

“僵尸程序通过从未打算完成的交易来打击内存池。 这些“悍马”通过发行极高的替换交易率而消耗了内存池资源,而没有相应地增加天然气,” Blocknative在其博客中写道。

这些事务还被设计为具有许多无意义的操作,这些操作可以轻松移动和更改以改变哈希值,但似乎没有任何实际用途。

Blocknative联合创始人克里斯·梅斯尔(Chris Meisl)对CoinDesk表示:“这些特定交易特别擅长消耗内存池资源。”

级联问题

因此,这是第一个问题:拥堵使MakerDAO上的借款人很难添加更多的抵押品,而且使Keepers很难通过竞标。

“这导致异常的内存池条件,最终将有利于某些交易,” Blocknative帖子报道。

但是,攻击者似乎对Keepers提出了另一项至关重要的观察:他们似乎没有检查交易是否通过。

Meisl说:“当您在以太坊的账户或地址上进行交易时,必须对其进行订购。”

就像我们在上面写的那样,如果区块链记录中缺少一个随机数,矿工将无法进行后续交易,直到一个具有先前随机数的交易通过。 因此,即使附加了很高的汽油价格,以后的交易也将被卡住,直到之前的交易通过。

这有一个奇怪的结果。 来自Blocknative博客文章:

“从总体上看,即使进入mempool的交易量急剧增加,mempool很大一部分的天然气价格也跌至人为的低价。”

简而言之:攻击者知道Keepers将无法通过他们的第一个出价,这将导致随后的出价“概率地”(用Cutler的话)被卡住。 而且它经常工作。

MakerDAO为Keeper机器人发布的开放源代码没有采取措施检查卡住的交易。

这造成了一个潜在的缺口,攻击者可以用很强的汽油价格提交要约,但抵押品的出价为0 DAI,这开始了短短的10分钟拍卖时钟。

“尽管自动交易系统通常被设计为以编程方式提高交易的汽油价格,但许多此类交易系统无法很好地处理随机数差额,甚至根本无法解决,” Blocknative帖子警告说。

在1,462个案例中,Keepers未能注意到其出价被卡在了内存池中,攻击者中标了,窃取了数百万美元的ETH,几乎迫使MakerDAO紧急关闭。

此后,MakerDAO将拍卖时间延长到六个小时。 Blocknative已开放其Mempool活动数据集,以供社区成员进一步研究。

博客文章注释:

“内存池是区块链生态系统中的关键元素,但短暂但经常被忽略。因此,内存池给建设者和用户都带来了许多’未知未知数’。”

但是,在这种情况下,攻击者研究了Maker的Keeper代码,并意识到有可能知道真正的Keeper并没有。

关于作者: szhbsd

热门文章