bZx平台在短时间内遭遇两次攻击,攻击者通过利用价格预言机的漏洞和操作错误,成功获得了近100万美元的利润。文章详细分析了每次攻击的步骤、引发攻击的原因,以及如何通过使用去中心化预言机来解决预言机问题,以增强DeFi应用程序的安全性。
在过去几天中,去中心化交易和借贷平台 bZx 遭遇了两次攻击。这些攻击使得施害者获得了近100万美元的利润,并引发了Crypto Twitter上的大量讨论。
虽然导致这些漏洞的原因有几个,但主要问题之一是将Kyber Network作为唯一的价格预言机。
在区块链和加密货币领域,预言机的使用是一个热门话题,因为它们可能成为原本去中心化金融(DeFi)应用中的单点故障。
让我们深入分析每一次针对bZx的攻击,以便更好地理解问题出在哪里、预言机在这些漏洞中所扮演的角色,以及如何解决预言机问题。
第一次攻击发生在2月14日星期五的晚上(对于bZx来说,这不是一个美好的情人节)。这是一场时机恰到好处的攻击,因为许多bZx团队成员在ETHDenver上忙着黑客项目。
无论如何,以下是施害者为执行漏洞所做的总结:
bZx攻击 #1 的经过 — 图片由Peckshield提供
阅读此文 以获取Peckshield对攻击的全面分析。
bZx最终使用其管理员密钥暂停了其网络。查看bZx的事后分析。
第二次攻击发生在2月18日清晨(具体时间取决于你居住的地方)。在发布本帖时,详细信息仍在完善中,但基本上施害者所做的是什么(感谢Larry Cermak的推特线程):
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这样的第三方预言机,你应该这样做。
一个更好的解决方案是设计你的系统以完全避免使用预言机。
由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产生积极还是消极的影响?请在评论中告诉我们你的看法!
最初发布于 https://www.meter.io 于2020年2月19日。
- 原文链接: medium.com/meter-io/the-...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!