当前位置: 首页 > 科技 > 区块链 > 深度分析DeFi智能合约的数据质量问题_腾讯新闻

深度分析DeFi智能合约的数据质量问题_腾讯新闻

天乐
2020-08-23 00:34:49 第一视角

随着去中心化金融(下文简称DeFi)的生态不断扩张,区块链预言机保障的价值也在同步增长,二者相辅相成,实现了良性循环。在DeFi应用价值飞速增长的同时,发展创新型DeFi生态系统并且提升其安全和可靠性也成为了一项重要工作。

区块链的“预言机问题”备受关注,有许多文章专门研究了这一课题。然而,关于预言机“数据质量”的问题却存在许多未知和误解,这种误解源自于许多人觉得预言机可以传输链下数据,也可以自己产生高质量的数据。我们在研究和开发安全的预言机解决方案时,发现预言机的作用是将数据传输至区块链,并保证数据无法被篡改,而不是自己产生数据。

Chainlink价格参考数据所采用的去中心化预言机网络将数据传输和数据质量做了区分,Chainlink是DeFi领域最受欢迎的预言机网络,服务于以太坊上超过90%的去中心化衍生品市场。Chainlink的预言机网络成功地为已上线的应用提供优质数据,并甄别出了保障数据质量的五大关键要素。

1.将预言机节点连接至付费数据提供商,确保用户合约连接至最高质量的数据。这需要预言机协议拥有密码和身份认证信息管理能力,让所有节点都能安全储存API密钥并管理付费订阅数据源的账户登录信息。

2.通过节点连接专业链下数据提供商,获取优质精准的价格数据;连接数据聚合商,覆盖所有市场,获取扣除交易量因素的市场价格数据。利用预言机基于一系列原始数据聚合出全球市场价格数据是极其困难的工作,而且这样做会为预言机产生巨大的安全漏洞,比如交易量快速转移以及数据出现异常值等,这些都是加密货币市场常见的风险。

3.在预言机网络中实现去中心化,保障安全和可靠性。从多个独立节点聚合数据,确保预言机向智能合约传输数据时具有防篡改性和较高的可用性。从多个优质数据提供商获取数据,并同时保障数据质量,在数据源层面提升去中心化水平。

4.让用户和开发者在设计预言机时可以洞悉每个节点和整个去中心化预言机网络的当前和历史服务水平,以综合所有信息做出理性判断。避免采取“不公开即安全”(security through obscurity)的策略,尽量减少隐藏风险,并尽可能保障各方监督,在重大问题发生前未雨绸缪,杜绝隐患。

5.规避重大风险,如:只从一个交易所获取数据,或预言机网络中的数据质量良莠不齐。如果在去中心化的同时不建立质量控制标准,那么智能合约就会面临更多更复杂的风险,而这样一来,高质量的预言机方案也将无法发挥其优势。

6.为了进一步扩展这些对数据质量至关重要的功能,我们将讨论安全的去中心化预言机网络理想的构成要素,如何正确利用Chainlink灵活丰富的服务创建优质数据,以及在设计价格预言机网络时应规避哪些重大数据风险。

安全的去中心化预言机网络具备哪些要素?

预言机是连接区块链和链下世界的中间件。有了预言机,智能合约就可以利用储存在区块链以外的数据,并连通真实世界中的日常事件。这种连通链下世界的能力极大丰富了智能合约的场景,让开发者可以在更多市场捕捉价值。随着智能合约连接性的提升,其攻击表面也不断扩大,如果要保持智能合约防篡改的核心属性,就必须解决这个问题。

去中心化的预言机网络是安全的中间件,连接链上和链下环境,为开发者提供了一个安全可靠的开发框架,让用户能放心地将价值高达几十亿美元的资产放进具有外部连通性的智能合约中。如果预言机的安全性和可靠性无法与底层区块链媲美,那么即使其代码写得天衣无缝,也同样会面临重大安全风险。

