注:本文出自《How to DeFi:Advanced》第Ⅳ部分第13章。作者包括Lucius Fang, Benjamin Hor, Erina Azmi以及 Khor Win Win。

《How to DeFi:Advanced》是CoinGecko出版的DeFi经典读物《How to DeFi》的进阶版。此书可通过官网或亚马逊购买,也可通过累积CoinGecko 积分换购,要求积分为800个。

为了能更好的传播DeFi相关知识,巴比特将持续对全书进行翻译。以下是《第13章:预言机和数据聚合器》的全部编译内容。

DeFi由智能合约驱动。有时,生成输出所需的输入包含未存储在区块链上的真实数据,如天气状况或交通信息。(因此)需要有协议来弥合这一差距,即将链外数据转发到区块链上,以便智能合约与数据交互。

链外信息是DeFi的一个组成部分,应该始终是有效和准确的。虚假的数据将完全误导一个特定的项目,并给DeFi带来重大问题。然而,我们如何确保所提供的数据始终是准确的,可以信任的呢?

一些协议旨在通过将数据传输和广播到区块链上而不被操纵或篡改来实现这一目的。这通常是通过投票或共识机制来实现的,在这种机制下,验证者就最准确的数据达成一致。如果没有预言机或数据聚合器作为主要的 "真相来源",那么不良行为者便可以利用虚假信息来利用不知情的用户。

在本章中,我们将仔细研究一些可用的预言机和数据聚合器,如Chainlink、Band Protocol、Graph Protocol和Covalent。我们将看到这些预言机和数据聚合器如何在区块链和现实世界数据之间架起桥梁。

预言机协议

预言机作为链外数据和区块链之间的桥梁,或在没有内部数据馈送以参考链上数据的协议之间发挥作用。这些预言机寻求将外部信息转达给区块链,以便由DeFi生态系统中的智能合约或Dapps进行验证和执行。

Chainlink

Chainlink是一个构建去中心化预言机网络的框架和基础设施,它将任何区块链网络上的智能合约安全地连接到外部数据资源和链外计算。每个预言机网络都由独立的、抗女巫攻击(Sybil-resistant)的节点操作者保证,他们从众多链外数据提供者那里获取数据,并将信息汇总成一个单一的值,然后在链上传递,由智能合约执行。

Chainlink的主要功能之一是通过其价格反馈提供最准确的资产价格,这些价格可以被整合到区块链协议中,用于特定的使用案例。例如,在期权和期货合约到期结算时,以及资产被用作贷款抵押品时,资产价格非常重要。Chainlink的服务还包括用于跨链代币的 "储备证明 "参考源和用于链上游戏应用的可验证随机函数。

为了深入了解Chainlink是如何与数据互动和处理数据的,我们将看看Chainlink预言机所使用的将现实世界的数据连接到区块链上的一些方法。

Chainlink 预言机用来将外部数据引入链上的最常见方法是去中心化数据模型,这是一个持续更新的链上智能合约,代表了一个特定的数据(例如ETH对BTC的价格),可以在一次交易中按需查询。

基本请求和接收模式则是另一种方法,用户的智能合约直接从一个或多个Chainlink节点请求数据,并在下一次交易中收到报告的值。这种模式(通常)用于获取随机值或更独特的数据集。在这两种预言机网络模式中,Chainlink节点都是以LINK代币作为服务费来支付的。

任何人都可以成为Chainlink的节点运营商并开始向网络提供数据。Chainlink的价格馈送网络是由像德国电信的T-systems等传统企业、数据供应商和专业的开发运营公司共同运营的节点来保障的。运营自己的Chainlink节点的数据供应商直接在源头对其数据进行加密签名,为智能合约提供更大的安全保障。

2021年4月,Chainlink 2.0白皮书发布,介绍了去中心化预言机网络的新架构。去中心化预言机网络的功能类似于第2层解决方案,大大增加了数据传输的速度并提升了安全性。此外,Chainlink引入了其超线性质押模型,这是一种加密经济安全机制,激励节点提供准确的预言机报告,并大大增加了恶意行为者的攻击成本。

这就是对Chainlink和去中心化预言机网络的快速概述!你可能已经注意到:本书介绍的一些顶级DeFi协议,如Synthetix和Aave,也是由Chainlink驱动的。

Band协议

