Chainlink(LINK)是一个去中心化预言机网络,旨在将智能合约与现实世界数据连接起来。Chainlink由Sergey Nazarov开发,Steve Ellis是另一位合伙人。2017年9月,Chainlink通过ICO募集了3200万美元,其代币LINK的总供应量为10亿个。
LINK是去中心化预言机网络Chainlink的本地加密货币,用于支付节点运营商费用。Chainlink网络设有一个信誉系统,大量拥有LINK的节点运营者可以获得较多的合约,如果节点运营者无法传递准确的信息,其代币将会减少。开发人员称LINK是一种ERC-20代币,不过它附加了ERC-233协议的“传输和调用”功能(地址,uint256,字节),允许代币在单次交易中被合约接收和处理。在2017年进行了3200万美元的ICO后,为了激励生态系统发展,32%的LINK代币被发送给了节点运营者,30%的代币留在Chainlink内用于开发(35%的代币进行公开出售)。
市场需求
区块链保证的是链上数据的真实性和不可篡改性,但是区块链本身无法保证上链信息在上链之前的真实性,此外,链上智能合约本身不能访问链外数据。而当前触发智能合约执行的外部数据(如物联网数据、市场数据和事件数据)基本都储存在链下,链上与链下系统的割裂使得两个世界无法互相互通。
预言机,作为区块链中间件,可以帮助智能合约连接外部链下数据,实现区块链世界与现实世界的数据交互,可应用于众多数据交互场景,如稳定币、借贷、金融衍生品、保险以及预测市场等。
项目解决方案
Chainlink 通过使用数据API将链上和链外联系起来。通过获取链上资源(如以太坊、比特币等区块链),并通过 API 将其连接到链下资源(如市场数据、银行支付、零售支付、事件数据等)来实现链下数据与链上智能合约的交互。
其中,其链上模块由声誉系统、订单匹配合约、聚合合约三部分组成,负责连接 DApp 开发者的智能合约,接受对链外数据的请求。链下模块则负责监听请求,并向节点运营商获取数据。
在链上智能合约与链下数据交互的过程中,代币 LINK 作为数据需求方与数据提供商之间的交易 Token。LINK 代币用于支付数据提供商、Chainlink节点运营商、支付提供商和其他在线服务提供商,智能合约用户将对使用 LINK 代币的数据提供商进行激励。因此,Chainlink 平台使用越广泛,LINK 代币价值就越高。
项目实现机制
Chainlink 架构分为链上(On-chain)部分和链下(Off-chain)部分,链上部分作为合约层完成 Chainlink 内所有信息的记录,而链下部分负责代码和命令行以及输出数据的具体执行。
链上部分执行的操作包括用户(服务请求方)对预言者(服务供应商)的挑选(Oracle Selection)、数据服务的反馈报告(Data Report)和最终结果汇总(Result Aggregation)。Chainlink 通过调用信誉合约记录预言者历史服务情况、订单匹配合约和汇总合约共同实现整个 Chainlink 网络在链上的闭环体系。
链下部分分为 Chainlink Core、外部适配器和 Subtask Schemas 三部分。其中,Chainlink Core 是在可信执行环境(TEEs)下的命令窗口,外部适配器根据服务具体的需求将复杂的任务拆分成多个子任务以便于执行,Subtask Schemas 统一所有预言者最终输出的答案为 JSON 格式,便于代码执行和可读性。
Chainlink 工作流程分为 7 个步骤:
USER-SC 合约发出数据调用请求;
ChainLink-SC 合约为预言者记录请求,并编译到 Core 命令行;
Core 通过在合约程序前添加外部 API 来设置适配器,并分配任务;
适配器将请求反馈给外部 API;
ChainLink 收到预言机服务商的回复,并将其反馈给 Core 命令行;
ChainLink Core 将数据报告给反馈给 ChainLink-SC;
ChainLink-SC 汇总所有的答案,后反馈给用户端。
代币使用场景
LINK代币用于支付ChainLink平台服务的手续费,包括数据提供商,ChainLink节点运营商,支付提供商和其他在线服务提供商。
采用算法
Chainlink门限签名技术:区块链中的“密钥”概念在预言机领域即为预言机私钥,只有掌握预言机私钥,相关预言机才能将聚合过的数据发送到链上。使用门限签名技术可以将这个私钥切分成许多片,并分发给网络中所有参与的预言机。预言机的数量要达到一个事先约定好的“门槛”才可以将手中的“私钥碎片”重新组成一把完整的私钥。预言机在链下进行交互,把密码(私钥)重新拼装起来,然后才可以签名批准链上交易,并将数据(即聚合过的数据)发送至区块链上相应的智能合约。虽然只有网络中参与智能合约的预言机才能够组成签名,但任何人都可以检查签名的真实性。因此,网络中一定数量的预言机必须先达成共识,确认数据的真实性,提供数据的预言机才会得到相应回报。
Chainlink 可验证随机函数(Chainlink VRF)可以为智能合约提供随机数以及加密证明,在链上验证随机数具有不可预测性,因而可以满足上述两个要求。由于Chainlink VRF的随机数可以在链上进行验证,所以问题节点只能选择不对请求做响应,在Chainlink即将上线的staking机制下,这样的行为会遭到罚款,之后还可能会被移除出随机数生成者名单,因此会遭受经济损失。
技术特点
Chainlink 运用 Schnorr 多重签名机制解决 Freeloading (吃空饷——预言者直接复制之前已提交答案的哈希值的行为)的问题。设立最大容错节点数为 Chainlink 节点总数的 2/3 (其中不具备可用性的 Oracle 数量为总节点数的 1/3,不具备准确性的容错为 1/3),要求必须至少有 1/3 以上对等预言者签名才可以通过验证。
Chainlink 计划通过对高质量的 Oracle 发起背书(认证)的方式,监控验证系统关于 Oracles 的统计数据,并对提交至链上的数据执行事后检查,将它们与直接从信誉良好的数据源获得的答案进行比较,证书认证机制将在一定程度上遏制女巫攻击和镜像攻击。
Chainlink 通过数据来源和预言机的多样化有效分散了因数据来源本身的问题导致数据失真的风险。
Chainlink 长期引入可信执行环境(TEEs)作为硬件的安全保障,从而实现合约的保密性,并生成可靠的随机性。
节点运营商可以选择添加外部适配器的软件扩展,提供额外的专业链下服务。目前,Chainlink 节点已实现在公链和私有网络中的企业级部署,最终目标是使节点以去中心化的方式运行。
激励机制
Chainlink 的代币为 LINK,任何个人或组织都可以通过质押 LINK 代币的模式成为预言机系统中的预言者为用户提供数据服务。Chainlink 通过信誉合约对用户的行为进行打分,对表现好的预言者奖励一定数额 LINK 代币奖励。而对有不当行为的预言者扣除其抵押的 LINK 作为惩罚,并在信誉合约中记录其评分,这使 Oracle 的收益与其提供服务的行为和提供其他 Oracle 不当行为证据的行为挂钩。