Chainlink价格参考数据集合了多个去中心化的预言机网络,是以太坊生态中规模最庞大的链上价格数据集,服务于领先的DeFi应用,并且用户规模正不断扩张。Chainlink的价格预言机网络采用了可验证去中心化的设计思路和最高数据质量的模式,为用户带来最可靠的安全保障。以下是Chainlink价格参考数据的四大核心特色,所有致力于保障数据质量的去中心化预言机网络都应具备这四个特点。

从付费数据提供商获取优质数据

虽然在区块链上挖矿是普遍通行的做法,但针对具体行业输出优质数据并保障数亿美元资产却不是人人都能做到的。相比起开发者使用预言机基于原始数据生成优质数据,更好的方法是让节点直接从数据聚合商采集优质数据,因为这些数据聚合商通常拥有庞大的团队和全栈基础架构,并专门针对某个行业生成优质数据。

内部生成优质数据成本高昂,因此访问这类数据需要收费,而且还要签订具有法律约束力的合约。节点必须向数据提供商(即API)付订阅费,或者获得数据提供商的具体授权(如:企业内部数据)。这两种许可模式都需要建立密码和身份认证信息管理能力,以实现节点和API间的交互。因此,节点运营商与付费数据提供商交互时需要建立API密钥储存和登录信息管理能力。

预言机如果无法管理身份认证信息,就不能连接付费API,因此只能选择免费的开源API或盗版API。这些API接口的数据通常质量低下、下载速度慢、响应时间不可靠且不具有法律约束力或无法保障服务质量。因此,此类数据源无法为各类高、中、低值智能合约提供可靠的服务。如果向智能合约传输低质量的数据,合约将无法保障其数据的准确性或可靠性,因此会扩大攻击表面。“垃圾进,垃圾出。”这句技术领域的至理名言放在这里也同样适用。

参与价格参考数据合约的Chainlink节点通过外部适配器连接至所有付费API接口。这些API接口的数据质量更高、响应速度更快并且可以保障可用性和服务水平。外部适配器采用模块化设计理念,可以用任何编程语言编写,并可以与Chainlink节点放在不同的服务器上。外部适配器可以从数据提供商、web API、企业系统、物联网设备、支付系统和其他区块链等各种环境获取数据。

建立去中心化的优质节点运营商

如果没有安全可靠的预言机向智能合约传输数据,那么数据质量将是一纸空谈。要防止意外宕机和避免单一实体在传输时篡改数据,就必须建立去中心化的优质节点网络。去中心化的共识能够大幅提升攻击成本,因为即使网络中有几个节点宕机或恶意发起攻击,对最终聚合的结果也不会产生实质影响。

Chainlink的价格参考合约基于去中心化的预言机网络,聚合来自多个独立节点的数据,这些节点都经过安全评估,且具有抗女巫攻击能力。这些Chainlink节点由全球领先的区块链DevOps和安全团队在云端和本地服务器中运营,以规避预言机单点失效风险。另外还有许多由社区运营的备用节点随时可以加入到网络中,以提升网络的去中心化水平。

建立去中心化的优质数据源

预言机解决方案可以在不影响任何一个数据源质量的前提下接入多个数据源,以此提高其稳健性。建立去中心化的优质数据源,能够避免某一数据提供商成为唯一数据源,并且能防止唯一数据源下线的情况。然而,有些情况下可能某个优质数据源也是唯一数据源,这时就需要更先进的加密技术来保障数据质量,比如基于权益质押的服务协议(注:下文会详细讨论)、TLS认证(Town Crier、DECO)以及零知识证明。

Chainlink价格参考合约在数据源层面实现去中心化。每个价格参考网络都会统一从多个可靠的独立数据提供商获取市场价格数据。这些数据提供商全部都是付费数据聚合商,他们覆盖了Brave New Coin、Kaiko和Amberdata等所有交易市场以及其他众多优质的数据API。然后,所有数据将聚合成统一的参考价格数据,储存在链上,智能合约可以用简单的read函数访问这些数据。

开源的可视化界面和监控

如果DeFi应用的底层智能合约实现了开源和实时监控,那么向智能合约提供数据的价格预言机也应该是公开透明的。如果预言机无法保障公开透明,dApp用户就无法验证数据来源、提供数据的节点、响应延时、预言机网络服务历史以及数据质量等信息。

