寻找百倍币系列之预言机ChainLink

所有的盈亏都是在不断变化并自由博弈的市场中认知变现的结果。本文为系列文章“寻找百倍币”的第一篇,顾名思义,“寻找百倍币”将持续为大家介绍我认为具有一百倍增长潜力的优质Token,它们有的是现有概念板块的龙头,有的是鲜为人知的黑马。

所有的盈亏都是在不断变化并自由博弈的市场中认知变现的结果。

本文为系列文章“寻找百倍币”的第一篇,顾名思义,“寻找百倍币”将持续为大家介绍我认为具有一百倍增长潜力的优质Token,它们有的是现有概念板块的龙头,有的是鲜为人知的黑马。

总之一旦看到这系列文章,要么暴富,要么输光底裤。

寻找百倍币系列之预言机ChainLink

暴富 or 输光底裤

本系列第一篇文章介绍的项目是ChainLink,目前上线的交易所分布较为国际化,包括:币安、Bithumb、CoinBene、huobi、OKEx、Kyber、IDEX等。

现市值排名第42,比特฿价格接近历史最高点,相比较于7月底低点上涨近300%。

寻找百倍币系列之预言机ChainLink

现有CMC中的代币大多数是基于以太坊构建的dApp,可以说2017年的大牛市主要是因为以太坊生态的大繁荣。

比特฿代表了区块链1.0,以太坊被誉为区块链2.0,其中最重要的属性之一就是智能合约,以太坊作为智能合约平台,为用户和开发者构建各式各样的分布式应用(Decentralized application,简称dApp)提供了可能。

寻找百倍币系列之预言机ChainLink

dApp和现有的App有什么区别?

现有的App几乎不开源,这意味着这些App可能窃取用户隐私、更改数据或做出种种损害用户利益的行为,用户对于App的更新或者规则几乎不存在任何话语权,这些App所有的公司拥有着对绝对的控制权。

dApp追求的是永不宕机,能够持续运行下去,其次dApp大多开源,用户可以不用再去相信一个口头上保证自己值得信赖的产品,所有人都可以去查看产品代码,以此验证它是否值得信赖。

另外一个非常重要的点是,用户在dApp中掌握了更多的治理机会,能够使得该网络尽量更符合自己利益,类似0xProject(ZRX)、Decred(DCR)等项目在用户实现自治理方面做出了有趣的探索。

智能合约正是实现dApp的关键基础,可以把智能合约简单地理解成一个“如果——就”的程序/代码,能够对接收到的信息按照设定好的程序或代码执行,并产生结果。

例如现实世界中的自动售货机,当你投入一张五块的纸币,那么售货机就会按照设置好的程序吐出一瓶售价为5元的饮料。

而在以太坊中,由于智能合约运行在公开透明(任何人都可以查看这个智能合约,如果这个智能合约存在漏洞或者后门,可以选择不执行)和可复制(可复制代表着其余节点将复制这个智能合约在自己的账本中,使得智能合约被篡改的成本非常高以至于几乎不可能被篡改)的区块链中,这确保了智能合约的公平公正,不会存在某个人/组织处于自己的利益恶意更改程序而损害其他人的利益。

智能合约使得价值的转移能够由公开可验证的代码驱动和自执行,而不再需要信任任何一方。

在现实世界中我们经常打赌,A和B就明天是否会下雨打了一个赌,如果明天下雨则A赢,明天不下雨则B赢,那么谁来当裁判呢?

A和B商议之后决定选择双方都值得信赖的朋友C,A和B把赌注托管给C,如果C看到明天下雨,就把所有的钱都给A,如果不下雨则把所有的钱给B。

而在以太坊中,A和B可以一起编写一个智能合约,双方可以检查代码,确认不存在后门和漏洞,他们把钱托管在智能合约控制的账户中,智能合约将依据收到的指令判断输赢,如果A赢了,那么所有托管在智能合约账户中的钱就会自动转账给A,反之则是转账给B。

但这里的问题是智能合约只能在收到输入后执行代码,它只能在链上(on-chain)运行,它不能进入到链下(off-chain),它没有眼睛没有意识,没有方法去看到明天到底有没有下雨,必须要有一个外部的数据源来告诉它明天的天气情况。

寻找百倍币系列之预言机ChainLink

智能合约无法自行访问链下数据,所以引用来自外部的某个数据源,但这个数据源如果是某个中心化公司提供的,那么依然存在单点故障(该数据源失效等)和提供虚假数据的可能性。

