在 DeFi 生态中,借贷、衍生品,甚至交易都离不开预言机。没有预言机, DeFi 生态就无法维系。但目前 DeFi 的火热让以太坊网路异常拥堵,反而使得预言机的使用成本非常高昂,可用性持续下降。
究其原因,目前主要的预言机在以太坊网络上采用了链上数据聚合的方式,使得用户在为数据服务支付费用的同时,还需要承担大量的 gas 花销。
上图是某预言机链上数据聚合的 gas 花销,每笔交易的手续费高达 13~25 美元,严重影响了预言机的可用性,压缩了预言机的应用空间。
针对该问题,本文提出一种解决方案。
从较高的层次看,请求/响应式的预言机(网络)工作过程如上所示:
– 有链外数据需求的用户通过智能合约发出数据请求
– 预言机(网络)在收到数据请求后再向外部数据源发出请求
– 预言机(网络)对数据结果进行聚合
– 最后将数据响应给用户的智能合约
针对这种情况,为了使预言机更好地释放智能合约的潜力,本文提出一种基于 VRF 和 BBFT 的链下数据聚合方案。
工作流程
用户发出请求
用户在向预言机网络发出请求时,需要部署一个标准模板的智能合约。
合约中将包含所请求的数据类型、具体数据、报价、预言机抵押要求、所需预言机数目、数据聚合方案、请求时间等信息。
上述请求信息的哈希值将作为 RequestID 成为后续工作的凭证。
共识委员会接收请求
预言机网络在启动初期由42个节点组成,其中的 10 个节点组成共识委员会,他们轮流主导数据共识;另外32个为普通预言机节点。预言机网络中的普通节点和共识委员会节点均以去中心化的方式产生,具体机制可另行设计。
预言机网络的共识委员会将监听各区块链上对奇点网络发出的数据请求。
共识委员会基于 VRF 分配任务
共识委员会中的 Leader 节点将根据用户请求随机选择一定数量的预言机节点(相比用户要求数量,可考虑1.2倍的冗余),并将数据请求分发给他们。在此过程中,共识委员会的其他成员负责验证节点选择的随机性和 Leader 所广播内容,并在后续的共识过程中表态。具体方案见后续章节。
共识委员会收集响应
预言机节点在收到数据请求后,向数据源查询数据。这里可以建议预言机节点针对同一数据维持不同的数据源并提供相关证明,这将可以提高其自身的竞争力。
获取数据后,预言机节点将采用标准的数据模板将数据及 RequestID 报告给所有共识委员会成员。
共识委员会聚合数据并达成共识
Leader 节点将按照用户要求的聚合方案对所收集的响应进行聚合,并主导共识委员会对聚合结果达成共识。
共识委员会的其他成员可以根据各自收集的数据自行计算,对聚合结果进行验证,同时根据在前面步骤中对 Leader 行为的监督对最后的聚合结果进行表态。
### 奇点网络完成用户请求
共识委员会最后将聚合后的唯一数据结果提交给用户的请求合约(多重签名/门限签名),并分配本次服务的报酬。
总结
在整个工作流程中,共识委员会见证从数据请求到数据聚合的全过程,每个委员会成员对最终数据结果都能够形成自己的判断,因此,只要不超过1/3的共识节点作恶,最终通过 BBFT 的机制对数据聚合结果达成共识也会是有效的。
该方案将大大降低区块链本身的网络状况对语言及服务的影响,在提升数据聚合效率同时降低数据聚合的成本。