每个Chainlink价格参考数据合约都拥有一个开源可视化界面,其中包括具体的链上数据,比如:

每个参考数据源的最新价格

提供数据源的DeFi项目

保障价格数据安全的节点(且节点通过了安全评估)

数据更新时间

触发数据聚合所需的最少节点响应数量

关于每个节点和整个节点网络的其他关键信息

Chainlink价格参考数据使用去中心化的节点网络和数据提供商为智能合约提供优质的价格数据;上图为比特币/美元价格数据。

除此之外,还可以查看某一节点为每次数据请求提供的服务质量,以判断节点是否有能力成功完成数据请求任务。节点运营商、数据提供商和用户可以使用Chainlink Explorer查看网络中每个节点的表现,以及为甄别错误采取的具体措施。

使用Chainlink预言机灵活采集数据

通用型预言机网络要成为DeFi行业标准,必须具备灵活性,让开发者能够根据个人需要灵活创建预言机,满足对安全性和可靠性的具体需求。虽然Chainlink价格参考数据网络中有许多数据聚合商贡献全球市场数据,但Chainlink协议不会对预言机网络的模式或数据源做强制性要求。相反,Chainlink会为用户提供市场上开放程度最高的模块化框架,以满足任何具体的需求。

可随意配置数据源、节点和聚合模式

开发者可以通过外部适配器快速将智能合约连接至任何所需的数据源。除此之外,开发者还可以随意设置所需的去中心化水平、数据源、聚合算法以及数据更新频率。因此,智能合约连接外部数据的方式变得极其灵活。

Market.link 是一个第三方网站,开发者可以在上面选择预构建的外部适配器,并访问丰富的数据源。

这个定制化的框架让开发者可以按照智能合约所需的安全保障轻松扩大或缩小预言机网络的规模。Chainlink拥有规模最庞大的安全节点运营商,同时还有许多社区节点互相竞争岗位,如果用户需要额外的安全保障,可将这些节点快速添加至任何预言机网络中。另外,数据源的格式也在不断丰富,聚合数据无须任何前期开发工作。

Chainlink用户还可以选择不同的聚合方式,比如取平均数、中位数或甚至使用加权和剔除异常值等更加复杂的算法。另外还可以设置数据更新频率,用户可以选择定时更新、基于价格偏差更新(比如价格每上下浮动0.5%时更新一次)或采用基于多个参数的混合模式。

数据提供商可以是传统API接口,也可以自己运行Chainlink节点

Chainlink具有灵活的框架,数据提供商可以选择以何种方式在新兴智能合约经济中提供数据,他们可以是传统的API接口,也可以直接运行Chainlin节点。

传统API接口

数据提供商可以保持现有的模式,向订阅用户收取以法币计价的数据服务费。Chainlink节点可以订阅这些API,并在节点中安装Chainlink外部适配器,将API数据传输至链上合约。这个模式适用于任何一个数据提供商,Chainlink价格参考数据网络已经开始采用这个模式,网络中的节点订阅了Amberdata和CoinGecko等优质付费数据。Chainlink还针对交易所API开发了外部适配器,可以连接币安和Coinbase等节点。

这个模式非常高效,因为数据提供商无须改变任何现有的商业模式或基础架构。即使数据提供商本身不太愿意主动为智能合约提供服务,Chainlink节点也可以通过外部适配器模块向开发者开放所需数据源。另外,节点还可以订阅本身就是Chainlink节点的数据提供商的数据服务(下文将详细阐述),进一步提升数据的去中心化程度。

既是数据提供商,也是Chainlink节点

另一个模式是让数据提供商成为Chainlink节点,直接向智能合约出售数据。这个模式可以丰富数据提供商的变现模式,目前已经被几个领先的数据提供商采用,比如Kaiko和Alpha Vantage(市场数据聚合商),以及火币(加密货币交易所)。