A和B编写智能合约后,决定选用C公司提供的数据来判断明天的天气,A和B下注的金额非常大,A为了不让自己输,花了一部分钱买通C公司让自己赢。

寻找百倍币系列之预言机ChainLink

这时C公司输入了一个不正确不符合客观事实的信息,智能合约没有办法去检测这个信息的真伪,于是将所有的钱都给了A。

又因为智能合约是强制性执行且不可更改的,就算所有人都知道B才是正确的,也已经没有办法了,所有的钱都已经转给A了。

我们把链上(区块链)与链下(现实世界)中的信息桥梁称之为预言机(Oracles),通过预言机能够把信息从链下传递到链上,传递现实世界的信息并与区块链进行交互。

在区块链世界中,预言机是智能合约同样重要的存在,如果没有预言机,那么将无法实现信息的传递,将无法实现区块链与现实世界的大规模结合和应用,阻碍了区块链落地。

以太坊上最早的预测市场Augur的解决方案是,所有持币者对结果进行投票,回到A和B打赌的例子,持有Augur代币REP的用户针对“明天下雨了”和“明天没有下雨”的两个结果进行分析(是否符合客观事实),并对正确的结果进行投票(下雨或不下雨)。

寻找百倍币系列之预言机ChainLink预测市场的结果也可以成为预言机,并且该结果可以是实时的

如果A想作弊,那么它需要花费更多的成本来篡改结果,因为在Augur网络中总是有着一些诚实的人,如果他们撒谎,那么将损害整个网络和自己的利益。

他们持有REP,如果投票结果不可信那么就没有人愿意再来使用Augur,而他们持有的REP将一文不值。但这个解决方案的弊端是效率太慢。

常见的解决方案是成为预言机需要抵押品,同时该预言机提供的抵押品的价值必须大于它作弊获得的价值,一旦该预言机输出错误的结果,它的抵押品将被没收。

上述的REP就是抵押品,所有投票者都是预言机。

ChainLink可以称之为预言机概念代币中的龙头,旨在为智能合约提供可验证的真实数据。

简单的说,ChainLink允许任何拥有数据反馈和其他API的节点运营商将这些提供给智能合约换取LINK Token,并允许这些数据提供商(例如支付提供商或服务提供商deng )将其基于API的服务直接出售给智能合约以换取LINK Token。

寻找百倍币系列之预言机ChainLink

接下来将简述ChainLink的运行机制:在白皮书中,Chainlink 被介绍为一个分布式的预言机网络,描述了ChainLink 帮助合约获得外部连接性所提供的链上组件,和支持网络节点运行的软件,ChainLink团队还提出了一个简单的链上合约数据聚合系统,和一个更有效的链下共识机制。

ChainLink团队还描述了ChainLink 支持声誉和安全监控的服务,即使是在非常猛烈的广告竞争下,也能够帮助用户做出明智的选择——选择哪一个信息提供商,并提供稳健的服务。

ChainLink团队将理想预言机的性能作为安全策略的指导,并列出未来可能的改进,包括功能丰富的预言机编程,数据源基础设施强化,和私密智能合约执行。

ChainLink最初建立在以太坊之上,但团队希望它能够支持所有领先的智能合约平台进行off - chain(off-chain 有链下和脱链两重含义)和跨链(cross - chain)交互。

寻找百倍币系列之预言机ChainLink

链上架构(on - chain architecture)

ChainLink 节点响应用户合约的数据请求或数据查询(用户合约自发或代理),ChainLink团队称之为requesting contract 并简称USER-SC。

ChainLink中去请求(响应)合约的的on-chain接口自身就是运行在链上的合约,团队简称之CHAINLINK-SC。

在CHAINLINK-SC的背后,ChainLink有一个由三个主要的合约组建的组件,一个声誉合约(a reputation contract),一个订单匹配合约(an order-matching contract),和一个聚合合约(an aggregating contract)。

声誉合约用来跟踪预言机服务提供者(oracle - service - provider,以下可能被简称为oracle provider 预言机提供者)的性能指标(performance metrics),订单匹配智能合约采用被推荐的服务级别协议(service level agreement,简称SLA),记录SLA参数,和从预言机提供者中收集竞价,随后使用这个声誉协议选择投标(上述的某个预言机提供者提供的竞价),并确认最终的预言机SLA。

聚合合约收集预言机提供者的响应,和计算这些ChainLink节点查询得到的的结果并进行最终的汇总。它还将预言机提供者的指标反馈给声誉合约。

