区块链业界

Oracle攻击是什么,为何它能成为诸多Defi项目的通病

共享财经 来源:共享财经 2019-07-04 10:29

o_1derqq5fi1jafg971oqtp0p18jpp.jpg

上周,基于以太坊构建的合成资产发行平台Synthetix被曝遭遇Oracle攻击。

虽然在此之后Synthetix创始人发布博客文章表示,经平台与用户协商,已回滚所有交易,并给予BUG奖金。但不到1小时就窃取10亿美元的恐怖漏洞仍然引起了人们的注意。

众所周知,Oracle攻击是DeFi资产管理类项目普遍面临的安全风险。鉴于最近发生的Synthetix Oracle事件,我们利用这个机会仔细研究了许多现有的DeFi应用程序所依赖的Oracles的潜在问题。

什么是Oracle? Oracle为什么重要?

区块链本质上不需要从自己的系统和网络之外访问数据。oracle是一种技术,它将外部数据源和api接口转换为可在区块链中使用的兼容形式。它充当一个数字代理,查找和验证真实世界的数据,并以加密安全的方式提交这些信息,以便智能合约使用。这允许智能合约基于外部事件定义状态更改并触发区块链上的事件,并与外部世界进行交互。

对于许多构建在区块链上的应用程序来说,与外部世界的交互和对外部数据点的响应对于操作是至关重要的。例如天气、彩票结果、真实世界的新闻事件、物联网数据,以及与web api的任何交互,都需要Oracle才能让应用程序有效地使用这些数据。

在分散金融领域迄今最成功的分散应用中,汇率价格信息尤为重要,例如MakerDAO的债务抵押债券头寸管理信息,这些信息确保了Dai维持其1:1锚定美元的汇率机制所需的清算和有效风险管理。

Oracle存在的问题

Oracle的问题在于,它们将集中式的信任点创建到系统中,而这些系统本来就是不可信和分散的。由于oracle控制智能合约中的输入数据,因此它在响应输入数据时控制智能合约的操作。

这是一个重要的漏洞和失败的中心点,因为一个受攻击的oracle本质上意味着整个智能合约受到了攻击,从而消除了应用程序中大部分的权力下放和它在应用程序中的好处。

正是由于这个原因,使用Oracle的应用程序通常必须在其设计中构建redundancy(冗余),以适应针对一个数据点的多个Oracle、处理多个数据源的构建方法,以及在存在冲突信息时协调数据(例如恶意操纵Oracle)。

易受攻击的oracle系统的影响可能相当严重,特别是对于管理大量已押注和已借出资本的DeFi应用程序,而且经常交换大量的数据。最近发生的一起不幸的安全事件涉及到在DeFi中使用Oracle,这就是Synthetix oracle事件。

简而言之,Synthetix是一个多层次的发行平台和交易平台,它允许任何用户将合成加密资产(如加密货币、法定货币)铸造成使用加密货币作为抵押品的衍生品。这些合成资产复制了真实资产的价格,并依靠价格信息来不断更新汇率。

在这个特殊的例子中,法币对的API是离线的,这意味着只有两个Oracle提供数据,其中一个提供了错误的定价数据,套利交易机器人迅速进行了大量交易,获得了大量的合成ETH。

改进oracle的解决方案

虽然Synthetix的问题已经解决,并且正在实施额外的措施来防止将来发生类似事件,但是它提醒我们,使用oracle的应用程序在其使用和设计中有改进空间的领域所面临的潜在敏感性。这次事件提出的一些重要问题是:redundancy的重要性

从Synthetix事件中可以看出,由于oracle是故障的中心点,因此一个数据源显然需要使用多个oracle。API数据源常常会离线,产生不正确的值或被操纵(例如,来自低流动性交易对的价格)。

对于Synthetix来说,很明显,每个数据提要使用三个单独的oracle可能还不够。相反,Maker为其价格feed使用了14个oracle,但是这会产生更多的成本和设计复杂性,这些开销可能会影响应用程序的性能。同样重要的是要注意,这些oracle中的大多数使用相同的脚本,这意味着这些oracle并不是完全独立的。如果oracle脚本有一个关键的bug,那么所有的oracle都可能同时失败。

降低实现和使用多个oracle的复杂性和成本的解决方案将允许以更大的redundancy构建分散的应用程序。ChainLink和Band协议都通过各种直接奖励系统激励参与者创建更多可用的oracle选项,这些选项的价格具有竞争力,并且易于实现到现有的智能合约中。因此,在应用程序中增加oracle的冗余,从而提高它们的健壮性,尤其是与其他不需要参与者直接拥有任何东西的解决方案相比,这将更加经济和实用。

目前的Defi项目如何管理oracle?

由于oracle依赖于分散应用程序的外部当事人,因此必须有某种治理流程来决定如何将oracle合并到设计中、这些数据源来自何处以及谁来管理这些数据源。

Synthetix采用的是团队控制,因为这是在较小规模上最实用的解决方案,特别是在协议开发的早期阶段,因为可以更快地进行更改。然而,这意味着系统集中在团队周围,为依赖于数据提要的社区提供了几乎无法控制其行为的控制。(该团队认识到这一点,正转向一种更加分散的模式)。

相反,对于MakerDAO来说,它有一个复杂的治理系统,需要社区投票和参与来对oracle实现进行更改,这可能是一个缓慢而繁琐的过程,容易导致低参与率和往往是间接的激励。

ChainLink和Band协议都通过各种直接奖励系统激励参与者创建更多可用的oracle选项。其中,ChainLink正在成为解决oracle问题最有希望的解决方案之一,但仍无法保证数据来源是真实的。

而Band协议则是为oracles开发了一个框架——令牌管理数据源(TCDs),由受治理和管理的数据提供者组成的网络,并辅以激励措施。但这一框架也尚未得到市场验证。

作者:Soravis Srinawakoon

编译:共享财经 Neo

文章来源:http://www.gongxiangcj.com/posts/20625
原文作者:共享财经
特别申明:区块链行业ICO项目鱼龙混杂,投资风险极高;各种数字货币真假难辨,需用户谨慎投资。blockvalue.com只负责分享信息,不构成任何投资建议,用户一切投资行为与本站无关。

1.价值区块链(blockvalue.com)遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.价值区块链的原创文章,请转载时务必注明文章作者和"来源:价值区块链(blockvalue.com)",不尊重原创的行为本站或将追究责任;3.作者投稿可能会经价值区块链编辑修改或补充。