区块链落地的必需工具——预言机(Oracle)

2023-10-31

在《经济学人》杂志中对区块链的定义:“区块链是信任的机器”。

区块链最大的核心创新在于去中心化的解决信任问题,不需要再去信任和依靠第三方机构的情况下进行价值转移。其中,智能合约起到了重要的作用。它是一套数字形式定义的合约,帮助合约参与方执行完成任务的协议,节省了时间和繁琐的步骤。

但是万万没有想到。。。。 高大上的区块链居然无法主动获取现实世界的数据!!!

但是智能合约存在外部数据的交互需求。比如,一些像是股票或者币价的实时价格数据,天气预报,市场预测等其他数据。

那么,这里就引出了预言机(oracle) 这样一个概念。

什么是预言机?

预言机就是一种单向的数字代理,可以查找和验证真实世界的数据,并以加密的方式将信息提交给智能合约。预言机就好比区块链世界中的一个第三方数据代理商。

举例来说,假设现实世界中的“数据源”和区块链中的“数据接口”,是两个使用不同语言的国家,预言机就是中间的翻译官。通过预言机智能合约就可以和链外数据进行无障碍交流。

在实际使用智能合约中,需要预言机对数据进行验证。因为区块链也是基于共识的系统,所运行的智能合约也要求一定要是确定性的程序。预言机对数据验证这一步骤是为了契合共识机制,使最后反馈给智能合约的数据也是“确定性”的。

预言机的运行原理:当区块链上的某个智能合约有数据交互需求时,预言机在接收到需求后,帮助智能合约在链外收集外界数据,验证后再将获取的数据反馈回链上的智能合约。

区块链为什么需要预言机?

因为区块链上的智能合约和去中心化应用(Dapp)对外界数据拥有交互需求。

区块链是一个封闭的环境,链上是无法主动获取链外真实世界的数据。主要是因为区块链无法主动发起Network call(网络调用)而链上智能合约是被动接收数据的。其次,智能合约其实并不“智能”,它只是在满足相应条件下,才达到触发状态的程序。同时,智能合约最终的执行需要合约参与方的私钥签署,智能合约本身没有办法自动执行。

当智能合约的触发条件取决于区块链外信息时,这些信息需先写入区块链内记录。此时需要通过预言机来提供这些区块链外的信息。

先举一个通俗易懂的例子,假设现在我被关进了一个小黑屋里,我对外面的世界发生了什么几乎一无所知,不知道外面是否有人,即使呼叫也没有人回应,只有外面的人在门口告诉我,我才可以得知外面的改变。 智能合约就像这个例子中的“我”一样,它无论何时何地,都无法主动向外寻求信息,只能外部把消息或数据给到里面。而预言机就是这个在门口收到我的请求后,从外面输送消息和数据的人。

或许你又会提出疑问为什么链上无法直接导入和接收数据?主要是因为区块链的共识机制。

区块链是基于共识的网络,所运行的智能合约也要求一定要是确定性的程序, 每笔交易和区块处理过后,每个节点必须要达到相同的状态。但是数据本身具有复杂性和多样性,这也是为什么预言机为了契合区块链的共识机制,除了搜集数据还有一步数据验证的步骤才将最后的“确定性”信息反馈给智能合约。

预言机应用场景有哪些?

目前预言机在区块链里涉及的应用领域有菠菜、稳定币、借贷、金融衍生品、保险以及预测市场。目前,比较热门的应用场景是菠菜、稳定币和借贷。
>>>> 1、菠菜(Bócǎi)

区块链内菠菜Dapp或者菠菜类游戏都涉及到随机数。菠菜类应用的核心是不可预测、可验证的随机数,随机数决定赌注的最终结果,但是在封闭状态的链上无法产生安全的随机数。

现在的大多数菠菜游戏都是在链上生产随机数,所以很容易被预测和破解导致资产被盗。之前一些菠菜类应用因为随机数问题而遭受黑客攻击,比如EOS上面的掷色子游戏或者以太坊上的FOMO3D。因为他们没有满足智能合约/Dapp场景下对安全伪随机数的要求:随机,不可预测。他们用到链上公开,被其他合约所调用,可以被预测的信息所生成的种子(seed)从而导致他们的随机数可以被预测。菠菜类游戏,要想得到安全的随机数,只有通过预言机从链外获取。

>>>> 2、稳定币

目前预言机主要服务于加密资产类稳定币。