与Chainlink类似,Band 协议是一个跨链预言机平台,将智能合约与外部数据和API连接起来。与Band Protocol集成的去中心化应用通过Band协议的智能合约数据点接收数据,而不是直接从链外预言机处接收。

Band协议的一个独特之处在于,它利用BandChain,一个独立的区块链来处理和转发信息,可以处理成千上万的交易。数据可以通过Cosmos的区块链间通信(IBC)协议发送到其他区块链上。

源自Band协议的数据由社区策划和验证,确保它们足够可靠,可供Dapp用户和开发者参考。这些数据源可以使用不同的统计方法,如平均数、中位数或模型,以及任何额外的数据清理方法,如归一化或时间加权平均数,从各种链上馈送和数据聚合器上进行汇总。

为了从Band协议中获取数据,请求者需要指定几个参数:请求者想要调用的预言机脚本ID,预言机脚本的参数,以及需要的验证者数量。一旦请求被提出并在BandChain上被验证,预言机脚本将开始执行的第一阶段,即所谓的准备阶段,发出满足请求所需的数据源。

验证者将根据随机化的权重算法被选择来处理请求,尝试从所有指定的来源检索所请求的数据,并将原始数据报告和检索结果提交给BandChain进行确认。

一旦最低数量的验证者成功提交了他们的报告,BandChain将进行第二阶段,也被称为聚合阶段。所有收集到的报告都会被编译成一个单一的结果,存储在BandChain上,该结果可以被访问并发送给其他区块链以供将来使用。

BandChain网络依赖于多个参与者,其中最重要的是验证者和委托者。质押最多的BAND代币的前100名验证者负责在BandChain网络上创建和确认新区块。另一方面,委托者可以将他们的BAND代币委托给任何验证者以获得区块奖励。

只要有要求,BandChain上的验证者就有责任从指定的数据提供者那里获取数据。验证者在经济上被激励提供准确的数据,因为提供错误的数据将导致削减或没收已抵押的BAND代币。随后的错误信息计数将导致更低的信任分数和用户数量,进一步降低所投代币的价值,使损失更加严重。

除此之外,数据请求过程和验证人的执行情况都是公开的,可供所有人查看和验证,这进一步降低了传输虚假或篡改数据的风险。大约自2020年10月预言机功能在BandChain主网上线以来的前六个月,验证者就已经提供了约430万个数据请求。

要成为BandChain的验证者,你需要拥有一些BAND代币或让其他用户将BAND代币委托给你。验证人的选择是随机的,使用的是基于质押代币份额的质押加权算法。比例越大,被选中的机会就越大。

数据聚合器

如果说预言机为现实世界的数据与区块链架起了桥梁,那么数据聚合器则帮助用户读取数据。这些协议将区块链数据编译成简化格式,使项目和个人用户更容易地创建他们的分析仪表盘。

The Graph 协议

The Graph是一个去中心化协议,用于查询和接收区块链的数据,如Ethereum、Polkadot和Solana。虽然通过读取区块链上的合约地址直接检索并回答查询比较简单,但具有更高的特异性和粒度的数据却较难找到。The Graph通过将区块链数据索引到 "子图",或可以使用标准GraphQL API进行查询的开放API来解决这个问题。

The Graph的工作原理是根据子图的描述(也称为子图清单)对不同类型的数据进行良好的索引。清单定义了相关的智能合约和合约的关键事件,以便关注。此外,它还会找出如何将事件数据映射到The Graph的数据库中的存储数据。

一旦创建了子图清单,The Graph CLI会将其存储在InterPlanetary文件系统(IPFS)中,这是一个去中心化的存储解决方案,并开始为子图索引信息。

下面是一个关于数据如何被Graph节点检测和存储的基本流程。

去中心化的应用程序(Dapps)将智能合约交易的数据添加到区块链中。智能合约在处理交易时发出事件。Graph节点不断扫描区块链上的新区块和子图清单的数据。Graph节点找到事件并运行提供的映射处理程序。WASM模块生成并更新存储在节点内的数据。Dapps使用GraphQL端点来查询Graph节点的索引数据。GraphQL查询在被dApp检索之前由节点翻译。dApp通过其用户界面显示这些数据,以便在区块链上发布新交易时作为参考。

