第147篇 笔记-预言机(Oracle)

这篇具有很好参考价值的文章主要介绍了第147篇 笔记-预言机(Oracle)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

定义:区块链预言机是将区块链连接到外部系统的实体,从而使智能合约能够基于现实世界的输入和输出执行。

预言机为分散的 Web3 生态系统提供了一种访问现有数据源、遗留系统和高级计算的方式。去中心化预言机网络(DON)支持创建混合智能合约,其中链上代码和链下基础设施相结合,以支持高级去中心化应用程序(dApp),这些应用程序对真实世界事件做出反应,并与传统系统互操作。

输出oracle预言机,区块链基础,区块链,智能合约,预言机

区块链预言将区块链连接到现实世界中的输入和输出

例如,让我们假设 Alice和 Bob想打赌体育比赛的结果。Alice在 A队押了20美元,Bob在 B队押了30美元,总共40美元由智能合约托管。当游戏结束时,智能合约如何知道是将资金发放给 Alice还是 Bob?答案是,它需要一个预言机机制来获取链下的精确匹配结果,并以安全可靠的方式将其交付给区块链。

1.解决预言机问题

区块链预言机问题概述了智能合约的一个基本限制,即智能合约无法与本地区块链环境之外的数据和系统进行内在交互。区块链外部的资源被视为“链外”,而已经存储在区块链上的数据被视为链上。通过故意与外部系统隔离,区块链获得了其最有价值的属性,如对用户交易的有效性、防止双重开销攻击和减少网络停机时间的强烈共识。从区块链安全地与链外系统进行互操作需要一个称为“预言机”的额外基础设施,以连接这两个环境。

输出oracle预言机,区块链基础,区块链,智能合约,预言机

区块链无法自行连接到真实世界的数据和事件

解决预言机问题至关重要,因为DeFi等绝大多数智能合约用例都需要了解真实世界的数据和链外事件。预言机扩展了区块链可以支持的数字协议类型,提供了一个到链外资源的通用网关,同时仍然维护了区块链的宝贵安全属性。主要行业受益于结合预言机和智能合约,包括金融资产价格、保险天气信息、游戏随机性、供应链物联网传感器、政府身份验证等。

由于预言机向区块链交付的数据直接决定了智能合约的结果,因此,如果协议要完全按照预期执行,那么预言机机制的正确性至关重要。

2.预言机的关键功能

区块链预言机是一种安全的中间件,可促进区块链与任何链外系统之间的通信,包括数据提供商、web API、企业后端、云提供商、物联网设备、电子签名、支付系统、其他区块链等。

预言机具有几个关键功能:

  • Listen – 监控区块链网络,以检查任何传入的用户或智能合约对链外数据的请求。
  • Extract – 从一个或多个外部系统获取数据,例如托管在第三方web服务器上的链外API。
  • Format – 将从外部API检索的数据格式化为区块链可读格式(输入)和/或使区块链数据与外部API兼容(输出)。
  • Validate – 使用数据签名、区块链交易签名、TLS签名、可信执行环境(TEE)证明或零知识证明的任何组合生成一个验证oracle服务性能的加密证明。
  • Compute – 为智能合约执行某种类型的安全链外计算,例如从多个oracle提交中计算中值或为游戏应用程序生成可验证的随机数。
  • Broadcast – 在区块链上签署和广播交易,以便发送数据和链上的任何相应证明,供智能合约消费。
  • Output (optional) –  在执行智能合约时向外部系统发送数据,例如向传统支付网络转发支付指令或从网络物理系统触发操作。

执行上述功能需要预言机系统同时在区块链上和区块链外运行。链上组件用于建立区块链连接(监听请求)、广播数据、发送证明、提取区块链数据,并可能在区块链上执行计算。链外组件用于处理请求、检索和格式化外部数据、向外部系统发送区块链数据,以及执行链外计算,以实现更大的可扩展性、隐私性、安全性和各种其他智能合约增强。

输出oracle预言机,区块链基础,区块链,智能合约,预言机

3.去中心化预言机