加密资产类稳定币是由加密货币抵押为基础。加密资产类稳定币不是保持一对一的比率,而是试图通过维持更高的抵押品与稳定币比来将其价格与法定货币挂钩。例如DAI和bitUSD。DAI通过超额抵押资产发行,其抵押物为以太坊等链上资产。

加密资产类稳定币有链外信息交互需求,需要预言机实时的去获取外部世界稳定货币本身和锚定资产的兑换率等数据。


>>>> 3、借贷

SALT Lending, ETHlend等去中心化P2P借贷平台允许匿名的用户用区块链上的加密资产抵押,来借贷出法币或者加密资产。

这类应用需要使用预言机在贷款生成时提供价格数据, 并且能监控加密抵押物的保证金比率,在保证金不足的时候发出警告并触发清算程序。同时,借贷平台也能用Oracle来导入借款人的社交和信用和身份信息来确定不同的贷款利率。



哪些团队正在开发预言机?


>>>> 1、Oraclize:

Oraclize是一个为以太坊提供中心化数据传输预言机服务的项目,其依托亚马逊AWS服务和TLSNotary证明技术,提供预言机的服务。

在区块链环境下,Oraclize把获取的信息返回链上且保证保证数据与数据源相同,用户可以自行抓取数据。Oraclize不干涉信息源的选取和信息源本身的准确度。


>>>> 2、Augur:

不同于Oracle的中心化,Augur是一个去中心化的预测市场平台。Augu的核心是预测市场,主要是通过利益驱动的投票机制来确定结果。

用户可以用数字货币进行预测和下注,依靠群体智慧来预判事件的发展结果。用户可以选择围绕任何未来事件创建预测市场,参与者可以押注该事件的结果。参与者根据创建的未来事件的实际结果赢钱或者输钱。平台本身无法验证事件的真实结果是什么,因此Augur依靠用户和复杂的结果报告系统来鼓励诚实的结果报告行为。本身也可以作为其他应用的输入源,但是它们的输出结果需要很长时间的延迟和大量用户的参与。


>>>> 3、Chainlink:

Chainlink是第一个去中心化的预言机。比起Oraclize的中心化,Chainlink更符合区块链去中心化的准则。Chainlink主要提供用于帮助智能合约访问关键链外资源、网站API和传统银行账户支付的预言机服务。

链下节点来提供数据,chainlink的链上部分会收集数据请求的需求,然后收集合适的节点的回答,在加权得到结论后反馈给信息请求方。chainlink也拥有一个对节点的信誉评价体系,信息需求方可以选择特定信誉级别的节点,每次信息反馈之后也会更新每个节点的信誉评分。


>>>> 4、DOS Network

DOS Network是一个提供去中心化的预言机服务的网络。它可以连接智能合约和链外互联网世界,同时也为区块链提供无限的且可验证的计算力。Dos Network在链上监测用户数据请求,链下监控和接收数据请求,再通过链下随机选一组节点来提供数据,一旦收集来的数据通过组内51%节点共识被视为“正确答案”,最后链下再将获取的答案反馈给链上信息请求方。DOS 设立一个对于诚实节点的奖励机制:除了给节点的数据处理费,30%总供应量的虚拟采矿奖励,持续十年。

DOS Network在性能上可支持多条链,且数据结果接近实时,同时DOS Network分片的网络结构设计,可以并行处理请求,达到高性能和可扩展性。帮助扩展智能合约的处理能力和应用场景的二层(layer 2)网络解决方案。

DOS与Chainlink类似,也有许多不同和优化。Chainlink对每个节点返回的结果在区块链上进行聚合和共识,而DOS在链下对结果进行共识,性能和可扩展性更好。Chainlink在 选取工作节点时基于信誉系统,而DOS则是完全随机的在去中心化网络中选取工作节点,有更好的抵御攻击的能力,安全性更好,也更公平。



关于预言机的几个判断和思考

1、无论如何,预言机市场无法摆脱对于少数权威信息源的依赖,只是说尽可能的可以通过程序公正、事后追责、分布式容错的思路来尽量降低这种依赖。

2、目前各家预言机项目的解决方案各有利弊。

短期来看: Oraclize虽然是中心化的项目,但具有很强的的应用性,用户可随机抓取自定义信息。Augur对于预测市场方向也可以说是简单实用,但是涉及到人工投票,速度可能不快。

长期来看:Chainlink和DOS Network这两种去中心化的预言机网络选取方案和多信息源对比的思路在架构上会更加安全可靠。


(本文图片皆来源于网络,版权属于原作者)


