预言机是提供特定问题答案的外部数据源,例如: “过去24小时纽约的温度是多少”
—-

**什么是预言机?**
预言机是提供特定问题答案的外部数据源,例如: “过去24小时纽约的温度是多少”。
预言机的一个子集是价格订阅,例如:“ETH 和 wBTC 的兑换价格是多少”。
**为什么我们需要预言机?**
并非所有的数据都可以在链上提供,如果可以在链上提供,那么也并不是所有的数据都是可信的,举两个例子:
Bob 和 Alice 就掷硬币的结果打赌,Bob 说是正面,Alice 说是反面。下注时他们都锁定了他们的 ETH。如果 Bob 是这个对赌结果的预言机,Bob 在合约中输入“heads”,Bob 赢了,但 Alice 会相信这个结果吗?拥有外在的、安全的预言机是很重要的。
Bob 同意卖给 Alice 1个 ETH,Bob 创建了一个智能合约,从 Alice 那里获得 DAI,并根据 Uniswap 上 ETH 兑 DAI 的价格给她 1 ETH。目前的价格是400 DAI = 1 ETH,当 Alice 调起合约时,合约要求从 Alice 那里转出 4000 DAI,因为 Bob 在合约中增加了一笔闪电贷,以提高 ETH 的成本。因此,拥有防篡改的预言机是很重要的。
**什么是 Uniquote 预言机?**
不同的最终结果需要不同的产品,如果你正在使用高可用资产(如 ETH,BTC…) ,并需要最佳的安全性,你应该使用 Chainlink 预言机。
这里有一些限制:
* 资产的可用性
* ETH 价格时效性与交易时效性
* 成本
对于像 yearn.finance 的 Uniswap LP 非永久性损失对冲产品,或者 year.finance 的 Uniswap 借贷,我们需要一个具有以下特点的解决方案:
* 接受 Uniswap 的任何资产交易
* 安全与数据时效性
你可以在这里阅读更多完整文档,你可以在这里查看可用的喂价源。
欲了解最新价格,你可以在合约中直接调取:
> Uniquote.current(WETH, 1e18, WBTC);
虽然上述调用具有较高的数据时效性,但安全性较低,开发者只需操作2个数据点就可以影响喂价,因此为了更高的安全性,你可以使用:
> Uniquote.consult(WETH, 1e18, WBTC, granularity);
granularity 就是读数量,所以 granularity = 48 就是过去24小时的平均价格,更安全,但数据的时效是24小时。
更多阅读
[文档 ](https://docs.uniquote.finance/)
[喂价源](http://feeds.uniquote.finance/)
[Github](https://github.com/iearn-finance/yoracle.link/blob/master/contracts/UniswapV2Oracle.sol)
原文标题:Keep3r Network: On-chain Oracle price feeds 作者:Andre Cronje 翻译:Typto 翻译机构:DAOSquare
什么是预言机? 预言机是提供特定问题答案的外部数据源,例如: “过去24小时纽约的温度是多少”。
预言机的一个子集是价格订阅,例如:“ETH 和 wBTC 的兑换价格是多少”。
为什么我们需要预言机? 并非所有的数据都可以在链上提供,如果可以在链上提供,那么也并不是所有的数据都是可信的,举两个例子:
Bob 和 Alice 就掷硬币的结果打赌,Bob 说是正面,Alice 说是反面。下注时他们都锁定了他们的 ETH。如果 Bob 是这个对赌结果的预言机,Bob 在合约中输入“heads”,Bob 赢了,但 Alice 会相信这个结果吗?拥有外在的、安全的预言机是很重要的。
Bob 同意卖给 Alice 1个 ETH,Bob 创建了一个智能合约,从 Alice 那里获得 DAI,并根据 Uniswap 上 ETH 兑 DAI 的价格给她 1 ETH。目前的价格是400 DAI = 1 ETH,当 Alice 调起合约时,合约要求从 Alice 那里转出 4000 DAI,因为 Bob 在合约中增加了一笔闪电贷,以提高 ETH 的成本。因此,拥有防篡改的预言机是很重要的。
什么是 Uniquote 预言机? 不同的最终结果需要不同的产品,如果你正在使用高可用资产(如 ETH,BTC…) ,并需要最佳的安全性,你应该使用 Chainlink 预言机。
这里有一些限制:
- 资产的可用性
- ETH 价格时效性与交易时效性
- 成本
对于像 yearn.finance 的 Uniswap LP 非永久性损失对冲产品,或者 year.finance 的 Uniswap 借贷,我们需要一个具有以下特点的解决方案:
- 接受 Uniswap 的任何资产交易
- 安全与数据时效性
你可以在这里阅读更多完整文档,你可以在这里查看可用的喂价源。
欲了解最新价格,你可以在合约中直接调取:
Uniquote.current(WETH, 1e18, WBTC);
虽然上述调用具有较高的数据时效性,但安全性较低,开发者只需操作2个数据点就可以影响喂价,因此为了更高的安全性,你可以使用:
Uniquote.consult(WETH, 1e18, WBTC, granularity);
granularity 就是读数量,所以 granularity = 48 就是过去24小时的平均价格,更安全,但数据的时效是24小时。
更多阅读 文档 喂价源 Github
本文参与区块链开发网写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。
- 发表于 2020-11-09 17:21
- 阅读 ( 839 )
- 学分 ( 2 )
- 分类:以太坊