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

news2024/11/26 20:46:13

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

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

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

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

1.解决预言机问题

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

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

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

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

2.预言机的关键功能

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

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

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

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

3.去中心化预言机

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

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

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

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

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

Chainlink Price Feeds部署三层分散聚合

4.区块链预言机的类型

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

1.输入Oracle

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

2.输出Oracle

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

3.跨链Oracle

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

4.支持计算的Oracle

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

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

5.预言机声誉

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

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

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

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

6.区块链预言机用例

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

1.去中心化金融(DeFi)

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

2.动态NFT和游戏

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

3.企业

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

4.持续性

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

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/42501.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]计算机毕业设计springboot“小世界”私人空间

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

Java学历、技术哪个更重要?学历不好还能进大厂吗?

Java程序员的入行门槛并不高,并不看重你的学历和其他各方面,唯一看重的就是你技术是否过硬,能否独立参与到企业级开发的项目中去,说简单点入行只看技术。但是你如果想要长远发展服日后走上管理岗位,最好还是自考个本科…

使用 SwiftUI 构建可搜索列表,为您的 iOS 应用程序创建具有自动完成功能的可搜索列表(教程含源码)

设计新应用程序时面临的一大挑战是确保您的用户可以轻松浏览内容。如果体验太难或花费太多时间,无论您的内容有多好,很多用户都会转向另一个应用程序选项或放弃。 期望用户滚动浏览一长串选项是不切实际的,添加搜索功能可以极大地改善用户体验。更进一步,在用户键入时让列…

2.RabbitMQ安装

2.RabbitMQ安装 注意:安装时使用的系统是CentOS-7,MQ基本概念和RabbitMQ的相关知识请查看写的文章。 1、安装依赖环境 在线安装依赖环境: yum install build-essential openssl openssl-devel unixODBC unixODBC-devel make gcc gcc-c kernel-devel…

17、Health Check 健康检查

强大的自愈能力是kubernetes容器编排引擎的重要特性。自愈的默认实现方式是自动重启发生故障的容器。除此之外,还可通过Liveness和Readiness探测机制设置更精细的健康检查,进而实现如下要求:零停机部署避免部署无效的镜像更加安全的滚动升级一…

有没有免费的视频剪辑软件?快来看看这些视频裁剪软件

我们有时候将视频拍好后,会觉得视频中有些画面的边缘出现了瑕疵,就想要将那些边缘裁剪掉,但是却不知道要怎么操作才能裁剪视频的画面。其实想要裁剪视频的画面很简单,我们只需要借助一些视频处理工具就可以实现裁剪视频画面的操作…

Swift 周报 第十八期 |技术汇总

前言 本期是 Swift 编辑组自主整理周报的第九期,每个模块已初步成型。各位读者如果有好的提议,欢迎在文末留言。 欢迎投稿或推荐内容。目前计划每两周周一发布,欢迎志同道合的朋友一起加入周报整理。 蝴蝶的生命之所以如此短暂&#xff0c…

解决git中出现的“fatal ‘xxxx‘ does not appear to be a git repository”错误的方法

今天来分享一下我在使用git中出现的一个错误提示,话不多说,我们直接来分析~ 这个错误是我在通过SSH方式pull远程仓库时候出现的,错误提示如下: fatal: xxx(你的仓库别名) does not appear to be a git repository fatal: Could n…

【C++学习】string的模拟实现

🐱作者:一只大喵咪1201 🐱专栏:《C学习》 🔥格言:你只管努力,剩下的交给时间! 上篇文章中本喵介绍了C标准库中string类的使用,下面本喵来模拟实现一下string类。库中的s…

【Spring框架】爆gan两万六千字,助你通关IoC和DI

✅作者简介:热爱Java后端开发的一名学习者,大家可以跟我一起讨论各种问题喔。 🍎个人主页:Hhzzy99 🍊个人信条:坚持就是胜利! 💞当前专栏:【Spring】 🥭本文内…

