预言机:DeFi 和区块链应用程序的无形支柱
智能合约是运行在区块链网络(如 以太坊 )上的软件代码,并根据特定事件执行操作或任务。假设我想进行一笔交易,在交易中我提供了接收者的地址和证明我拥有并拥有网络资金的证据。如果一切顺利,网络将把资金“转移”给接收者。
如果我想创建一个去中心化的应用程序,它需要外部数据,比如当前的天气温度、以太坊的价格,甚至棒球比赛的结果,该怎么办?
一个智能合约,换句话说,区块链上的一段代码,是如何获得这个信息的?这就是区块链应用程序的预言机的用武之地。
“预言机”一词的字面意思是可靠的信息来源。因此,一本字典甚至可以被视为预言机。然而,我们想要避免不可靠的信息,所以我们引入了冗余。但是,我们也考虑燃气费用。3个外部数据源的天然气费用是正常天然气费用的3倍。因此,我们可以取平均值或中值。
什么是预言机?
预言机可以被看作是一个链上传输数据的链下平台。它也是一个将区块链与其他系统连接起来的链下平台。将数据从web服务器转发到区块链是预言机的职责。除了DEX,大多数去中心化应用程序都使用预言机。
为了获得可靠的数据并避免单点故障或防范恶意预言机节点,我们有时选择使用冗余。我们引入更多的节点。例如,如果我们想为DeFi贷款提供抵押品,我们希望有多个来源的 ETH 的价格,借款人将ETH作为抵押品存入。
预言机帮助中继链下数据
区块链上的智能合约不能简单地从任何数据源(如web服务器)中挑选信息,因为所有节点都需要能够独立验证运行智能合约的结果。当这种情况发生时,他们很可能会得到不同的结果。
例如, 比特币 在不同交易所的价格馈送是不同的。即使在不同的时间检查同一来源也会得到不同的结果。我们如何知道哪个数字是准确的,或者选择哪个数字?我们通常会选择冗余的结果。
预言机有哪些类型?
我们根据三个方面对预言机进行分类:信息的来源、信息的方向和信任程度。
数据来源可以是硬件,也可以是软件。硬件预言机直接从物理世界收集数据,并将其转换为数字价值,然后输入智能合约。其中包括条形码扫描器和传感器,它们主动或被动地收集数据并将其传输到智能合约。
软件预言机从在线资源获取信息,浏览他们的网站,从而为智能合约提供最新的信息。对于区块链,这些信息通常来自加密货币交易所。
信息的方向可以是入站或出站。入站预言机允许网络将外部数据源的信息发送到智能合约,而出站预言机则允许智能合约将数据发送到外部数据源。
中心化预言机作为一个单一的实体,提供从外部源到具有一组安全特性的智能合约的数据。然而,因为只有一个节点负责——类似于存在单点故障的传统金融系统——它变得不那么安全,更容易被输入智能合约的恶意数据破坏和攻击。
另一方面,去中心化的预言机依靠多个外部来源来增加提供给智能合约的数据的可信度。去中心化预言机基于 Schelling 点博弈论,在Schelling点博弈论中,所有参与者都不相互串通,提供数据,Schelling博弈在过滤了任何不准确性后,决定了共识数据点或向软件提出的修正是否有效和可接受。
相信预言机
由于单点故障,我们需要信任预言机,这一直是一个令人担忧的问题。区块链的本质是消除信任中介的需要,并消除单点故障。我们可以通过让多个独立的预言机形成共识来消除这种担忧。
这就导致了预言机服务的创建,这些服务可以从各种来源获取信息。这些资源包括谷歌、亚马逊等大公司,以及气象站等其他组织。这确保了结果比单一来源更可靠。
Provable是一个预言机服务,当开发人员需要咨询区块链之外的可靠数据源时,它可以帮助他们。它提供了数据真实性的加密保证。
应该使用预言机服务还是数据源?
互联网上有大量的数据源。因此,将单个应用程序直接集成到数据馈送中成为一项挑战。这就是预言机服务的用处所在。它们抽象了来自双方的信息,使应用程序更容易获得所需的数据提要。
使用预言机DeFi协议
开放借贷协议,如MakerDAO、Compound和Aave,在以太坊区块链上运行时使用预言机获取外部数据。MakerDAO是最受欢迎的DeFi开放借贷协议之一,其Dai代币与美元挂钩,并由加密资产支持。
MakerDAO利用一个预言机模块来确定资产的实时价格。该模块由预言机的白名单地址和一个聚合器合约组成。预言机会定期向聚合器发送价格更新,由聚合器确定中值价格,然后将其用作平台上的参考价格。
Compound是一种货币市场协议,允许用户赚取利息和/或以抵押品为抵押借入资产。与MakerDAO类似,Compound也使用预言机来收集价格信息,然后将这些信息转发到其价格馈送,由Compound原生代币COMP的持有者的“管理员”管理和控制。
闪电贷款和对防篡改预言机的需求
与流动性挖矿的概念一样,去中心化金融(DeFi)也出现了一种新的流动性机制。这就是所谓的“闪贷”。闪贷允许用户从链上流动性池中借入资产,无需预先抵押,只要在同一笔交易中将借入的流动性再加上一小笔费用返还给流动性池。
这种创新设计增加了各种用例中所有用户对资本的访问,同时确保基础流动性池的充分、持续偿付能力。
在很短的一段时间内(一笔交易的跨度),闪贷可以让任何人成为资本充足的参与者,提供数亿美元的流动性。
这为套利、抵押品交换和杠杆头寸的创建创造了独特的机会,但也带来了一定的风险,特别是对于一个具有不同程度去中心化和安全性的协议的新生生态系统。智能合约开发人员应该了解这些风险,以便为用户构建更强大的应用程序。
闪电贷款和价格预言机攻击
从单一来源获取价格的协议很容易被拥有大量资金的恶意行为者利用,他们可以通过一次大型交易操纵市场。
由于闪贷可以在任何时间为世界上任何人提供即时和可观的流动性,它们越来越多地被用于资助对DeFi协议的攻击。然而,这里有一个关键的区别:闪电贷款只提供执行攻击的资金——真正的问题是没有提供足够市场覆盖的中心化价格预言机。
Source:https://medium.com/the-capital/oracles-the-invisible-backbone-of-defi-and-applied-blockchain-apps-bb5b1404fa39