数据提供商成为Chainlink节点将拥有一个独一无二的优势,那就是可以在自己的数据上进行加密签名。用户和智能合约可以确信价格数据是直接来源于数据提供商或交易所的Chainlink节点,并且数据在传输过程中没有经过篡改,因为节点在链上广播前会用独一无二的私钥在数据上进行加密签名。签名过的数据可以通过节点的公钥在链上进行验证,确保数据的完整性和真实性。

这个框架可以让数据提供商直接在区块链上广播数据,无须通过外部第三方将数据传输到链上。这样一来,数据提供商就能够控制数据在链上广播的频率,并保障数据从生成到传输整个过程的安全性。因此,数据提供商可以拥有足够的灵活性,同时向多个不同的应用以独特的方式传输数据,比如向一组应用以每分钟一次的频率更新数据,同时向另一组应用基于价格偏差值更新数据(比如价格每上下浮动0.5%更新一次)。

数据提供商可以将数据卖给Chainlink节点运营商,也可以选择自己运行Chainlink节点

同一网关面向所有区块链环境

数据提供商不可能熟悉所有区块链环境,也不可能在每个区块链上都分别设立安全机制,特别是考虑到区块链是一个新很难了解所有区块链环境。

Chainlink预言机网络可以利用已有或新建的外部适配器/发起程序迅速接入任何区块链环境。Chainlink是开源网络,核心开发者无需任何许可就能集成Chainlink预言机,因此可消除开发瓶颈,实现横向扩展。以太坊、Polkadot、Tezos、和Cosmos等众多领先的区块链都已经将Chainlink集成至其区块链网络。

这个机制可以为数据提供商和智能合约提供统一的网关,面向任何区块链出售和访问数据,最终向区块链上的dApp提供更多数据,并为数据提供商获得更多收入。值得一提的是,这个机制非常灵活,因此数据提供商无须选择把资源部署在哪里。

为数据和服务质量提供加密经济保障

在Chainlink预言机网络中,节点运营商和发起数据请求的智能合约会签订具有约束力的服务协议,协议将约定节点在服务期间必须满足的各项参数。参数包括数据交付(响应延迟)、数据质量(准确性)、质押的LINK金额(加密经济担保)、经济惩罚(罚款)以及其他由请求方约定的条款。节点运营商的报酬将取决于其是否成功履行了服务协议并按时将优质数据传输到链上。在这个机制下,运行Chainlink节点的数据提供商可以在最大程度上灵活设置数据服务保障,提升数据可信度、完整性、可靠性以及准确性。

具有约束力的服务协议为数据质量和数据交付提供加密经济保障。

服务协议建立在权益质押基础上,最终能让数据提供商为其预言机服务进行抵押担保,为请求数据的智能合约提供类似质量保险一样的保障机制,如果预言机违约,质押的权益将被没收。如果没有服务协议,预言机网络的数据交付和数据质量就不能得到约束,这样会导致数据请求方获得的数据质量或预言机服务无法得到很好的保障。

利用声誉框架和节点市场做出理性判断

实现灵活性最重要的一点是让用户可以综合判断将什么内容添加至预言机网络中。有两个功能可以实现这一点,即:声誉系统和节点市场。

声誉框架

声誉系统为用户提供了不可篡改的链上数据记录,其中记录了节点运营商和数据提供商的所有历史服务。以后,数据请求方可以查看节点历史服务的加密证明,并以此判断节点是否可靠。

通过第三方服务,可以在Chainlink节点中进行比较,选出最可靠的节点。这些网站中可以查看Chainlink网络整体的原始数据以及分析提炼出的数据,还可以看到每个预言机节点的具体数据,其中包括交易数量、响应时间、收入和成功率等。

Reputation.link 让开发者和用户可以深入洞悉Chainlink预言机网络整体的表现和性能,还可以查看每个单独的预言机和数据源。

节点市场

另一个关键要素是建立一个市场让用户可以发现预言机节点,通过筛选比较最终挑出最适合的节点加入预言机网络。目前有多个针对Chainlink节点的第三方分类信息平台,比如LinkPool的Chainlink Market和CLCG的Honeycomb Marketplace。开发者可以完全控制其预言机网络的架构,因为他们可以自行决定选择哪些节点以及节点的数量。

