以太坊智能合约预言机

简介: 什么是预言机(oracle)?和以太坊智能合约开发是什么关系?在区块链去中心化的条件下如何实现预言机?面对这些疑惑首先来了解下我们开发以太坊智能合约的需求。

什么是预言机(oracle)?和以太坊智能合约开发是什么关系?在区块链去中心化的条件下如何实现预言机?面对这些疑惑首先来了解下我们开发以太坊智能合约的需求。

当我们需要获取一些必要的数据时,可能不得不与与第三方进行交流。原因可能有很多种。

例如说在签署比特币多重签名交易时,你可能不相信单一实体。比方说,你希望某些资金在某些条件下被移动。要么自己手动来要么将其其委托给第三方(你可能还不太放心),按照比特币的方式,会通过多重签名交易强制执行你的逻辑,将交易审批流程分发给不同的签署方(预言机)。

利用N-M多重签名交易的方法是确保每个签署者(预言机)只拥有一个私钥,以便他可以在他认为正确的时机放置一个签名,但交易只会有效N次M个签署者(预言机)将就要签署的交易达成共识。这比信任单一的外部实体信息源要强大得多,因为选定的签署者(预言机)是相互竞争的,并且变化不会不大。

其实拥有分布式预言机网络的想法已经存在了很多年,但是在一个跨越不同预言机的通信上找到共识是十分困难的。寻找愿意加入该网络的各方更加困难,因为这需要建立一个良好的激励机制,而关于如何与这个预言机网络进行交互的适当设计也还没有达成一个共识。除此之外,一个主要限制可能是你需要用来获取数据的数据源,其中一些可能在未经过外部各方许可的情况下就已经可以使用了。

但是以太坊智能合约出现后,这个想法就有很大不同,你的交易批准逻辑由网络通过你自己的智能合同代码实施。这意味着一旦某些条件得到验证(智能合约意味着你可以设置验证条件),预言机就不会签名,而是它只向你提供符合你要求的数据,可以直接验证条件并触发你想要的任何事务或状态更改。目前智能合约仍然不能依靠分布式网络来获取外部数据,链上执行的应用程序或者服务,还活在自己的区块链围城里,因此你需要使用预言机才能将外部数据引入进来。

对数据日益增长的需求来说,越来越多的行业寻找越来越复杂的现实世界。然而,大多数关于预言机的误解是由于你可能希望预言机为你获得某些数据而造成的。

例如Augur或Gnosis这样的预测市场的以太坊项目就是为了围绕未来的事实提供一个关于人群不断情绪变化的良好和可靠的指标,例如博彩。预测市场通常被也被称为预言机,但与我们讨论的不同,它的意义更为广泛和完全不同。

还有一点值得讨论,我们可能会想这是我们要调用预言机的价格吗?这只是一个数据源,大多数时候它不会与区块链有任何关联。金融机构通常将“彭博社”或“路透社”也称为预言机,但他们真正的意思是将它们用作信息数据的来源。作为预言机会带来与区块链接口的所有复杂性,这是数据源不可能直接提供的(因为这需要额外的复杂性和成本)。尽管如此,一旦选择了适当的数据源和公式,预言机仍可以访问比如彭博社的数据。把这些也成为是提供“预言机”而不是“数据源”其实是对这个术语的另一种滥用。

为了让这个问题更清楚,我们可以定义3个部分:

  1. 数据源
    数据源,这是你要查找的信息的来源,这可以取决于你的实际查询,可以是“Augur”(查看未来事件/事实),“Bloomberg”(查找财务数据),“比特币区块链”(查找地址余额,给定交易OP_RETURN的内容或任何其他区块链数据),“WolframAlpha”(查找给定Wolfram Alpha查询的响应)或其他任何来自“网络”的数据。获取网络数据并使用或通过API获取数据既是你想从中获取数据的最简单也是最常用的方式方法。
  2. 查询
    查询可以选择的数据源,以便确认你想要获取的数据。
  3. 预言机 / 预言机网络
    预言机/预言机网络负责将你和数据源的一方连接起来。

安利两个区块链、以太坊开发DApp的实战教程:

  1. 适合区块链新手的以太坊DApp开发:
    http://xc.hubwiz.com/course/5a952991adb3847553d205d1

  2. 用区块链、星际文件系统(IPFS)、Node.js和MongoDB来构建电商平台:
    http://xc.hubwiz.com/course/5abbb7acc02e6b6a59171dd6

相关文章
|
6月前
|
存储 安全 区块链
IPFS|Filecoin矿机|质押挖矿模式系统开发源码
IPFS|Filecoin矿机|质押挖矿模式系统开发源码
|
11月前
|
区块链 开发者
区块链101:区块链挖矿是如何工作的
区块链101:区块链挖矿是如何工作的
|
JSON IDE Serverless
DAPP智能合约质押挖矿开发程序丨DAPP智能合约质押挖矿系统开发(正式版)丨DAPP智能合约质押挖矿源码功能
  本质上来说,智能合约是一段程序,它以计算机指令的方式实现了传统合约的自动化处理。智能合约程序不只是一个可以自动执行的计算机程序,它本身就是一个系统参与者,对接收到的信息进行回应,可以接收和储存价值,也可以向外发送信息和价值。
|
存储 算法 前端开发
DAPP质押挖矿系统丨DAPP质押挖矿系统开发(成熟案例)丨DAPP质押挖矿开发源码逻辑
  DAPP被称为分散式应用程序,DAPP是基于区块链技术的应用程序。dApp在不同计算机的P2P网络上运行,而不是在一台计算机上运行。dApps自P2P网络开始以来就已经存在。它实际上是一种软件程序,旨在以不受任何单个实体控制的方式在Internet上运行。分散式应用程序上的所有数据都存储在分布式分类帐中。
|
编译器 区块链
以太智能合约丨DAPP去中心化系统开发介绍丨交易所系统开发讲解方案
以太智能合约丨DAPP去中心化系统开发介绍丨交易所系统开发讲解方案
106 0
|
监控 区块链 数据库
区块链跨链桥交易系统开发智能合约部署
区块链跨链桥交易系统开发智能合约部署
|
区块链
defi质押挖矿dapp系统开发智能合约部署函数介绍
defi质押挖矿dapp系统开发智能合约部署函数介绍
|
API 区块链 数据安全/隐私保护
部署智能合约到公链
以太坊公链除了主网,还有多个测试网络。主网(Mainnet)是正式的以太坊网络,里面的以太币是真正有价值的,测试网络中的以太币没有价值,只用于测试。我们最终目标是连接到主网,但先连接到测试网络Kovan,虽然本地区块链网络(Ganache)也能测试,但与公链还是有区别的。...
362 0
部署智能合约到公链
|
存储 算法 安全
区块链系列教程之:比特币中的网络和区块链
区块链系列教程之:比特币中的网络和区块链
区块链系列教程之:比特币中的网络和区块链

热门文章

最新文章