五分钟带你认识 Chainlink

Chainlink是去中心化的预言机网络,将区块链上的智能合约连接至链下数据。LINK是网络中流通的数字资产通证,用户使用LINK购买服务。

要了解Chainlink的价值和功能,就必须先了解一些相互关联的基本概念。我们先来说说智能合约。

智能合约是在区块链上预设的协议,合约对数据做出评估,当达到特定条件时自动执行。众筹就是一个典型的例子:如果在特定日期向智能合约存入特定金额的以太币,那么募集的款项就会打给筹款人;反之,则会退还给捐款人。由于智能合约是在区块链上运行的,因此合约内容不可篡改而且所有人都可以对其进行验证,合约各方高度信任彼此能履约,而且合约只有在规定的条件都达成后才会触发执行。

智能合约如果要连接到区块链以外的环境,就需要将链下数据转换成链上可以兼容的格式。然而,链上智能合约与链下数据互相不能兼容,这是导致智能合约一直无法得到广泛应用的最大瓶颈。

这时候就需要用到预言机了。预言机其实是一个中间件,它作为链下数据和链上智能合约沟通的桥梁,让彼此能够读懂对方的语言。
然而,如果网络中只有一台预言机,那么就会造成中心化的问题(即单点失效),而这个问题正是区块链智能合约致力于解决的根本问题。如果这台预言机出现问题或者遭到攻击,你怎么知道它给你提供是数据是否准确呢?如果智能合约的数据出现问题,那么智能合约本身再安全再可靠又有什么意义呢?
我们先简要总结一下智能合约和预言机的概念:
智能合约具有不可篡改性和可验证性,使用IF/THEN的代码逻辑,当设定条件满足时自动执行。
用来定义智能合约条件的数据原本来自区块链。
最近,区块链生态圈引入了预言机的概念,将链下数据传输至链上智能合约。
然而,中心化的预言机可能出现问题,因此会危害链上智能合约的安全性和可靠性。

Chainlink是一个去中心化的节点网络,通过预言机将链下数据传输至链上智能合约。
在这个过程中使用添加了额外安全层的硬件,规避了单一预言机可能出现的安全风险。

首先,区块链上的智能合约需要获取数据,因此会发送一个数据请求(即请求合约)。

Chainlink协议将数据请求注册成一个“事件”,然后在区块链上创建对应的智能合约(即Chainlink服务水平协议合约),获取链下数据。Chainlink服务水平协议合约会生成三个子合约,即Chainlink声誉合约、Chainlink订单匹配合约以及Chainlink聚合合约。

Chainlink声誉合约会查看预言机服务商的历史服务水平,验证其真实性和历史表现,并且淘汰声誉较差或可靠度较低的预言机节点。
Chainlink订单匹配合约将请求合约中的数据请求发送至Chainlink节点,并接受节点的竞标(这种情况下请求智能合约不会自行选择节点),然后订单匹配合约会选择适当数量和类型的预言机完成任务。
Chainlink聚合合约从所选择的预言机获取全部数据,验证并聚合数据,最后得出准确结果。

接下来,Chainlink节点会收到请求合约的数据请求,并用Chainlink核心软件将链上数据请求翻译成链下数据源可以读懂的编程语言。然后,翻译过的数据请求会被发送至外部API,以从数据源获取数据。收集完成后,Chainlink核心软件会将数据翻译成链上编程语言,然后再发送至Chainlink聚合合约。
之后的事情就开始变得有趣了。Chainlink聚合合约可以验证单一数据源或多个数据源的数据;另外,它还能聚合来自多个数据源的数据。

比如说,如果有五台预言机传输了来自同一天气传感器发送的结果,而另外两台预言机传输了不一样的结果,那么Chainlink聚合合约就会甄别出这两台预言机有问题,并且会剔除它们的结果。Chainlink节点就是以这种方式验证单一数据源的数据的。

Chainlink聚合合约可以对多个数据源反复进行验证,然后将所有经过验证的数据取平均数,聚合成单一数据。有些情况下无法对结果取平均值,但这里我们为了简化叙述,不对此做深入讨论。

除了数据源,Chainlink还建立了一个可靠高效的机制,向区块链上的智能合约提供准确数据。
那么LINK通证有什么用呢?
发起数据请求的一方会使用LINK购买Chainlink节点的服务。Chainlink节点操作者会根据用户对数据的需求量以及数据当时的市场价格来定价。
Chainlink节点操作者还会用LINK做保证金,担保他们的服务质量,这个机制也会激励节点提升服务水平。
Chainlink声誉合约在分配任务时会考虑节点的保证金金额(当然还会考虑其他因素)。保证金更高的节点更有可能被选中提供服务并赚取LINK。Chainlink网络还会没收问题节点的保证金,以惩罚其提供低质量的服务。
LINK是以太坊上的ERC20通证,可以用法币或其他数字货币进行交易。