Graph被DeFi和Web3领域的许多dApps使用,包括Uniswap、Aave、Balancer和Synthetix。它为服务数据密集型协议提供了适当的基础设施。截至2021年第一季度,大约16000名开发人员已经部署了超过10,000个子图,在不到一年的时间里处理了超过1000亿次查询。

Covalent

Covalent是一个区块链数据提供商,它提供了一个统一的API,用于访问似乎无尽的链上数据行。来自不同区块链的代币余额和钱包活动的详细信息可以使用单一的API进行检索,使开发者更容易创建分析仪表盘或收集关于区块链活动的见解。

Covalent的功能似乎与The Graph很相似,但它在一些方面有所区别。例如,The Graph需要将数据的子集转换为子图,然后才能进行查询。与此同时,Covalent将对区块链进行整体索引,从而为用户提供更多的细化数据。此外,Covalent已经扩展到以太坊之外。截至2021年4月,Covelant支持其他四个区块链的数据,包括Fantom、Binance Smart Chain、Polygon和Avalanche。

来源:https://www.covalenthq.com/blog/beginners-guide-to-covalent/

要访问Covalent API,你需要首先通过在Covalent上创建一个账户获得一个免费的API密钥。Covalent API有两个等级--A类和B类。

你可以使用A类端点来检索区块链数据,这些数据是与网络无关的。简而言之,这是适用于所有网络的一般数据,例如余额、交易和代币持有人。另一方面,你可以使用B类端点,从区块链上的特定协议中返回值。例如,你可以从Uniswap或PancakeSwap查询数据,这两个去中心化的交易所都隔离在各自的网络上。

来源:https://www.covalenthq.com/docs/api/

值得一提的是

● DIA

DIA是Decentralized Information Asset(去中心化信息资产)的缩写,是一个开源的预言机,为许多DeFi应用提供数据。它为流行的DEX(如Uniswap和Sushiswap)在其他链上(如Binance Smart Chain和Polygon)提供价格馈送。

● API3

API3通过去中心化的API或dAPI向项目提供信息。数据馈送由一个包括项目合作伙伴和行业专家的DAO监督。他们还允许dAPI用户在API不能如期工作的情况下获得链上保险。

相关风险

随着越来越多的协议开始依赖在最恶劣的环境中经过实战检验的长期产品,同样重要的是要记住,这些产品可能不是完全万无一失的。如果黑天鹅事件发生,预言机可能无法有效地提供数据,并导致不准确的决策。

在2020年3月,也就是所谓的黑色星期四,Chainlink和MakerDAO的"Medianizer"等预言机就未能迅速更新其价格馈送,导致价格严重错误。MakerDAO的价格故障启动了一连串的灾难性事件,导致CDP所有者损失了价值超过800万美元的ETH抵押品。

总结

预言机和数据聚合器构成了许多DeFi协议的主干。对于寻求改变数据提供游戏的未来项目来说,在查询和转发数据方面,极快的速度和准确性是最重要的。目前,Chainlink在这个领域占主导地位,有400多个集成,包括200多个DeFi项目。

然而,DeFi领域一直处于创新的前沿,更好的预言机和数据收集机制经常出现。最终,DeFi的目标是拥有一个可靠的、内部安全的、受到良好保护的、不受负面外部因素影响的预言机服务。此外,已经建立并不断改进的强大的索引协议将有助于为区块链上的用户行为带来更多的清晰度和洞察力,使项目能够提供更好的产品和服务,使产品与市场更加匹配。

推荐阅读

关于 Chainlink的文件和其他信息 https://docs.chain.link/docsChainlink白皮书 https://link.smartcontract.com/whitepaper什么是Chainlink,为什么它在加密货币世界中很重要?https://finance.yahoo.com/news/chainlink-why-important-world- cryptocurrency-110020729.html关于Band Protocol的文件 https://docs.bandchain.org/什么是Band Protocol以及如何购买BAND https://decrypt.co/resources/what-is-band-protocol-defi-oracle关于The Graph协议的文件 https://thegraph.com/docs/The Graph - 链上谷歌?https://finematics.com/the-graph-explained/关于Covalent API的文件 https://www.covalenthq.com/docs/api/#overview对 "Covalent区块链数据API "的作用的简要介绍https://newspi.site/heres-a-quick-look-at-the-role-of-covalent- blockchain-data-api in-terms-of-data-gathering-e-hacking-news/‌关于Covalent Network启动的博客文章 https://www.covalenthq.com/blog/covalent-network-blog/