【官网】https://chainlinklabs.com/

【项目】https://chain.link/

【文档】https://docs.chain.link/docs

【工具】https://chain.link/developer-resources

【博客】https://blog.chain.link/

【简介】智能合约是在区块链上预设的协议,合约对数据做出评估,当达到特定条件时自动执行。智能合约如果要连接到区块链以外的环境,就需要将链下数据转换成链上可以兼容的格式。然而,链上智能合约与链下数据互相不能兼容,这是导致智能合约一直无法得到广泛应用的最大瓶颈。

这时候就需要用到预言机了。预言机其实是一个中间件,它作为链下数据和链上智能合约沟通的桥梁,让彼此能够读懂对方的语言。

然而,如果网络中只有一台预言机,那么就会造成中心化的问题(即单点失效),而这个问题正是区块链智能合约致力于解决的根本问题。如果这台预言机出现问题或者遭到攻击,你怎么知道它给你提供是数据是否准确呢?如果智能合约的数据出现问题,那么智能合约本身再安全再可靠又有什么意义呢?

我们先简要总结一下智能合约和预言机的概念:

智能合约具有不可篡改性和可验证性,使用IF/THEN的代码逻辑,当设定条件满足时自动执行。

用来定义智能合约条件的数据原本来自区块链。

最近,区块链生态圈引入了预言机的概念,将链下数据传输至链上智能合约。然而,中心化的预言机可能出现问题,因此会危害链上智能合约的安全性和可靠性。、

Chainlink是一个去中心化的节点网络,通过预言机将链下数据传输至链上智能合约。它由三个关键智能合约(声誉合约、订单匹配合约、数据汇总合约)以及数据提供者的链外注册表组成。声誉合约用来跟踪数据提供者的表现。声誉合约中的分数会更新到链外注册表中。订单匹配合约会从使用声誉合约的预言机中选择竞标者,并最终确定服务层级要约(Service Level Agreement,SLA),其中包含了查询参数和要求的预言机数量。这也意味着数据购买者不会直接与个体预言机交易。数据汇总合约会从多个预言机处收集响应(使用“commit-reveal”模式提交),计算查询的最终总结果,然后将结果反馈回声誉合约。

这样的去中心化方案要面临的其中一个重大挑战是:构建数据汇总函数。ChainLink提议计算响应附加权重,这样就可以为每一个预言机响应记录有效性分数。此处,发现一个“无效”的分数并不是毫无价值的,因为它建立在(以对统计提供的响应的偏离来度量)过于偏远的数据点是不正确的这一前提之上。基于某一预言机响应围绕响应分布的位置来计算有效性分数有一定风险,具体表现为惩罚偏离平均值的正确答案。因此,ChainLink提供汇总函数的标准集合,但也支持使用定制化的汇总合约。


image.png