从当红明星到 DeFi 高危地带,预言机安全问题该如何防范?_APP:NLINK

通过去中心化方式将价格数据在链上生成出来,这或许是唯一可行的正确逻辑。

原文标题:《预言机为何成为当前DeFi高危点?》撰文:WebX实验室

一件接着一件,Compound动辄千万美金资产清算事件的爆出,让从前备受推崇的预言机成为众矢之的。而且闪电贷攻击系列事件给外界塑造了一种愈演愈烈的恶性示范,从一系列事件上来看,基于可重入性的漏洞利用在过去几年中有所下降,而基于预言机价格操纵的漏洞利用率现在正在上升,预言机成了一个高危地带。

为什么预言机是DeFi中的重要角色?

预言机主要围绕着区块链协议如何以可靠、可信的方式从第三方来源收集数据,然后将数据反馈给高度网络化和自动化的去中心化应用Dapp和智能合约,以实现来自链外世界的信息源、数据源的沟通引入,从而建立链上权威事实。

这种外部数据的引入,将作为链上智能合约触发的重要依据。以Compound为例,他们需要预言机的价格来确定借贷能力和抵押要求,以及用于需要计算账户价值的的所有功能,从而判定要不要对这个账户的资产进行清算从而满足抵押需求。而对于一些采用AMM方案的DEX来说,由于交易规模小,深度不足,其市场价格很容易受到大额交易的影响而出现剧烈波动,这也需要预言机提供主流交易所数据来避免这种剧烈波动。

讲到这里可能你会觉得,预言机可能只是一个单一的辅助件,仅能作为外部数据的引入作用,事实恰恰相反。预言机的喂价功能或数据源的可靠支撑只是非常早期的形态,长远来说,预言机将作为现实世界各类数据、信息、信用、资产等诸多要素的集大成者,它提供数据或信息的正确程度、技术实现的去中心化程度以及模块脚本的智能化程度,都将对未来的区块链世界和现实世界的连接产生重大影响。

从当红炸子鸡到高危点的预言机

本身预言机在今年DeFi爆火的盛夏中名声大燥,包括Chainlink、NESTProtocol等项目一度成为市场聚光灯下的当红明星项目。但早先的热度与最近一个月里的舆论风向形成了鲜明反差,预言机被推到了另一个方向的风口浪尖上。

起因就是预言机越来越成为闪电贷攻击、Compound清算等事件的突破点。Compound首席执行官RobertLeshner回应道,「Compound协议本身似乎没有遭受损失,对于预言机攻击是否是有人故意为之还是意外,或者是两者兼有,无法得知。」

回顾早先Synthetix的攻击事件,其核心逻辑是在Synthetix上,用户可以合成其他货币资产,Synthetix依靠定制的链下喂价机制,从一组秘密喂价核算出总价格,并以固定的时间间隔发布在链上。然后,依据计算出来的价格,允许用户针对资产进行多头或空头交易。

SynthetixMKR操纵的演示

然后2019年6月底,Synthetix所依赖的其中一个喂价渠道错误的报告了韩元价格,报价比真实汇率高出1000倍,这个价格被系统接受并发布在了链上。有一个交易机器人迅速在sKRW市场上进行了买入和卖出,利益汇率差赚取巨额利润。虽然Synthetix从多个来源提取价格,然后一个错误的报价就使得整个平台遭遇了毁灭性的打击。

早先的闪电贷攻击原理就很简单,即作恶者从闪电贷中贷出巨量资金,用于深度或流量少的交易所或池子中,而这样就会造成短时间内资产价格被操控的局面,这种不符实际被操控的数据波动将会为预言机带来错误的输入和输出,作恶者利用这些错误的输入和输出所造成的后果就可以轻松获利,更直白的说,攻击者在交易过程中几乎完全控制了价格,受害者只能被动的接受损失。同理,Compound清算事件中,由于CoinbasePro平台上的稳定币DAI价格一度被拉升至1.3美元,这导致使用该平台预言机喂价信息的DeFi协议Compound出现了大规模清算。

而「罪魁祸首」DAI上涨是因为CoinbasePro采用的是订单簿模式,当流动性不足时就很容易对价格进行操纵。攻击者事先计算好了操纵CoinbasePro平台DAI价格所需的金额,以及通过清算Compound巨鲸能够获得的利润,并在短时间内完成了这次攻击。

由此看来作为重要的依据的预言机很大程度上无法保证数据来源的真实性或者有效性,Compound平台的预言机取价数据来源中心化且单一,而中心化的来源则很容易被伪造、篡改、修改或隐藏信息,这种将任何单一的中心化数据源用作价格预言机是不明智的也是极度危险的,预言机摄入遭破坏或无效的数据可能会给下游用户带来巨大的灾难。