区块链预言机机制使用集中实体向智能合约交付数据,引入了单点故障,破坏了去中心化区块链应用程序的全部目的。如果单个预言机离线,则智能合约将无法访问执行所需的数据,或者将基于过时数据不正确地执行。‍

更糟糕的是,如果单个预言机损坏,那么链上传递的数据可能非常不正确,并导致智能合约执行非常错误的结果。这通常被称为“垃圾输入,垃圾输出”问题,其中不良输入会导致不良输出。此外,由于区块链交易是自动化和不可变的,基于错误数据的智能合约结果无法逆转,这意味着用户资金可能会永久丢失。因此,集中式预言机不是智能合约应用程序的可选方案。

输出oracle预言机,区块链基础,区块链,智能合约,预言机

集中式预言机会出现单点故障

真正解决预言机问题需要分散的预言机来防止数据操作、不准确和停机。去中心化预言机网络,简称DON,结合了多个独立的预言机节点运营商和多个可靠的数据源,以建立端到端的去中心化。‍

更重要的是,许多Chainlink DONs,如 Chainlink Price Feeds,在数据源、单个节点运营商和预言机网络级别结合了三层去中心化,以消除任何单点故障。Chainlink Price Feeds已经通过这种多层次的去中心化方法帮助智能合约生态系统获得数百亿美元的资金,确保智能合约在执行过程中能够安全地依赖数据输入。

输出oracle预言机,区块链基础,区块链,智能合约,预言机

Chainlink Price Feeds部署三层分散聚合

4.区块链预言机的类型

鉴于广泛的链外资源,区块链预言机有多种形状和大小。混合智能合约不仅需要各种类型的外部数据和计算,还需要各种交付机制和不同级别的安全性。通常,每种类型的预言机都是包含获取、验证、计算和将数据传递到目的地的一些组合。

1.输入Oracle

当今最为广泛认可的预言机类型被称为“输入预言机”,它从真实世界(链外)获取数据,并将其传送到区块链网络,用于智能合约消费。这些类型的预言器用于为 Chainlink Price Feeds提供动力,为 DeFi智能合约提供对金融市场数据的链上访问。

2.输出Oracle

与输入预言相反的是“输出预言机”,它允许智能合约向链外系统发送命令,从而触发它们执行某些操作。这可以包括通知银行网络付款,通知存储提供商存储所提供的数据,或在进行链上租赁付款后 ping物联网系统解锁车门。

3.跨链Oracle

另一种类型的预言机是跨链预言机,可以在不同的区块链之间读写信息。跨链预言机实现了在区块链之间移动数据和资产的互操作性,例如使用一个区块链上的数据在另一个区块上触发操作,或跨链桥接资产,以便它们可以在发布时所在的本地区块链之外使用。

4.支持计算的Oracle

智能合约应用程序越来越广泛地使用的一种新型预言机是“支持计算的预言机”,它使用安全的链外计算来提供分散的服务,由于技术、法律或财务限制,这些服务在链上无法实现。这可以包括使用 Chainlink Automation在发生预定义事件时触发智能合约的运行,计算零知识证明以生成数据隐私,或运行可验证的随机性函数以向智能合约提供防篡改和可证明公平的随机性源。

输出oracle预言机,区块链基础,区块链,智能合约,预言机

不同类型的预言机实现了混合智能合约

5.预言机声誉

预言机服务的广泛范围意味着声誉是选择预言机服务提供商的关键。区块链预言机系统中的声誉使用户和开发人员能够根据他们认为重要的参数在预言机之间进行监控和过滤。预言机的声誉得益于预言机签署并将其数据交付到不可变的公共区块链账本上,因此可以通过市场等交互式仪表板分析并向用户展示其历史绩效历史。如 market.link 和 reputation.link。‍

信誉框架为每个预言机网络和单个预言机节点运营商的准确性和可靠性提供了透明度。然后,用户可以做出明智的决定,决定他们要为智能合约服务的预言机。预言机服务提供商还可以利用其链外业务信誉为用户提供可靠性的额外保证。