navicat连接mysql数据库

一、打开navicat软件 二、创建一个测试连接 1、点击【连接】,选择【MySQL】 2、创建连接。 3、连接出现报错 三、解决方式: 1、键盘上wins r 同时按,输入cmd,调出命令行窗口。 2、通过cmd登陆mysql 3、输入以下语句修改密码 更…

拿下50亿后,岚图能否一绘蓝图?

近两年,我国新能源汽车市场呈现出一派百家争鸣、高歌猛进的势头。2021年,A股新能源汽车指数全年上涨42.72%,大幅跑赢沪深300、中证500和汽车指数。 然而进入2022年寒冬,新能源汽车市场却集体打了个“哆嗦”。 美股特斯拉自今年4…

设备安装CoreELEC系统,并配置遥控:实现低成本NAS影音播放器

目录0. 前言CoreELEC简介动机硬件1.准备工作1.1下载镜像1.2 制作启动U盘2.安装CoreELEC2.1 从U盘启动2.2 CoreELEC写入盒子emmc3.设置遥控器本文原首发于zdm,由于该平台审核机制出现问题且编辑器极其不好用,所以发布于此 仅作为记录操作的用途 0. 前言 …

代码随想录66——额外题目【回溯、贪心】:52N皇后II、649Dota2 参议院、1221分割平衡字符串

文章目录1.52N皇后II1.1.题目1.2.解答2.649Dota2 参议院2.1.题目2.2.解答3.1221分割平衡字符串3.1.题目3.2.解答1.52N皇后II 参考:代码随想录,52N皇后II;力扣题目链接 1.1.题目 1.2.解答 这道题和之前做过的 51.N皇后 是一模一样的&#x…

怿星科技参加2022(第六届)高工智能汽车年会

2022(第六届)高工智能汽车年会将于下周三在上海虹桥拉开帷幕,怿星科技作为本次活动的赞助商,将在11月30日下午的【座舱算力与系统】分论坛与大家分享关于智能汽车软硬分离探索与实践的专题演讲。此外,在活动期间&#…

docker 之间相互通讯

方式一:通过IP直接访问(不推荐) 查询容器对应的IP命令: docker inspect 容器 | grep IPAddress 通过docker容器启动的实例分配的ip地址,直接访问,docker重启时IP会发生变化,所以不推荐 方式二:通过端口…

html 多按钮点击按钮颜色改变 捷弘和宇乐两个按钮,在点击选中时颜色做区分

捷弘和宇乐两个按钮&#xff0c;在点击选中时颜色做区分 点击捷弘按钮&#xff0c;捷弘按钮颜色改变&#xff1b;点击宇乐按钮&#xff0c;宇乐按钮颜色改变&#xff0c;捷弘按钮颜色恢复 如图&#xff1a; html代码&#xff1a; <a id"jiehong" class"bt…

安泰测试-Keithley吉时利2461数字源表产品参数

Keithley SMU 2461,吉时利2461数字源表&#xff1a; Keithley SMU 2400 图形系列 SourceMeter 溯源、测量、绘图和分析功能触手可及 Keithley 的触摸屏图形源测量单元仪器可带来直观的测试平台体验&#xff0c;满足电源和测量需求。 应用&#xff1a;离散设备、组件、FET、二管…

cpu设计和实现(pc跳转和延迟槽)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 cpu按部就班地去取指执行是理想情况。很多时候&#xff0c;cpu的pc寄存器会跳来跳去的。跳转的情况很多&#xff0c;一般可以分成三种。第一&#…

CRM软件哪个好?国内外6大顶级CRM软件盘点

CRM软件哪个好&#xff1f;国内外8大顶级CRM软件盘点 市场上存在上千种CRM管理系统&#xff0c;他们各有特色&#xff0c;难免让企业在选型时遇到诸多困难&#xff0c;有人说这款好用&#xff0c;有人说哪款好用... 所以本文将整理国内外那些顶级的CRM软件。 一、国内外6款CR…