另一方面,就是链下数据对价格波动的反应一般比较慢,不够智能。背后原因是需要相信推送链上数据的特权用户不会变坏也不会被胁迫推送不良更新,而这种信任推送不允许任何特权方访问,这也就意味着即使被攻击,也只能坐以待毙,由于没有更好的解决方案跟上,这就引发了一起又一起的资产损失,但本质来说,攻击者的操控手段也并非高深,只是在现阶段预言机还不够智能,很难及时应对和抵御。未来一个相对成熟的预言机应该是一个协议的权威真相来源,关于资产的价格,关于市场的状态,关于危机事件的处理。

拯救DeFi安全先要拯救预言机

既然上面已经提到了预言机的漏洞所在,尤其遭受诸多惨痛代价后,将预言机这个「短板」暴露无遗。那么,在拯救DeFi安全性上,首先应该就是在数据源供应方的选择上,预言机本身必须要做到,通过符合区块链共识机制的去中心化方式将价格数据在链上生成出来,这也是唯一可行的正确逻辑,而不是找中心化数据源几个节点取个中位数简单的给链上喂价。

除此以外,预言机应该寻求更多的防护罩,这方面可以依托更安全的第三方机构保驾护航,进一步降低危机漏洞发生的可能性。在报价方面,预言机应尽量从多节点聚合数据,对价格偏差预留处理机制,并按照时间同步更新,确保提供给智能合约的数据可靠、可信、抗干扰,像数据可信验证机制,异常报警机制等都应该用于预言机上。

最为重要的是,在异常数据的处理上,如何做到及时反馈并阻止事件发生,这里面我们可以适当增加一些人为干预,即在市场波动大、链上表现异常、价格更新慢的时候,我们可以设置专门的报告人手动在链上发布更新。而更智能的阻止异常数据的发生,可借鉴参考Nest预言机项目,其构建的去中心化验证者和报价矿工之间的博弈机制,形成质押报价交易对资产的方法进行双边报价的链上生成,直接杜绝错误数据被采用。

不论是DeFi发展还是区块链新领域的拓展,链上、链下的数据交换势在必行,预言机的作用不可小觑。随着预言机海量的数据类型越来越多,其影响力和关键作用越来越重要,预言机也将从价格预言机向事件型预言机发展,市面上诸如、政务、游戏等行业已经出现了事件型预言机的采用和推广,相信历经沧桑,预言机依然将作为沟通链上和链下世界的重磅武器,只不过需要时间修炼。

Chainlink

Chainlink

Chainlink是一个去中心化的预言机网络,为区块链智能合约解决互操性问题,并将其安全连接至链下数据源、WebAPI和传统银行支付系统。Chainlink极大丰富了智能合约的应用场景,使其在金融、保险和供应链等众多行业都可以得到应用。Chainlink为谷歌、甲骨文和SWIFT等大型企业以及Polkadot与Substrate、Synthetix、Loopring、Aave、OpenLaw和Conflux等领先智能合约开发团队提供了安全可靠的预言机服务。Chainlink允许任何人安全地提供智能合同,访问关键的外部数据,脱机支付和任何其他API功能。任何拥有数据feed、脱机服务或任何其他API的用户均可以直接将其提供给智能合同,以换取LINK令牌。其于2017年6月由旧金山金融科技公司SmartContract推出,开发商将其描述为一种安全区块链中间件,旨在通过允许智能合约访问关键链外资源、网站API、传统的银行账户支付。Chainlink网络是Chainlink节点的分布式网络,它们都直接将特定数据、API和各种离线支付功能的使用输送给智能合约。有了Chainlink,你可以在一个合约中调用一个或几个数据库查询需要的数据。Chainlink网络由两个独立的部分组成,链上链和外链,它们必须交互以提供服务。该网络的构建方式使其可以升级,因此可以在更好的技术和技术出现时替换其不同的组件。网络的链上组件通过服务级别协议SLA基于智能合约的一方请求的度量来过滤神谕。使用这些指标,Chainlink收集对SLA查询的响应,使用声誉和聚合模型对它们进行排序,并提供可能实施到智能合约中的Chainlink查询的最终集合结果。Chainlink首席执行官SergeyNazarov表示,当你在Chainlink搜索框中输入「利率」,会看到大概有50多种数据流可选,将需要的复制粘贴到你的智能合约中。数据库开发者将API与Chainlink连接之后,每一次有人调用他们的数据库,都可以获得LINK代币。Chainlink团队来自一家运行了三年半的智能合约公司SmartContract,位于美国旧金山,专门为大公司定制智能合约。目前,SmartContract最大的客户是跨行交易网络SWIFT,后者的网络有11000家银行加入。SmartContract原来所做的一次性的定制化合作,同样也需要定制化的API,甚至需要跟选定的数据库用专线连接;且不够灵活,没办法决定你一次想多少个数据源。Chainlink则是希望让智能合约变得每一个人都能用,同时保证安全,提供更多选择。Chainlink开发者可以让智能合约从不同节点访问多个独立数据源,持续交叉验证,或者取几个输入值的中间值,以降低错误的概率。ChainlinkLINK查看更多Synthetix

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

金宝趣谈

[0:0ms0-3:985ms