Oracle 协议
Oracle 协议

Starcoin Standard Oracle Protocol

预言机(Oracle)是打通链上智能合约与链下环境的桥梁,是公链生态中必备的一个基础组件。拥有一套设计良好的Oracle协议为链上用户提供可靠的链下数据,能给智能合约增加很多更丰富的场景。Starcoin是新一代的公链基础设施,专注于分层的智能合约和分布式金融网络。为了让智能合约更自由,Starcoin在Stdlib中定义了一套标准的Oracle协议。标准的Oracle协议使用安全可靠的智能合约Move编写,既保持了Starcoin去中心化等特点,也继承了Move的安全性。

安全和去中心化的Oracle协议

Starcoin使用了增强的PoW共识,具有去中心化等特点。标准的Oracle协议正是运行在PoW共识之上,所以天然继承了共识的去中心化和安全性。同时,该Oracle协议使用了安全可靠的智能合约语言Move编写,也进一步加固了协议的安全。

开放的数据

标准的Oracle协议对数据起到了规范的作用,智能合约能非常方便地使用这些数据。

  1. 数据透明

通过提交交易来更新Oracle合约数据,做到历史可以追踪,数据完全透明。

  1. 多数据源

标准Oracle协议支持多数据源,以保证数据的稳定和可靠。

  1. 链上数据可选择

链上数据可以根据自己需求,进行筛选、聚合等操作。

默认的Oracle实现

为了更加规范化,Starcoin专门制定了标准的Oracle协议。基于标准的Oracle协议,Starcoin提供了默认的实现版本。用户通过使用默认的Oracle实现,能覆盖很多通用的场景。

可扩展的Oracle协议

标准的Oracle协议是模块化、可扩展的,Starcoin基于该协议提供了一个默认的Oracle实现。用户也可以根据自己的需求,在标准的Oracle协议之上,实现个性化的Oracle,例如实现数据源可治理的Oracle。

丰富的应用场景

Starcoin的Oracle标准协议是一个去中心化、数据开放、安全可靠、可扩展的协议,这套通用的Oracle协议在很多场景都可以方便地使用。

1. 游戏和随机数

不可预测性是游戏具有吸引力的重要的因素之一。而在输入确定的情况下,智能合约必须保证所有人的执行结果是一致的,所以链上很难提供类似随机数的机制。而通过Oracle,用户可以将 VRF 随机数据提交到链上,提供给游戏合约使用,以保障游戏的不可预测性。

2. 时间和价格

用户可以从不同的数据源采集加密货币的时间和价格数据,通过Oracle以接近实时的方式提交到链上。其他合约可以通过筛选数据源,直接使用这些数据,或者聚合处理之后使用这些数据,非常的方便和灵活。

3. 链下复杂计算

由于Gas、单线程等限制,智能合约中不能有复杂的计算逻辑,这会让智能合约的场景非常受限。如果通过某种类似Proof的方案,让复杂的计算在链下执行,然后把结果和Proof提交到链上的Oracle中,提供给其他合约使用,会大大降低智能合约的设计难度,同时,能够丰富智能合约的应用场景。

4. 保险理赔

保险是一个重要的金融场景,但是也一直存在各种不规范的现象,比如骗保等等。智能合约即法律,如果使用Oracle将事件上链,再通过合约来鉴定和执行,将是一个很好的结合。例如,常见的航班延误险、教育金保险等等,都能通过这种方式,规范市场,提升效率。

5. 预测市场

市场是瞬息万变的,任何链下的事件产生,都可以通过Oracle快速映射到链上。智能合约通过获取Oracle提供的数据,触发预测市场执行结算等操作。例如,体育竞技结果、黄金价格变化、电竞等等。