这是白话区块链的第1807期原创 
作者 | 易妙萍
出品|白话区块链(ID:hellobtc)

在电影《黑客帝国》中有一位先知,名叫Oracle,看似不起眼,其实她才是最关键策划者,把三大势力都放到她的局中。

而在Web3的世界中,也有Oracle,同样扮演了非常重要的角色,能够将区块链连接至真实世界中的数据和系统,但在这里,中文翻译不叫先知,而是叫预言机。

那什么是区块链预言机呢?白话区块链今天就给大家带来科普。

 01 
什么是预言机?

与这个有点“不觉明厉”的名字不太相符的是,区块链预言机是第三方信息源,其唯一功能是向区块链提供数据,从而使创建智能合约成为可能。

从根本上讲,智能合约只是一个自我执行的代码。智能合约会评估来自预言机的传入数据,并根据收到的信息启动执行流程。

让我们举一个例子,比如说张三和李四对这个星期六的比特币价格进行下注。张三认为比特币的价格将在 8500 美元或更高,相反,小黑认为在 8000 美元或更低。于是,他们设计了一个智能合约(双方都会向其发送资金),谁预测的价格更靠近实际价格,谁就赢得了资金。

为了使智能合约确定比特币的价格,从而向赢家付款,它必须通过预言机来查询这个星期六比特币的价格。当查询到比特币价格数据后,比如返回的值是周六比特币价格为 8600 美元,然后,智能合约将根据其条件执行并将所有资金发送给张三。

 02 
预言机的类型

预言机通过为智能合约提供了一种在去中心化区块链网络之外进行通信的方式,为智能合约提供了附加功能。

区块链预言机可以采用多种形式,包括但不限于:

1、软件预言机

这种形式的预言机通常包括易于访问的在线信息源,例如网站和公共数据库。它们通常提供以下信息:温度读数,公共交通信息以及各种金融资产的当前价格。

软件预言机可能是目前最强大的预言机类型,因为它们与互联网具有固有的互连性。这种连接允许软件预言机向智能合约提供最新信息。

2、硬件预言机

这种形式的预言机通常负责物理世界中发生的事件,并将数据发送到智能合约上。例如,在供应链管理中,如果带有 RFID 标签的物体要到达特定的仓库,则可以将该数据发送到智能合约,硬件预言机系统可以在整个供应链中进行货物跟踪。

3、输入式预言机

这种形式的预告机具有简单地向智能合约提供数据的功能。所提供的数据在智能合约的外部,并且在接收信息后开始执行。上面示例中提供比特币价格的新闻网站,可以被归入为输入式预言机。

4、输出式预言机

这些预言机将智能合约数据传送到外部源。就上面的例子而言,一旦张三被确定为赢家,智能合约便可以将此信息传达给钱包提供商,以便自动更新其余额以反映资金的增加。

在这种情况下,智能合约本身就可以作为输出式预言机运作。

5、基于共识的预言机

这种预言机的功能是查询多个信息源,并根据它们的共识得出结果。例如,上面的例子也可以使用 4 个网站来查询比特币的价格。如果所有预言源(网站)返回的值都相同,则智能合约可以成功执行。

 03 
预言机需要信任

虽然预言机的优势非常明显,但它存在一个缺点:预言机需要信任。

预言机用来获取信息并将信息传输到智能合约的数据源,必须被视为可信的。还是上文的例子,如果张三能够以某种方式控制那个比特币价格网站,那么就可以轻而易举地让返回的比特币价格为 8600 美元,从而使自己赢得比赛。

所以,如果由预言机提供给智能合约的数据被证明是错误的,则存在安全问题。针对此问题,一种可能的补救方法是从多个预言机数据库请求数据,而不是单个预言机数据库。

比如说,如果一个预言机返回的比特币价格为 8600 美元,而其他 4 个预言机返回的价格是 8000 美元,则可以将其他条件编程到智能合约中以解决冲突。智能合约可以选择仅接受多数值,在这种情况下,李四成为胜利者。

你觉得在哪些情境下,需要用到预言机?欢迎在评论区留言分享。

END

上一篇:科普 | 你的NFT是如何存储的?链上or链下?

『声明:本文为作者独立观点,不代表白话区块链立场,本内容仅供广大加密爱好者科普学习和交流,不构成投资意见或建议,请理性看待,树立正确的理念,提高风险意识。文章版权和最终解释权归白话区块链所有。』

欢迎长按二维码

阅读白话区块链入门连载

↓↓↓

喜欢请点「在看」

