bZx攻击——出了什么问题,预言机在这些攻击中扮演了什么角色

  • mikewchan
  • 发布于 2020-02-20 13:51
  • 阅读 11

bZx平台在短时间内遭遇两次攻击,攻击者通过利用价格预言机的漏洞和操作错误,成功获得了近100万美元的利润。文章详细分析了每次攻击的步骤、引发攻击的原因,以及如何通过使用去中心化预言机来解决预言机问题,以增强DeFi应用程序的安全性。

bZx攻击 — 出现了什么问题,以及预言机在这些漏洞中的作用

bZx攻击可以归因于多种原因,其中之一是使用单一价格预言机。

在过去几天中,去中心化交易和借贷平台 bZx 遭遇了两次攻击。这些攻击使得施害者获得了近100万美元的利润,并引发了Crypto Twitter上的大量讨论。

虽然导致这些漏洞的原因有几个,但主要问题之一是将Kyber Network作为唯一的价格预言机。

在区块链和加密货币领域,预言机的使用是一个热门话题,因为它们可能成为原本去中心化金融(DeFi)应用中的单点故障。

让我们深入分析每一次针对bZx的攻击,以便更好地理解问题出在哪里、预言机在这些漏洞中所扮演的角色,以及如何解决预言机问题。

bZx攻击概述

攻击 #1

第一次攻击发生在2月14日星期五的晚上(对于bZx来说,这不是一个美好的情人节)。这是一场时机恰到好处的攻击,因为许多bZx团队成员在ETHDenver上忙着黑客项目。

无论如何,以下是施害者为执行漏洞所做的总结:

  1. 从dYdX提取了10,000 ETH(约270万美元)的闪电贷
  2. 使用5,500 ETH作为抵押,在Compound Finance上获得112个wBTC
  3. 向bZx的Fulcrum pToken sETHBTC5x发送1300 ETH,开设了一个相对于ETHBTC比例的5倍杠杆做空仓位(基本上是对ETH做空,偏向于BTC)
  4. 借入5637 ETH,并通过Kyber Network的Uniswap储备将其兑换为51个wBTC,使得wBTC在Uniswap上的价格飙升至正常价格的3倍
  5. 在Uniswap上以6871 ETH的价格出售112个wBTC
  6. 用收益偿还给dYdX的10,000 ETH的闪电贷
  7. 获利约1,271 ETH(约35万美元)

bZx攻击 #1 的经过 — 图片由Peckshield提供

阅读此文 以获取Peckshield对攻击的全面分析。

bZx最终使用其管理员密钥暂停了其网络。查看bZx的事后分析

攻击 #2

第二次攻击发生在2月18日清晨(具体时间取决于你居住的地方)。在发布本帖时,详细信息仍在完善中,但基本上施害者所做的是什么(感谢Larry Cermak的推特线程):

  1. 在bZx处提取了7500 ETH的闪电贷
  2. 在Synthetix上以3517 ETH交易获得940,000个sUSD(大约1美元的价格)
  3. 用900 ETH在Kyber和Uniswap上购买sUSD,使sUSD的价格飙升至约2.30美元
  4. 使用sUSD作为抵押,在bZx借入了6796 ETH(该贷款远大于正常水平,因为抵押品似乎远大于实际情况)
  5. 偿还7500 ETH的闪电贷
  6. 获取2379 ETH的利润(约64万美元)

bZx再次暂停其网络以处理此次攻击。

导致攻击的问题

有几个问题导致这些漏洞的发生。

