背景

  • 智能合约出现的理念是去中心化以及安全的自动执行的合同,区块链的共识机制实现了去中心化,安全方面则是通过一个区块链中的沙盒虚拟机执行智能合约,也即是外部数据无法干扰智能合约的执行,实现自动与安全,一般恶意破坏的方式都是通过模仿或者盗用合规手段输入非法数据,达到入侵破坏的目的,而沙盒特性则是直接连合规手段输入数据的可能性都掐掉,从而,不管实体是否恶意,他都干预不了智能合约运行
  • 然而上述安全太过绝对,沙盒特性保证智能合约的安全性,但是限制了它的实用性,即只能用于特定的情况——类似用户发起交易,智能合约执行
  • 区块链的去中心化是一个比较颠覆性的创新综合型技术,智能合约的潜力是巨大的,但是它的沙盒特性限制了它的应用场景,所以合理的方式是在沙盒上开个小口,输入一个管道,使得智能合约可以获取外部数据,而这个管道就叫做预言机

简介

  • 智能合约的执行实质上还是区块链最初的交易,也拥有交易的性质,数据来源都是确定可验证的
  • 预言机需要满足的条件就是筛选外部数据,提供确定可靠的数据提供给智能合约
  • 其中Chainlink是预言机中比较受欢迎的一个,基于ERC-677协议

Chainlink预言机的原理

  1. 收集可靠数据
  2. 将数据传至链中作为智能合约的输入参数

收集可靠数据

  • 通过对比来自多数据源的数据
  • 通过奖惩机制确保数据可靠性

将数据传至链中作为智能合约的输入参数

  1. 用户智能合约发出交易,需要访问外部的参数的具体请求放置在data字段中
  2. 交易携带data字段访问Oracle合约
  3. Oracle合约写下请求日志
  4. 订阅Oracle日志的外部数据节点获取请求后查询可靠数据,并处理后作为参数调动Oracle合约
  5. Oracle合约通过获取到的输入参数发起交易,生成区块
  6. 用户智能合约通过相应获取到新区快数据
  7. 用户的智能合约发起的交易完成

 

 

参考

什么是“预言机”,你整体有了解吗?