ChainLink合约已按模块化的方式设计,并将依据用户需求进行配置或替换。链上的工作流程包括三个步骤:

  • 选择预言机(oracle selection)

  • 数据报告(Data Reporting)

  • 结果聚合(result aggregation)

选择预言机:预言机服务购买者指定组成SLA提案的需求,它包括:查询参数和购买者需要的预言机数量等细节。另外买方指定将用于声誉和聚合合约所在的剩余协议。

通过使用链上维护的信誉,和过去合约所产生的日志中收集到的更强大的数据集,买方可以通过off - chain列表服务进行手动分类、过滤和选择预言机。

ChainLink团队的目的是让ChainLink维护一个这样的列表服务(listing service),收集所有与ChainLink相关的日志并验证列出的预言机合约的二机制文件。

用于生成该列表的数据将从区块链中获得,允许构建可供选择的oracle-listing 服务,并在最终确认SLA上链前达成协议。

同时某些情况下无法进行手动匹配,ChainLink使用订单匹配合约进行预言机自动化匹配,增加可用性。

一旦买方确认了自己的SLA提案,他们将提交SLA到订单匹配合约中,而不是直接联系预言机。

想订单匹配合约提交建议书会触发一个日志,预言机提供者可以根据其功能和服务目标监视和过滤该日志。

随后,ChainLink节点选择是否对建议书进行投标,合约仅接受满足SLA要求的节点的投标。当预言机服务提供者对合同进行投标时,他们会承诺SLA中所提到的,如果存在不当行为将失去自己的保证金。

整个投标窗口都接受投标,一旦SLA获得了足够的合格投标,并且投标窗口已经结束,就会从投标池中选择买方所要求的数量,在招标过程中提供的保证金将返还给那些没有选中的预言机,并创建最终的SLA记录。

当最终的SLA被记录下来时,它会触发一个日志,通知选中的预言机,随后预言机将执行SLA中详细说明的任务。

数据报告:一旦创建了新的预言机记录,这个脱链的预言机就会执行协议并将报告返回给链上。

结果聚合:一旦预言机提供者向合约公布了自己的结果,他们的结果将被输入到聚合合约中。聚合合约和整体结果,并计算加权答案。

随后将每个预言机响应的有效性报告给声誉合约,最后加权答案将传递给USER-SC中的指定合约函数。

链下架构(off - chain architecture)

在链下,ChainLink最初由连接到以太坊未来的预言机节点网络组成,ChainLink打算支持所有领先的智能合约平台。

这些节点独立地得到对链下请求的响应。正如ChainLink团队解释的那样,它们的单个响应将通过几种可能的共识机制之一聚合到全局响应中,并返回到请求合约user-sc中。

ChainLink节点由标准开源核心实现(standard open source core implementation)提供支持,该核心实现处理标准区块链交互、调度以及与公共外部资源的连接。

节点操作符(Node operators)可以选择添加被称之为外部适配器的软件扩展,这些扩展允许操作符提供额外的专业链下服务。

在企业设置中,ChainLink节点已经部署与公有链和专有网络一起部署,使节点能够以分布式的方式运行是ChainLink网络的动力。

ChainLink 核心

核心节点软件负责与区块链接口、调度和平衡各种外部服务之间的工作。ChainLink节点所做的工作被格式化为赋值(formatted as assignments),每个赋值都是一组较小的作业规范,称为子任务,他们作为管道处理。

每个子任务都会执行特定的操作,然后将结果传递给下一个子任务,直到达成最终结果。ChainLink的节点软件内置了一些子任务,包括HTTP请求,JSON解析和各种区块链格式的转换(意指跨链)。

外部适配器 External Adapters

除了内置的子任务类型之外,还可以通过创建适配器来自定义子任务。适配器是具有最小REST API(应用编程接口)的外部服务。

通过以面向服务的方式对适配器建模,在任何编程语言构建的程序中都可以通过在程序前面添加一个小的中间API轻松实现。

类似地,与复杂的多步骤API的交互可以简化为带有参数的单个子任务。

子任务概要 Subtask Schemas

ChainLink团队预计许多适配器将会开源,因此服务可以由各种社区成员进行审计和运行。由于众多不同的开发者正在开发众多不同类型的适配器,确保适配器之间的兼容性至关重要。

ChainLink 目前使用一个基于JSON Schema的模式系统运行,以指定每个适配器需要什么输入和如何进行格式化。类似的,适配器指定一个输出模式来描述每个子任务输出的格式。

预言机安全性 Oracle Security

预言机的安全性是非常重要的,如果输入了错误的内容将会得到错误的结果。