除此之外,还可以看到每个节点运营商的资质认证、安全评估结果、身份证明、外部适配器、数据源以及具体能为智能合约提供哪些链下服务。节点运营商可以为每个任务设置具体的价格和参数,建立一个自由市场经济,其中节点可以在不同的维度上竞争上岗。

market.link上的节点可以在链上积累声誉,并向开发者展示其声誉记录。

如何灵活地打造价格预言机,以规避重大数据源风险?

为了保障数据质量,在设计预言机时就必须提前考虑到一些可能出现的攻击向量,并防患于未然。如果开发者忽略了这些问题,就会导致用户资金面临巨大风险,并最终威胁到整个dApp的安全。

交易量转移/交易所锁定

加密货币市场与传统金融市场有所不同,因为交易所不会独家发行资产,因此无法锁定用户或占据某一资产100%的交易量。区块链技术的特点是无须许可,因此任何人都可以在其交易所中发行加密货币通证,交易者可以在任何时间交易这些通证。在这种情况下,加密货币的交易量分布在许多不同的交易所中,而且交易量会在各个交易所之间快速转移。因此,为了避免市场操纵攻击(比如绝大多数交易量转移到了某个不在聚合范围内的交易所),预言机必须要正视这个问题。

闪电崩盘

加密货币交易所通常没有熔断机制,因此很容易出现闪电崩盘,某一交易所的价格可能会与其他交易所出现严重偏差。即使规模再大的交易所都存在这种风险,在过去几年中多个交易平台都遭遇了闪电崩盘。比如Kraken就遭遇过闪电崩盘,BTC/CAD价格从11,200断崖式下跌至100CAD,跌幅接近99%。Coinbase也遭遇过一次极端的闪电崩盘,以太币价格暂时从322美元跳水至0.1美元。在2020年初,加密货币衍生品交易平台Bitmex也遭遇了闪电崩盘,XRP价格在一分钟内大跌60%,从0.33美元跌至0.13美元。

质量稀释

实现去中心化必须要同步建立质量控制标准,以避免低质量的数据源稀释聚合结果的质量。如果数据提供商和节点运营商的历史服务水平较低、没有声誉记录或无法证明其基础架构的安全性,则应被禁止加入任何预言机网络。要确保节点运营商和数据提供商有足够的资源和技能解决可能出现的任何问题,并建立预警机制和failsafe安全模式。

需要注意的是,发起向量攻击的恶意攻击者不一定都是经验丰富的开发者。任何散户交易者或一小群交易者只要发现了机会,都可以利用交易平台的UI操纵市场并篡改某一预言机的参考价格数据点,而单个预言机覆盖的市场是有限的。这在很大程度上扩大了攻击表面,因为任何人只要有网络连接和交易平台账户都可以操控存在风险漏洞的预言机。Chainlink价格参考数据合约连接数据聚集商而非某一个交易平台的API或多个交易平台的API集合,因此可以规避这类风险。

优质的数据聚合商覆盖所有价格数据源

Chainlink价格参考数据可独家接入数据聚合商,覆盖最多的交易量。加密货币交易量相对传统金融市场仍然较小,有了这个功能,就可以确保向这些市场传输准确的数据。预言机网络创建者缺乏经验和资源,很难持续追踪交易所交易量,因此将这个工作交给专业的数据聚合商。

数据聚合商的团队遍布全球,在市场覆盖和精准价格数据维护方面拥有丰富的专业经验。他们会综合考量各个参数,比如流动性、交易量、时间以及不同交易所之间的参数差异。除此之外,聚合商还会剔除任何异常值。Chainlink价格参考合约的这些功能可以很好地应对交易量转移、闪电崩盘和质量稀释等问题。

另外,Chainlink价格参考合约还利用多个数据聚合商保障价格数据免受任何一个数据源的操控。这为dApp开发者和终端用户提供了更高的安全和可靠性。除此之外,通过安全评估的节点运营商以及业内顶尖的监控团队也会提供支持。