DOS Network——为解决区块链可靠数据输入及复杂计算能力而生的去中心化预言机服务网络。

【+“dosnetwork001” 进入DOS Network社区】

您还可以通过以下平台关注DOS Network:

中文电报群:t.me/dosnetwork_…

英文电报群:t.me/dosnetwork_…

官方网站:dos.network

Medium:medium.com/@dosnetwork

转载于:https://juejin.im/post/5c1c8b53f265da615c593b5b

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

区块链落地的必需工具——预言机(Oracle) 的相关文章

  • 【计算机开题报告】 网上茶叶销售平台设计与开发

    一 选题依据 简述国内外研究现状 生产需求状况 说明选题目的 意义 列出主要参考文献 1 研究背景 随着社会经济的迅速发展和科学技术的全面进步 以计算机与网络技术为基础的信息系统正处于蓬勃发展的时期 随着经济文化水平的提高 近年来 随着科学
  • MySQL中设置自增主键id从1开始

    可能遇到过这种问题 当你只想新增一条数据时 发现使用Insert语句后 发现id并不是从1开始的 握草 怎么回事 其实很简单 通过执行一下SQL 对应你的表就可以解决 ALTER TABLE user AUTO INCREMENT 1 具体
  • 【计算机开题报告】智能社区管理系统

    一 设计目的及意义 随着经济的发展 人们生活水平的提高 工作和日常事务繁忙 人们对服务就有了更深入 更精细的要求 而计算机技术的迅猛发展 使得这种需求变为可能 传统的社区服务业也与互联网技术结合更加密切 这是社会发展的必然趋势 为解决社区中
  • 如何在CentOS安装SQL Server数据库并通过内网穿透工具实现公网访问

    文章目录 前言 1 安装sql server 2 局域网测试连接 3 安装cpolar内网穿透 4 将sqlserver映射到公网 5 公网远程连接 6 固定连接公网地址 7 使用固定公网地址连接 前言 简单几步实现在Linux cento
  • 天猫数据分析工具推荐(天猫第三方数据平台)

    在电商迅速发展的大背景下 做好天猫数据分析能够在多方面帮助品牌商家更好地运营店铺 塑造品牌 如通过数据分析了解消费者的需求 购买偏好 这有利于品牌商家及时调整商品结构 产品推广 商品宣传等等 灵活制定品牌的销售策略 那么 天猫平台行业 品牌
  • 期权开户最低多少钱个人可以开?

    大家新年好 现在2024年龙年 很多想玩期权的小伙伴都知道期权开通需要50万的门槛 那么今天来给大家详细介绍下期权开户最低多少钱个人可以开 本文将对期权开户最低金额进行探讨 帮助投资者更好地了解期权交易的投资门槛 本文来自 期权酱 一 期权
  • 拼多多详情API开启运营比价新纪元

    随着互联网的快速发展 电商行业正在迅速崛起 拼多多作为一家新兴的电商平台 凭借其独特的营销策略和创新的商业模式 成为了电商行业的一匹黑马 在拼多多的成功背后 其详情API接口营销起到了至关重要的作用 本文将详细介绍拼多多详情API接口营销的
  • AntDB内存管理之内存上下文之内存上下文机制是怎么实现的

    4 内存上下文机制是怎么实现的 下文将针对内存上下文机制进行代码说明 本次以AntDB的代码为例 来解析内存上下文的实现方式 4 1 最基础的数据结构 MemoryContextData和MemoryContextMethods是内存上下文
  • 6 - 数据备份与恢复|innobackupex

    数据备份与恢复 innobackupex 数据备份与恢复 数据备份相关概念 物理备份与恢复 逻辑备份 推荐 使用binlog日志文件实现对数据的时时备份 使用日志 恢复数据
  • 智能时代:自然语言生成SQL与知识图谱问答实战

    语义解析 前言 语义解析的应用场景 总结概论 语义解析和大模型的关系 延伸阅读 前言 语义解析技术可以提高人机交互的效率和准确性 在自然语言处理 数据分析 智能客服 智能家居等领域都有广泛的应用前景 特别是在大数据时代 语义解析能够帮助企业
  • Navicat 16 for MySQL:打造高效数据库开发管理工具

    随着数据的快速增长和复杂性的提升 数据库成为了现代应用开发中不可或缺的一部分 而在MySQL数据库领域 Navicat 16 for MySQL作为一款强大的数据库开发管理工具 正受到越来越多开发者的青睐 Navicat 16 for My
  • 【计算机毕业设计】网上拍卖系统

    现代经济快节奏发展以及不断完善升级的信息化技术 让传统数据信息的管理升级为软件存储 归纳 集中处理数据信息的管理方式 本网上拍卖系统就是在这样的大环境下诞生 其可以帮助使用者在短时间内处理完毕庞大的数据信息 使用这种软件工具可以帮助管理人员
  • 图解python | 字符串及操作

    1 Python元组 Python的元组与列表类似 不同之处在于元组的元素不能修改 元组使用小括号 列表使用方括号 元组创建很简单 只需要在括号中添加元素 并使用逗号隔开即可 tup1 ByteDance ShowMeAI 1997 202
  • 【计算机毕业设计】电影播放平台

    电影播放平台采用B S架构 数据库是MySQL 网站的搭建与开发采用了先进的java进行编写 使用了springboot框架 该系统从两个对象 由管理员和用户来对系统进行设计构建 主要功能包括 个人信息修改 对用户 电影分类 电影信息等功能
  • 【计算机毕业设计】宝鸡文理学院学生成绩动态追踪系统

    研究开发宝鸡文理学院学生成绩动态追踪系统的目的是让使用者可以更方便的将人 设备和场景更立体的连接在一起 能让用户以更科幻的方式使用产品 体验高科技时代带给人们的方便 同时也能让用户体会到与以往常规产品不同的体验风格 与安卓 iOS相比较起来
  • 【计算机毕业设计】OA公文发文管理系统_xtv98

    近年来 人们的生活方式以网络为主题不断进化 OA公文发文管理就是其中的一部分 现在 无论是大型的还是小型的网站 都随处可见 不知不觉中已经成为我们生活中不可或缺的存在 随着社会的发展 除了对系统的需求外 我们还要促进经济发展 提高工作效率
  • Oracle EBS AP发票导入 API Rejection List 第二部分

    Oracle EBS AP发票导入 API Rejection List 第二部分 The report lists the reason the invoice could not be imported and prints a bri
  • 数据库 | 面试官:一次到底插入多少条数据合适啊?.....面试连环炮

    数据库 面试官 一次到底插入多少条数据合适啊 面试连环炮 数据库插入操作的基础知识 插入数据是数据库操作中的基础 但是 我们程序员将面临随之而来的问题 如何快速有效地插入数据 并保持数据库 性能 当你向数据库中插入数据时 这些数据直接存储到
  • Redis分布式锁--java实现

    文章目录 Redis分布式锁 方案 SETNX EXPIRE 基本原理 比较好的实现 会产生四个问题 几种解决原子性的方案
  • SAP ERP系统是什么?SAP好用吗?

    A公司是一家传统制造企业 公司曾先后使用过数个管理软件系统 但各部门使用的软件都是单独功能 导致企业日常管理中数据流与信息流相对独立 形成了 信息孤岛 随着公司近年业务规模的快速发展以及客户数量的迅速增加 企业原有的信息系统在销售预测及生产