这些攻击之所以可能的第一个原因是多个DeFi平台(如Kyber、Uniswap、bZx、Compound等)之间的可组合性。这些平台共享代币流动性,使得攻击者能够 1) 使用无流动性的资产以低成本借入大量代币(具体来说就是攻击 #1 第3步中的5倍杠杆仓位),以及 2) 在多个平台之间操纵价格来促进这些拉抬和抛售的漏洞。

接下来,在bZx智能合约的实现中存在一个隐藏的漏洞,使得攻击者在攻击 #1的第3步中采取了未充分抵押的仓位(同样,相信攻击 #2的第4步也是如此)。基本上,bZx的代码中有一个用于检验交易仓位是否健康的完整性检查。但是这个完整性检查被绕过了,从而使漏洞得以成功。Peckshield在这里对漏洞进行了很好的分析。

最后,bZx单独使用Kyber作为其价格数据的预言机。

攻击者能够操纵攻击 #1 和 #2 中wBTC和sUSD的价格,分别在Kyber和Uniswap上。Kyber使用Uniswap的储备,因此在Uniswap上的价格变化导致Kyber的价格变化,而该价格又被输入到bZx的智能合约中。

让我们深入研究在去中心化金融应用中使用预言机的问题,以及如何解决这些问题。

如何解决去中心化金融中的预言机问题

正如前面提到的,bZx采用Kyber作为单一预言机。如果你的去中心化金融应用必须依赖单一的预言机,你就牺牲了你希望实现的去中心化、无信任特性。

避免DeFi中预言机问题的一种方法是使用去中心化的预言机服务。

bZx已经宣布将使用Chainlink作为其价格预言机的补充。其他的去中心化预言机服务还包括Delphi、Oraclize、Band Protocol、Razor、Tellor等。

尽管去中心化的预言机比单一的预言机是更好的解决方案,但你仍然依赖外部方以适当的方式行事。

一个更好的选择是构建你自己的去中心化预言机。

一个很好的例子是Augur,这是一个基于以太坊的去中心化预测平台,允许你对未来事件进行投注。你可以下注是否唐纳德·特朗普会赢得2020年选举、湖人队与凯尔特人队的比赛结果等等。(声明:Augur的创始人Joey Krug是Meter的投资者之一,投资于Pantera Capital。)

虽然Augur可以依赖外部预言机提供这些事件的结果,但他们选择了创建自己的去中心化预言机。他们开发了一个基于众包的共识系统,REP(Augur的原生代币)持有者可以对此类事件的真实结果进行投票。如果其他REP代币持有者不同意结果,他们可以对这些投票提出异议,这一过程将反复进行,直到达成可靠的结果。

如果你能够避免使用像Augur这样的第三方预言机,你应该这样做。

一个更好的解决方案是设计你的系统以完全避免使用预言机。

Meter如何避免在货币创建中使用预言机

由MakerDAO创建的Dai目前是最去中心化的稳定币。Dai的价值与美元Hook,但它是通过锁定在智能合约中的ETH作为支持。

通过以当前抵押比率1.5(即你需要存入价值150美元的ETH才能获得价值100美元的Dai)为抵押存入ETH,你可以铸造Dai。这个工具被称为你的Vault。

但如果ETH的价值跌破某个价格,威胁到你的Vault的稳定性,你的仓位可能会被清算以涵盖已发行的Dai的数量加上清算费用。

MakerDAO系统如何确定这个至关重要的ETH价格?

通过一个预言机,正是这样。

MakerDAO已经构建并持续改进他们自己的预言机。但事实是,他们的系统高度依赖于这个预言机的正常运作。尽管这个预言机可能已经足够去中心化,但仍然存在风险

另一方面,Meter生态系统在不依赖于预言机的情况下创建MTR稳定币。

该系统使用类似于比特币的工作量证明(Proof of Work),以最高的去中心化级别创建MTR,从而没有对手方风险。

无需抵押就可铸造货币,没有预言机风险,没有清算威胁,也没有监管问题。

结论

毫无疑问,预言机提供的外部数据对于去中心化应用的效用至关重要。

正如你在bZx攻击中看到的,预言机数据的可靠性和准确性至关重要。如果这些数据可以被操纵,它可能会破坏整个系统。

去中心化的第三方预言机是一个不错的解决方案。针对特定Dapp的去中心化预言机是更好的选择。不使用预言机则是最佳方案。

我们不相信一个金融系统应该依赖于预言机,预言机绝对不应该是货币创建的一部分。

这就是我们设计Meter的原因 — 以创造出最去中心化的货币。

你怎样看待bZx攻击?可以采取什么措施来防止它们发生?你认为它们会对DeFi产生积极还是消极的影响?请在评论中告诉我们你的看法!

我们希望你喜欢这篇文章!如果你喜欢,给我们点个赞 👏🏻(最多50次!)帮助更多的人找到这篇文章。

要获取Meter的最新消息,请访问我们的网站并关注我们在TwitterTelegramDiscordFacebook上的动态。

最初发布于 https://www.meter.io 于2020年2月19日。

  • 原文链接: medium.com/meter-io/the-...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
mikewchan
mikewchan
江湖只有他的大名,没有他的介绍。