科普 | 什么是区块链预言机?相关推荐

  1. 区块链预言机(4)内在机制

    1. 内在机制 1.1 step说明 step1:A requester creating a smart contract specifying the data required to trigg ...

  2. 什么是区块链预言机(BlockChain Oracle)

    预言机 Oracle 是区块链中非常重要的一个功能,但我发现很少有人讨论,也可能很多人对此并不了解.而网上关于预言机的文章很少,很多也没有讲明白,甚至有些还是错误的.所以我整理了一篇详细的文章,分享给 ...

  3. 去中心化区块链预言机

    "区块链预言机(Blockchain Oracles)"概念的提出主要是为了解决区块链协议自身存在的局限性:(区块链)这种去中心化的网络(包括在其上构建的应用/ 智能合约)不能与外 ...

  4. 蚂蚁区块链第18课 区块链预言机(ORACLE)的定义及在蚂蚁BAAS中的使用

    1,摘要 本文主要讲解外部预言机ORACLE定义和原理,并讲解蚂蚁BAAS系统如何通过ORACLE预言机方式使用外部数据源的方法. 2,外部预言机ORACLE定义和原理 2.1 预言机(Oracle) ...

  5. 区块链预言机(5)预言机原理

    1. 趣链预言机架构 预言机一般会作为区块链的一个独立模块或第三方服务与执行引擎进行交互.预言机只负责数据的可信获取,不直接参与交易的执行. step1. 用户通过合约调用的形式(也可以通过特殊的AP ...

  6. 区块链预言机(3)关键点说明

    1. 预言机类型 1.1 根据数据源来区分,有几种类型: 软件预言机 即通过API从第三方服务商或者网站获取数据,来作为智能合约的输入数据.最常用的如天气数据.航班数据.证券市场数据等等. 硬件预言机 ...

  7. 区块链预言机(2)预言机概念

    1. 概念 预言机的功能就是将外界信息写入到区块链内,完成区块链与现实世界的数据互通.它允许确定的智能合约对不确定的外部世界作出反应,是智能合约与外部进行数据交互的唯一途径,也是区块链与现实世界进行数 ...

  8. 区块链预言机 Chainlink 测试环境部署与使用/探索区块链预言机的实现原理

    Chainlink 什么是预言机:在区块链领域,预言机被认为是可以为区块链智能合约提供外部数据源的系统. Oraclize项目:中心化预言机. Chainlink项目:非中心化预言机. 部署步骤 部署 ...

  9. 【区块链 | 预言机】价格预言机的使用总结(三):UniswapV3篇

    前言 前面两篇文章分别讲解了 Chainlink 和 UniswapV2 的 TWAP.Chainlink 属于链下预言机,其价格源取自多个交易所,但所支持的 token 比较有限,主要适用于获取主流 ...

  10. 区块链预言机(1)初识API网关

    1. 概念介绍 1.1. 业务简单,不用网关也能解决 1.2 API Gateway很好的解决了微服务下调用.统一接入等问题,如下图所示: 1.3 网关与代理的区别: 代理 纯粹的数据透传,协议不会发 ...

最新文章

  1. 裴健当选加拿大皇家学会院士:曾任华为首席科学家、京东副总裁,学术引用超8万次...
  2. 安装虚拟机Ubuntu,搭建lnmp环境碰到的坑(二)
  3. jQuery判断checkbox是否选中的3种方法
  4. windows环境下封装条件wait和signal
  5. Mac上配置 Sublime Text 使其使用 Python3
  6. C# 3.0 New Language Features (Part 2)
  7. make check 时出现:Error importing caffe
  8. jzoj6801-NOIP2020.9.19模拟patrick【树状数组】
  9. linux+kill+进程和线程,在LINUX系统中 关于进程和线程终止的问题
  10. 思博伦Landslide CORE帮助UQ实现自动化的现网测试
  11. 元器件在线分销的探索之路
  12. java代码 计算器_java代码---------计算器实现
  13. 应届生拿到offer之后的流程_【经验】我是如何一步步拿到拼多多amp;京东amp;艺龙等多个产品offer的...
  14. 工欲善其事必先利其器,用Emmet提高HTML编写速度
  15. 如何开始第一个开源项目?
  16. 微软1月补丁星期二值得关注的蠕虫及其它
  17. html5移动web开发黑马掌上商城_月入35k大佬总结:web前端必须学习的内容(附全套前端教程)...
  18. Cocos2d-x特殊节点对象(瓦片地图、粒子系统、视差滚动)概述
  19. GAMP学习-函数流程图调用(部分)(一)
  20. 做短视频,素材、工具缺乏怎么办?听我说完,没那么难做,别放弃

热门文章

  1. 第4章 开发架构设计
  2. 哥德巴赫猜想c#语言,在c#用控制语句完成哥德巴赫猜想(一个大于二的偶数一定是两个质数之和)...
  3. IT技术发展与应用:TOP技能探讨及学习建议
  4. 在那个安静的空间,尽享时光
  5. 我喜欢这种淡淡的感觉
  6. 生存危机——我的工作会不会被机器取代
  7. Python3获取秒级时间戳与毫秒级时间戳
  8. reactive 与 ref 的区别
  9. c语言程序设计题教学,c语言程序设计试题答案教学文案.doc
  10. https:/zh.wikipedia.org/wiki/表现层状态转