随机推荐

  • 2021-3-26 米斯特安全团队视频笔记二(含PHP)

    DOS命令 常用Dos命令 1 通配符 号 代替0或多个字符 号 代替一个字符 2 查看命令 3 操作命令 信息搜集 whois 备案 PHP 变量 命名格式 美元字符开头 字母 下划线 不能跟数字 特殊符号 name key 常量 通过d
  • HTML <u> 标签

    实例 使用 u 标签为文本添加下划线 p 如果文本不是超链接 就不要 u 对其使用下划线 u p 定义和用法 u 标签可定义下划线文本 浏览器支持 元素 Chrome IE Firefox Safari Opera u Yes Yes Ye
  • maven jetty 插件的使用

    jetty插件的安装 首先打开项目的pom xml文件 然后找到build节点 在其中添加plugins节点 然后再添加如下的插件
  • 清华大学uCore-操作系统内核实现

    本系列文章是学堂在线清华大学操作系统慕课 课程实验 实现uCore内核的讲义总结及个人攻略 如果有对课程感兴趣的朋友建议看原课程 前置知识 即提前要掌握的知识 C语言和汇编语言 数据结构和算法 计算机组成原理 实验内容 Lab1 uCore
  • Rust 学习笔记之内存管理与生命周期

    内存管理是理解低级语言 和硬件相关的 的基础概念 低级语言没有提供自动内存管理的解决方案 例如内置垃圾回收器 它要求程序员自己在程序中管理内存 理解内存何时何地被创建和释放可以使得程序员构建出一个高效 安全的软件 然而 低级语言的大量错误也
  • 设计模式第八讲:观察者模式和中介者模式详解

    一 观察者模式 1 背景 在现实世界中 许多对象并不是独立存在的 其中一个对象的行为发生改变可能会导致一个或者多个其他对象的行为也发生改变 例如 某种商品的物价上涨时会导致部分商家高兴 而消费者伤心 还有 当我们开车到交叉路口时 遇到红灯会
  • perl中CPAN的安装

    最近一直在学习nagios监控的知识 因为使用SNMP方式进行监测 而nagios的SNMP监测文件是pl结尾的perl脚本 所以需要安装CPAN 下面就安装CPAN的安装记录步骤如下 首先安装perl 可以通过yum方式进行安装 这样减少
  • STM32F0不同代码区跳转时总失败…这些操作你做对了吗?

    STMCU官网更新了一则实战经验文件 文章以STM32F0为例 就芯片内 从BOOT区跳转到APP区 从APP区跳转到新APP区 从APP区跳回BOOT区 的跳转问题做一些交流与介绍 更多信息请前往官网详情页 文章导读 对于STM32用户
  • java 顺序结构循环队列(源代码)

    1 import java util Arrays 2 public class LoopQueue
  • python模拟登入某平台+破解验证码

    概述 python模拟登录平台 遇见验证码识别 用最简单的方法selenium da破解验证码 来自动登录平台 详细 python用selenium xpath模拟登录 破解验证码 先随便找个小说平台用户登陆 书海小说网用户登陆 书海小说网
  • Golang-指针(pointer)

    1 概念 指针 指向内存地址的变量 指针用来存储变量的内存地址 Go 语言定义变量必须声明数据类型 因为不同数据类型的数据占用不同的存储空间 导致内存地址分配大小各不相同 所有指针只能存放同一类型变量的内存地址 指针分为两种 类型指针和切片
  • Android RecyclerView实现吸顶动态效果,详细分析

    文章目录 一 ItemDecoration 二 实现RecyclerView吸顶效果 1 实现一个简单的RecyclerView 2 通过ItemDecoration画分割线 3 画出每个分组的组名 4 实现吸顶效果 完整demo 链接 h
  • Python 数组的长度

    数组 Array 是有序的元素序列 若将有限个类型相同的变量的集合命名 那么这个名称为数组名 组成数组的各个变量称为数组的分量 也称为数组的元素 有时也称为下标变量 用于区分数组的各个元素的数字编号称为下标 数组是在程序设计中 为了处理方便
  • xss-labs-master 第六关到第十关通关

    要想看前面的五关请看xss labs master 第一关到第五关通关 Level 6 进入题目废话不多说 上来就是一个test测试一下会不会变化 可以看到提示信息有输入的内容 昨天我想了一个可以看到JS变化的代码 话不多说直接上
  • Navicat 链接 MongoDB

    安装完毕后修改配置文件 vim etc mongod conf 默认127 0 0 1为只允许本地连接 0 0 0 0为不限制 多个指定服务器用 连接 bind ip 0 0 0 0 启动 mongod 启动命令行 gt systemctl
  • Android关于libs,jniLibs库的基本使用说明及冲突解决

    最近在开发中遇到了一个问题 因为项目需要集成不同的sdk 相对应的也是不同的 so文件 针对libs中 so库的引入会遇到一些问题 比如要集成第三方NDK库 如果是在eclipse中 需要放到libs下对应库的目录 如果是在Android
  • OpenCV人脸识别C++源码分析

    include cv h include highgui h include
  • OSTaskStkInit():任务堆栈结构的初始化

    转载请注明出处 http dreamlcr cublog cn OSTaskStkInit 任务堆栈结构的初始化 OSTaskCreate 和OSTaskCreateExt 通过调用OSTaskStkInit 初始化任务的栈结构 因此 堆栈
  • Something old,something new,something borrowed,something blue

    Something old something new something borrowed something blue 有旧 有新 有借 有蓝 的婚礼习俗已经有好几百年的历史了 许多新娘在她们举行婚礼的当天都曾被问到是否已经备好了那些
  • 区块链落地的必需工具——预言机(Oracle)

    在 经济学人 杂志中对区块链的定义 区块链是信任的机器 区块链最大的核心创新在于去中心化的解决信任问题 不需要再去信任和依靠第三方机构的情况下进行价值转移 其中 智能合约起到了重要的作用 它是一套数字形式定义的合约 帮助合约参与方执行完成任