Chainlink价格参考数据合约的端到端流程

采集数据时不当使用预言机可能造成的重大风险

预言机网络如果忽略交易量转移风险或只从一个API获取数据,将导致重大风险,要充分了解这些风险,就需要讨论具体应用的案例以及最终会导致的结果。

忠告:避免预言机网络只从一个交易平台API获取数据

预言机网络如果只从一个交易平台获取价格数据,不仅在平台遇到宕机、闪电崩盘和价格操纵时无法提供有效保护,而且平台的市场覆盖将受到极大限制。这种模式在最初价格波动较低的时候似乎是有效的,但当市场价格波动上升,交易者会开始套利,交易量会在各个交易所之间频繁转移。即便升级预言机,使其从另一个交易所获取数据,新的价格点也可能非常不准确,因为市场交易量可能会出现新的变化。这就导致虽然数据源变了,仍然无法维持可靠的市场覆盖。

下面,我将与大家分享一个例子,一步步说明单一数据源的危害:

Joe是一名开发者,他开发了一个智能合约应用,需要从链下获取加密资产的价格数据。他决定建立一个预言机网络,从他指定的C交易所获取价格数据。在他创建预言机的那天,C交易所占资产交易量的80%,所以他觉得这是一个不错的选择。

一周后,用户资金量不断增长。虽然C交易所现在只占资产交易量的50%,但市场价格波动较低,因此目前这个预言机模式并没有什么问题。Joe觉得他可以为他的dApp继续开发更多功能,对于预言机市场覆盖率越来越小这件事并没有想太多,因为毕竟也没出什么问题。

又过了一个月,有一天半夜,Joe被一通电话吵醒,得知他的dApp中高达几百万的用户资金被卷走了。他很快发现C交易所大部分的交易量都转移到了别处,而C交易所是他预言机唯一的数据源,现在只占交易量的5%。而这个交易所被一个大型交易者操控,导致预言机报告了错误的价格数据,因此让其有机会通过不公平的方式吸走了一大笔用户资金。

Joe的dApp由于失去了用户信任,目前已经经营不下去了,而这件事也让他作为开发者的名誉严重受损。如果Joe的预言机建立了更好的市场覆盖机制,是完全可以避免这种情况的。

上述例子说明了预言机网络只从一个交易所获取数据可能导致的严重后果。市场覆盖是决定应用成败的关键因素,如果遇到闪电崩盘,那么后果将更加不堪设想。

预言机从预先设定的交易所聚合数据,无法规避交易量转移的风险

预言机如果直接从预先设定的交易所获取数据,那么当交易量转移到聚合范围以外的交易所,将产生巨大风险。在最初建立预言机网络时,被选为数据源的交易所可能确实具有充足的流动性,但随着时间推移,无法保障交易量是否还会继续留在这些交易所。这会降低恶意攻击者的攻击成本,因为他们只需操控一小部分资产交易量就可以达到攻击目的。

这似乎是一个很小的攻击向量,但想象一下这样的情况:

Bob也是一名智能合约开发者,他吸取了Joe只从一个交易所获取数据的经验教训,决定让预言机从一组预先设定的交易所A、B和C中获取加密资产价格数据。他的逻辑是:在各个交易所价格数据中取中位数,就能避免市场操纵行为。

几周后,Bob很确信他的做法是对的,因为他的预言机从多个交易所获取数据,能够持续输出正确的结果,就算某一个交易所被操控也无法改变结果。因此,他将注意力转移到了提升应用的核心商业逻辑上。然后他就开始专注于开发新功能,并没有注意到市场上出现了两家新的交易所,并占到了85%的资产交易量。

几天后,Bob猛然发现他遇到了和Joe一样的危机,他的智能合约也流失了几百万用户资金。最后他发现虽然他当初在建立预言机网络时选择的交易所流动性都是充足的,但随着时间推移,交易量逐渐转移到了新的交易所,而这些交易所不在他最初设置的聚合范围内。因此,他的预言机网络最终仅覆盖了15%的交易量,并不幸被交易者操控,从而谋取私利。