理想的预言机网络应当满足以下五个条件:

  1. 数据调用是基于双方相互信任的(不可篡改)。预言机在调用外部数据引入智能合约时,应当保证最终反馈给用户的数据与数据来源本身的数据一致,防止预言者中途篡改。经过服务请求方的确认和其他预言者的验证后,如果调用数据结果无误,则将调用数据写入智能合约,并将交易记录上传到区块链上;如果调用数据出现不一致,则该交易将被定义为非法交易。
  2. 数据调用具有高效性。预言机合约通过智能合约规定,如果预言者没有在请求发出后的规定时间内响应用户请求,或者是响应请求没在规定时间内将数据反馈给用户,就会自动取消交易,并且对服务供应商实施惩罚。
  3. 数据调用安全性高。预言机的设计必须有效遏制各种数据腐败行为,比如女巫攻击、镜像攻击等。并且,通过强制节点在TEE(Trusted Execution Environment)环境中执行解密,并向区块链汇报所有用户和节点都能看到的通用答案。
  4. 符合激励相容原则。预言机激励机制和监督机制的设立必须实现激励相容。因此,治理机制的设计必须充分调动其他竞争预言机的监督积极性,并且不能够将代币奖励和打包概率等决定预言机收益的指标相挂钩。否则,将不可避免的发生预言机和用户因利益不一致而产生的委托代理风险。
  5. 数据资产化。数据应当作为一种资产,根据其资源的重要性和稀缺性进行定价,以公允价值的形式写入智能合约。

输出oracle预言机,区块链基础,区块链,智能合约,预言机

6.区块链预言机用例

智能合约开发人员使用预言机在更广泛的区块链用例中构建更高级的去中心化应用程序。虽然可能有无限多的可能性,但以下是最新采用的用例。

1.去中心化金融(DeFi)

去中心化金融(DeFi)生态系统的很大一部分需要预言机访问有关资产和市场的金融数据。例如,去中心化货币市场使用价格预言机来确定用户的借贷能力,并检查用户的头寸是否被低估,是否会被清算。类似地,合成资产平台使用价格预言机将代币价值与真实资产挂钩,自动做市商(AMM)使用价格预言机帮助以当前市场价格集中流动性,以提高资本效率。

2.动态NFT和游戏

预言机还为智能合约提供了非财务使用案例,例如动态NFT,这些代币可以根据外部事件(如一天中的时间或天气)改变外观、价值或分布。此外,计算预言机被用于生成可验证的随机性,然后项目使用该随机性将随机特征分配给NFT,或在高需求NFT下降中选择随机幸运的赢家。链上游戏应用程序还使用可验证的随机性来创建更具吸引力和不可预测的游戏体验,例如在比赛期间出现随机战利品盒或随机配对。

3.企业

跨链预言机为企业提供了一个安全的区块链中间件,允许企业将其后端系统连接到任何区块链网络。通过这样做,企业系统可以对任何区块链进行读/写,并就如何跨链部署资产和数据以及与使用同一预言机网络的交易对手进行部署执行复杂的逻辑。其结果是,机构能够快速加入交易对手需求量大的区块链,并快速为用户所需的智能合约服务提供支持,而无需花费时间和开发资源与各个区块链集成。

4.持续性

混合智能合同通过围绕绿色倡议的真实影响的先进验证技术,为参与绿色实践创造了更好的激励,从而促进了环境可持续性。预言机是向智能合约提供来自传感器读数、卫星图像和高级ML计算的环境数据的关键工具,从而允许智能合约向从事植树造林或有意识消费的人发放奖励。预言机还支持许多新形式的碳信用,以抵消气候变化的影响。

输出oracle预言机,区块链基础,区块链,智能合约,预言机

Chainlink不断增长的去中心化预言机服务集合

预言机通过提供对所有外部资源的访问,扩展了区块链网络的功能,这些外部资源是利用简单标记化之外的有用和高级混合智能合约用例所需的。与互联网如何在信息交换方式上带来重大变化类似,预言机驱动的混合智能合约正在重新定义社会交换价值和执行合约协议的方式。文章来源地址https://www.toymoban.com/news/detail-805416.html

