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

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

预言机为分散的 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不断增长的去中心化预言机服务集合

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

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
C语言是一种广泛应用于计算科学和软件开发的编程语言。它具有强大的功能和灵活性,适用于开发各种类型的应用程序。 C语言专题精讲是一个对C语言进行深入学习和讲解的系列文章或课程。它汇总了C语言相关的重要知识点和技巧,旨在帮助学习者更好地理解和运用C语言。 这个专题中的笔记涵盖了C语言的各个方面,包括基本语法、数据类型、运算符、流程控制、函数、数组、指针、结构体、文件操作等。通过系统性的学习和总结,这些笔记可以帮助学习者逐步掌握C语言的核心概念和常用技巧。 在这个专题中,学习者可以学到如何编写简单的C程序,如何使用变量和运算符进行计算,如何使用条件和循环语句控制程序流程,如何使用函数进行代码的模块化,如何使用数组和指针进行数据的处理,如何使用结构体组织复杂数据,如何进行文件的读写等等。 C语言专题精讲的目的是帮助学习者全面、深入地了解C语言的各个方面,并能够独立编写和调试简单到中等难度的C程序。通过反复实践和练习,学习者可以逐渐提高自己的编程能力,并为进一步学习更高级的编程语言打下坚实的基础。 总之,C语言专题精讲笔记汇总是一份重要的学习资料,可以帮助学习者系统地学习和掌握C语言的基础知识和常用技巧,为他们未来的编程之路打下坚实的基石。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wonderBlock

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值