寻找百倍币系列之预言机ChainLink本图描述了ChainLink如何工作

  1. USER SC 发起一个链上的请求

  2. CHAINLINK - SC 为预言机记录一个事件

  3. ChainLink Core 获取该事件并寻找路径分配给适配器

  4. ChainLink 适配器执行一个外部API的请求

  5. ChainLink适配器处理这个响应并把它传递给ChainLink Core

  6. ChainLink Core把数据报告给CHAINLINK-SC

  7. CHAINLINK-SC 聚合相关响应并把它作为一个单一的响应结果传递给USER-SC 

寻找百倍币系列之预言机ChainLinkChainLink试图保证预言机结果和相关数据在传递时的安全性和完整性

ChainLink将使用三种方法来确保单点故障发生的可能:

  • 数据源的分散(DIstribution of data sources)

避免单个节点的故障的简单方法是从多个数据源中获得数据,即数据源的分布式。

  • 预言机的分散(Distribution of oracles)

  • 使用可信硬件(Use of trusted hardware,这是长期策略)

ChainLink 安全服务

为了确保用户得到最可靠的预言机结果,ChainLink使用了四种极其关键的安全服务:

  • 验证系统(Validation System)

  • 声誉系统(Reputation System)

  • 认证服务(Certification Service )

  • 合约升级服务(Contract - Upgrade Service)

验证系统:将监控链上预言机的行为,为用户选择预言机提供了客观的性能指标,它将设法监控预言机的可用性(预言机发生故障后将被记录)和正确性(预言机的明显错误响应将被记录)

声誉系统:ChainLink的声誉系统将记录和发布用户对预言机提供者和节点的评级,为用户提供全面的评估预言机性能的方式。

评级将包括以下数据:

  • 分配的响应请求总数(过去同意执行的响应请求的总数,不论是否满足了该请求)

  • 已完成的响应请求总数(类似于完成率)

  • 平均响应时间(根据过去完成的响应请求将计算出时效性)

  • 违约金数额等(类似于保证金,为了确保节点的运行需要锁定保证金)

认证服务:为了防范Sybil 和 Mirroring 攻击等形式的作弊危害网络真实性和安全性,认证服务寻求完整性和可用性的保证,将为高质量的预言机提供者提供认可。

合约升级服务:编写智能合约充满挑战,即使是一个正确编程的合约,由于环境的变化也可能变得脆弱。基于此,ChainLink团队建议使用合约升级服务。

类似0x协议的智能合约管道可以在无需停机或中断市场的情况下进行升级。

寻找百倍币系列之预言机ChainLink

ChainLink团队和LINK功能

ChainLink在一级市场获得了3200万美元的融资,ChainLink的团队来自一家位于旧金山并运行了4年半的智能合约公司SmartContract,专门为大公司定制智能合约。

目前,SmartContract最大的客户是跨行交易网络Swift,后者的网络有11000家银行加入。

LINK将用于向ChainLink节点支付相关费用,LINK是ERC20代币,但同时具备ERC223代币的“转账和调用”的功能——允许代币转账到合约中。

从博客更新来看,ChainLink正在与其他智能合约平台开展合作。

寻找百倍币系列之预言机ChainLinkChainLink与Wanchain达成合作

寻找百倍币系列之预言机ChainLinkChainLink与Web3 Foundation达成合作

LINK是一种功能性代币,升值取决于ChainLink的应用规模,与智能合约、dApps的兴起息息相关。

同时目前LINK已经出现了较大的涨幅,存在较大风险,建议长期关注逢低入场。

文章说明:本文自觉或不自觉地使用了很多主观性的判断,也自觉或不自觉使用了夸张的艺术表达手法,部分观点缺乏严谨的论证过程,事实和个人观点互相交错,同时区块链和加密资产依然是高度试验性并可能失败的一场探索。

所有加密资产都存在着被恶意操纵、技术漏洞等隐忧,并不构建任何短期或长期交易或投资意见,读者需要引以为鉴。

引用:

1) 智能合约:

https://github.com/EthFans/wiki/wiki/%E6%99%BA%E8%83%BD%E5%90%88%E7%BA%A6

2) 引介 | 预言机-让智能合约起飞:

https://ethfans.org/posts/oracles-help-smart-contracts-resolve-subjective-events

3) Augur:http://www.augur.net/

4) 连接区块链与外部数据,ChainLink获3200万美元融资:

https://36kr.com/p/5094500.html

5) ChainLink白皮书:

https://link.smartcontract.com/whitepaper

0

发表评论