2019独角兽企业重金招聘Python工程师标准>>>

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

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

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

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

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

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

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

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

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

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

推荐两个以太坊实战教程:

  • 以太坊 智能合约 ,以太坊开发智能合约与dapp入门实战,适合入门。
  • 以太坊电商教程,以太坊通过node.js、mongodb、ipfs、express构建电商平台实战,适合进阶。

转载于:https://my.oschina.net/u/3837977/blog/1801092

以太坊智能合约预言机相关推荐

  1. 以太坊智能合约开发-《精通以太坊智能合约开发》学习总结实践

    文章目录 一.初探以太访智能合约 1. remix小demo 2. 写智能合约用的编程语言 二.以太坊核心概念 1. 交易/事务( Transaction ) 2. 区块 3. 共识协议:工作量证明( ...

  2. 链乔教育在线|智能合约学习——以太坊智能合约学习笔记(四)

    链乔教育在线|智能合约学习--以太坊智能合约学习笔记(四) 本笔记记录的是使用matemask钱包连接以太坊私链,并编写一个基本的提币智能合约部署到以太坊私链上,进行调用. 一.浏览器安装metama ...

  3. 以太坊智能合约Demo

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 智能合约开发用solidity编程语言部署在以太坊这个区块链平台,本文提供一个官方实战demo示例快速入门,用demo例 ...

  4. 区块链兼容以太坊智能合约

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 引言 随着区块链技术以及应用的普及,越来越多的区块链出现在大众视野中.由于区块链技术的开源特性,任何公司和个人都可以方便 ...

  5. 以太坊智能合约开发第二篇:理解以太坊相关概念

    链客,专为开发者而生,有问必答! 此文章来自区块链技术社区,未经允许拒绝转载. 很多人都说比特币是区块链1.0,以太坊是区块链2.0.在以太坊平台上,可以开发各种各样的去中心化应用,这些应用构成了以太 ...

  6. 使用Remix编译和部署以太坊智能合约

    链客,专为开发者而生,有问必答! 此文章来自链客区块链技术问答社区,未经允许拒绝转载. 使用Remix编译和部署以太坊智能合约 Remix 是一个开源的 Solidity 智能合约开发环境,提供基本的 ...

  7. 区块链项目实战 - 使用以太坊/智能合约solidity,全栈开发区块链借贷记账小应用,含完整源码

    本文使用区块链平台以太坊+智能合约实现一个区块链记账的功能,具体为: 借款人和贷款人以及数额被记录在区块链中.使用区块链地址来表示借款人或者贷款人. 若一个借款人多次向一个贷款人借钱,更新所有的数额之 ...

  8. 用Visual Studio开发以太坊智能合约

    2019独角兽企业重金招聘Python工程师标准>>> 区块链和以太坊 自从我熟悉区块链.以太坊和智能合约以来,一直失眠. 我一直在阅读,阅读和阅读,最后我能够使用一些工具,他们建议 ...

  9. truffle (ETH以太坊智能合约集成开发工具) 入门教程

    truffle (ETH以太坊智能合约集成开发工具) 入门教程 前言 在你了解区块链开发之前,你有必要了解区块链的一些基础知识,什么是DApp,DApp与传统app的区别, 什么是以太坊,以太坊中的智 ...

最新文章

  1. 八个最致命的Linux命令!
  2. 如果没有杜撰,可还有历史?
  3. 深入javascript——构造函数和原型对象
  4. python seach_python 正则re.search
  5. 学习 wxpython_序
  6. scala集合中添加元素_如何在Scala中将元素添加到列表中?
  7. win10怎么修改服务器地址,电脑Windows10怎么修改IP地址的方法
  8. java url 协议_Java自定义URL协议
  9. 关于IDM下载器免费注册这件事
  10. 基于大数据的精准教学模式探究
  11. 极简毕业设计答辩PPT模板
  12. 本地文件共享到云服务器,Linux系统通过RDP上传文件到Windows云服务器
  13. response.addheader详解
  14. python爬虫——校花网
  15. CAD批量打图精灵入门教程--CAD批量打印、CAD批量转PDF
  16. python 图片打水印 透明图片合并
  17. UML图之四——活动图
  18. Android 修改音量
  19. 【图文教程】MySQL 主从
  20. 文墨绘学:习惯决定孩子命运—习惯培养的五大步骤

热门文章

  1. SAP PM入门系列33 - IP16 维修计划报表
  2. 我最喜欢的几个苏州美食
  3. 机器人操作学习系列分享:模仿学习
  4. 「AI不惑境」深度学习中的多尺度模型设计
  5. 机器学习中的分类距离
  6. SAP EWM中仓库任务WT创建的函数
  7. 数学之美——统计语言模型
  8. Tensorflow— 递归神经网络RNN
  9. AMD64,linux-64bit,ARM64,linux-Aarch64和windows 64bit
  10. 李德毅院士:探索新一代人工智能产业发展