到了这里,关于第147篇 笔记-预言机(Oracle)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Oracle输出文本平面(CSV、XML)文本数据详细过程

    此过程是提供给前端,调用的接口,为报表提供”下载“功能。以下是本人在测试环境的测试,有什么不足的地方,请留言指教,谢谢。 分别对测试表输出csv、xml两种格式文件数据。前期的准备工作。 --在服务器端创建directory,用管理员用户 create or replace directory ORC_PPUTOUT_

    2024年02月16日
    浏览(39)
  • Oracle 笔记

    这里主要是记录学习 Oracle 常用操作命令等,方便今后查阅!!! 登录Oracle 查看当前所有的数据库 查看哪些用户拥有sysdba、sysoper权限 查看所有表 查看所有用户实例: 查看当前库的所有数据表 查看表结构 增加数据库用户 用户授权 登录之后就可以创建用户了 给用户权限 创

    2024年02月15日
    浏览(53)
  • oracle面试问题和笔记整理

    ORACLE 面试问题-技术篇(2) 如何判断数据库的时区? 解答:SELECT DBTIMEZONE FROM DUAL; 解释GLOBAL_NAMES设为TRUE的用途 解答:GLOBAL_NAMES指明联接数据库的方式。如果这个参数设置为TRUE, 在建立数据库链接时就必须用相同的名字连结远程数据库 23。如何加密PL/SQL程序? 解答:WRAP 解释

    2024年02月11日
    浏览(33)
  • Oracle常用基础知识

    SQL语言是一种数据库语言  1、DDL:数据定义语言 create-创建  drop-删除 alter-修改 rename-重命名 truncate-截断 2、DML:数据操作语句 insert-插入 delete-删除 update-更新 select-查询 3、DCL:数据控制语句 grant-授权 revoke-回收权力 commit-提交事务 rollback-回滚事务 注:Oracle命令不区分大小写

    2024年02月12日
    浏览(49)
  • oracle存储过程(基础语法)

            存储过程(Stored Procedure )是一组为了完成特定功能的SQL 语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过

    2023年04月08日
    浏览(45)
  • oracle 基础2

    目录 1.oracle字符函数 2.oracle数值函数 3.Oracle日期函数 4.oracle转换函数 5.oracle多表实战 1.oracle字符函数 拼接 concat或 ||  拼接三个参数 首字母大写函数  initcap    字符串改为小写   lower 转大写  upper   删除两边空格  trim   截取字符串 substr   替换字符串 replace   2.oracle数值函

    2024年02月12日
    浏览(27)
  • Oracle基础

    Oracle基础 Oracle,作为全球最大的数据库软件供应商,其数据库产品在企业级应用市场中占据了举足轻重的地位。Oracle数据库以高性能、高可用性、高安全性以及强大的数据管理能力赢得了广泛认可。本文旨在为读者提供Oracle数据库的基础知识,帮助初学者快速入门。 一、O

    2024年04月08日
    浏览(25)
  • Oracle基础学习

    安装教程 安装包地址 无用户信息登录 使用用户信息登录 登录最高权限管理员,如果不加上as sysdba,就会一直报错(ORA-28009: connection as SYS should be as SYSDBA or SYSOPER) 无用户登陆后,切换登录连接 创建新用户 为新用户授权连接数据库 锁住或释放用户 总结:解释数据库、表空

    2024年02月07日
    浏览(52)
  • Oracle基础查询介绍

    1、oracle语句分为: 2、查询的格式:select DISTINCT [列名...] [聚合函数] from 表名 [where 条件] [group 分组] [having 过滤] [order by 排序] 3、连接查询分为: ①、内连接(Inner Join):只返回两张表中满足匹配条件的记录,既两张表交叉的记录; ②、左连接(Left (Outer) Join):返回左表

    2024年01月17日
    浏览(44)
  • oracle 基础1

    目录 Oracle 表空间-创建 Oracle 表空间-删除 Oracle 常用用户 Oracle 常用角色 Oracle 用户创建 Oracle 常用数据类型 Oracle 表创建 Oracle 增删改查 Oracle 表常见约束 0.oracle手动开启方式  1.Oracle 表空间-创建 plsql登录system用户 新建sql窗口  创建表空间  2.Oracle表空间-删除  3.Oracle常用用户

    2024年02月12日
    浏览(26)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包