虽然Bob建立去中心化预言机数据源这个想法是好的,但是他并没有考虑到交易量会在各个交易所之间转移,也没有想到新出现的交易所会占据某一资产大部分的交易量。即使不出现新的交易所,交易量仍有可能最终集中至一两家交易所,那么剩下流动性较低的交易所就可能被操控,中位数计算结果也可能遭到篡改。

Joe和Bob都没能保证充足的市场覆盖,因为他们想用预言机来生成数据。如果他们用预言机从数据聚合商采集数据,就完全可以避免这样的悲剧发生。因为数据聚合商在防止市场被操控和保障市场覆盖率方面拥有几十年的专业经验。

将低质量的预言机与高质量的预言机混用

一些人为了避免出现异常值,会同时接入多个不同的预言机并聚合出一个最终价格数据。同时接入多个预言机实现去中心化,听上去似乎是个不错的方案,但与此同时它也带来了更大的风险,因为很难确保网络中每个预言机的可靠性和数据质量都保持同一水平。

Chainlink价格参考数据网络拥有非常安全可靠的价格数据,而相比之下一些预言机则非常不成熟,透明度较低,不仅无法连接至付费API,还无法直接从交易所API获取市场数据,这类预言机输出的数据质量非常差。将Chainlink优质的预言机数据与某些劣质数据混合在一起,可能会产生极大的风险。随着DeFi应用的价值越来越高,这个问题将变得至关重要,因为通过预言机漏洞攻击DeFi dApp的经济诱惑会越来越大。

设想现在聚合了三个预言机解决方案,一个是Chainlink价格参考数据,它通过优质节点从付费数据聚合商获取数据;还有一个方案是从预先设定的一组交易所API获取价格数据;最后一个方案不支持身份认证信息管理,因此只能连接一个低质量的数据源或交易所API。

将Chainlink的优质数据与其他不安全的预言机输出的低质量数据聚合在一起,会降低最终聚合数据的质量。

在这个例子中:

左手边是Chainlink的价格参考数据,从多个优质数据聚合商获取数据,最终输出交易量和流动性加权价格,这些价格覆盖了所有交易价格是100美元的交易环境。

左上方的预言机方案从预先设定的一组交易所API(A、B、C)获取数据,当时仅占15%的市场交易量,而D和E交易所占85%的交易量。这将使最终数据结果遭到篡改,导致预言机报告了错误的价格:70美元。

左下方的预言机方案只连接了一个低质量的数据源,这个数据源由于市场波动性较高而中断了服务。由于单点失效,因此预言机报告的价格是0美元。

智能合约在0美元、70美元和100美元三个值中取中位数,最终聚合出了错误的数值:70美元,而正确的市场价格是100美元。更糟糕的是,三个数值的均值是57美元。在这两种情况下,其他两个预言机解决方案传输的低质量数据会稀释Chainlink价格参考数据传输的高质量数据。

这种情况会导致最终生成低质量的数据,结果容易受到操纵,并稀释了Chainlink的优质数据(即扣除交易量因素的数据)。在预言机层面实现去中心化固然重要,但同时也应保障数据或节点的质量。将良莠不齐的数据掺在一起,会稀释Chainlinik价格参考数据网络的价值。我们强烈建议大家不要使用未知数据源的价格数据,不要接入算法存在明显漏洞的预言机,也不要使用无法获取付费数据或加密经济机制较弱的预言机。

为下一代应用提供优质数据

我们应该将预言机和数据源分开看待,这两个环节必须拥有同样高的抗风险能力,结合在一起才能实现全面的、端到端的安全性。为了为DeFi生态建立可靠的预言机网络,并保障几十亿甚至几万亿美元的资产,必须确保传输至DeFi应用的数据是安全可靠的。Chainlink一直以来都致力于打造安全的预言机和可靠的数据,实现端到端的安全,助力DeFi在未来几年不断繁荣发展,成为主流的解决方案。

提示:支持键盘“← →”键翻页
为你推荐
加载更多
意见反馈
返回顶部