互联网诞生之后,人们有现实世界,也有了互联网世界。如今,人们又有了一个新的世界:加密世界。这是区块链带给人们的礼物。
在过去二十多年,创新者们不断融合着现实和互联网世界,两者相互融入,难以分开。在比特币诞生后十多年后,加密世界也加快了跟现实世界交互的脚步。从蓝狐笔记的角度,加密世界和现实世界的融合会是未来二十年最重要的发展线之一,可以与人工智能和物联网并驾齐驱。
加密世界vs 现实世界
纯粹的加密世界跟现实世界有不同的运行逻辑。
加密世界运行在链上,通过共识机制、密码学以及分布式节点等来保证其不可篡改性,实现不依赖于第三方的信任。智能合约运行在链上,同样,没人可以修改其代码,也无法干扰其运行,这包括智能合约的创建者。在智能合约中,其执行逻辑是,如果发生了x,那么就会执行y,这里的结果是确定性的。智能合约可以自我验证自我执行,它代表了加密世界的可信赖。
而在现实世界中,很难有全局的确定性共识,充满各种不确定的可能,例如应用是可以被修改、被终止的。在这种情况下,加密世界和现实世界的融合存在挑战。互联网世界可以将现实世界的部分搬到网上,例如将报纸杂志搬到网上,成为新媒体;将各种线下的零售店搬到网上就变成了网店。而加密世界跟现实世界的融合更复杂。
那么,两个世界如何沟通?有没有可能沟通?这就是预言机存在的意义。蓝狐笔记之前介绍了DeFi领域中的交易协议Uniswap(《一文读懂Uniswap》)和Kyber(《Kyber的淡出与起势》)。今天蓝狐笔记介绍DeFi中的预言机领域。
预言机连通加密世界和现实世界
加密世界和现实世界的沟通需要预言机。在蓝狐笔记看来,预言机是连接两个不同世界的“中间件”。
如果加密世界仅仅满足于货币类应用,那么,仅仅通过加密世界内部也可以完成,例如比特币的交易。但,如果想要更丰富的服务,想要满足更多的需求,想要将智能合约的潜力发挥到最大,那么,很有必要为智能合约引入来自现实世界的数据。
有人会问,为什么区块链不直接获取这些数据?无法直接获取。上面也提到过,因为这两个世界的运行逻辑不同。区块链上的数据都是通过共识机制达成的全局共识,而现实世界的数据并非都是共识的结果。两个世界的连通需要可靠的预言机。通过预言机提供可信的数据,转换成为区块链可读可用的数据。
Lookonchain:某地址解质押 246 万枚 SUSHI,亏损约 1850 万美元:金色财经报道,据 Lookonchain 监测,推特用户 /img/2022811170706/1.jpg">(ChainLink的ETH/USD价格数据流,21个节点提供服务)
1.ChainLink预言机的工作流程
ChainLink预言机的工作流程大致有如下几步:
用户智能合约(USER-SC)从链上发出请求
ChainLink智能合约(CHAINLINK-SC)为预言机记录一个事件
ChainLink Core接到事件,并路由任务,给到适配器
ChainLink适配器向外部API发出请求
ChainLink适配器处理响应,并将其返回给Core
ChainLink Core将数据报告给ChainLink智能合约(CHAINLINK-SC)
ChainLink智能合约汇总响应,加权得出一个最终反馈,并将其发送给用户智能合约
(来源于ChainLink白皮书)
分析 | Seachain.io: 法币交易所成交额近4天持续上升 ETH数据无明显波动信号:根据Searchain.io数据分析:昨日ETH市场较前日相比活跃度有所增长。大额转账5000-10000和10000+的数量均有所增长,大户活动较前日活跃程度增加。昨日法币交易所成交额与前日相比有明显增长,近四天一直呈增长状态。普通交易所和合约交易所成交额变化不大。根据数据分析,ETH市场投资者参与度整体呈小幅上升趋势,但并无明显波动信号。
投资有风险,入市须谨慎。
本资讯不作为投资理财建议。[2018/11/14]
ChainLink目前以太坊为主构建,未来也会支持其他智能合约平台,例如跟物联网公链IoTeX和分片公链Harmony等都有合作。
为了实现上述工作流程,ChainLink从架构上可以分为两个部分:链上部分和链下部分。
*ChainLink的加密世界部分
ChainLink智能合约响应用户智能合约的数据请求或查询。它包括三个组成合约:声誉合约、订单匹配合约以及汇总合约。其中声誉合约记录的是预言机服务提供者的历史表现;订单匹配合约通过SLA(Service Level Agreement,服务水平协议)为预言机需求者提供选择,例如价格水平、预言机数量、声誉等,并根据需求确定预言机服务提供者;汇总合约汇总不同预言机的响应,并加权计算出最终结果。
总的来说,ChainLink链上的工作流有三步:一是,选择预言机;二是,报告数据;三是,汇总得出结果。
用户选择预言机主要是通过指定SLA提案,可以选择查询参数、预言机数量、声誉情况、价格水平等。根据这些,可以进行排序、过滤,最后作出选择。确定SLA提案之后,它会被提交到订单匹配智能合约,满足SLA要求的ChainLink节点选择是否对提案出价。如果预言机服务提供者出价,则会被提交至合约,同时附上质押金,如有不当行为,会被没收。一旦SLA接收到足够多的符合要求的出价,出价窗口关闭,并从这个出价池选择最终的预言机服务者。没被选上的则其押金会被退还。
一旦执行SLA任务的预言机被选定,接下来就是链下的预言机执行协议,并向链上报告数据。当预言机合约收到预言机提交的结果后,这些结果会被反馈到汇总合约。汇总合约计算加权结果,得出最终的反馈答案。加权答案会返回给用户智能合约,从而触发特定功能。同时,每个预言机响应的有效性都会反馈给声誉合约。
纳斯达克表态称将不会挂牌Long Blockchain:纳斯达克股票交易所表示将不会挂牌由长岛冰茶更名为Long Blockchain的公司,原因是该公司的市值太低。[2018/2/20]
当然,这个汇总加权处理方式可以有多种。有的需要在进行汇总前将异常值去掉,比如可以抛弃离散值,比如在计算时,去掉最大和最小的值,并输出剩余值的中位数等。
*ChainLink的现实世界部分
ChainLink的现实世界部分,也就是其链下部分,主要由预言机节点网络组成,这些节点连接到公链(如以太坊网络)。这些节点独立收集来自现实世界数据源的数据,以响应链上请求的需求。
ChainLink Core 节点软件负责与区块链交互,CHainLink节点的工作是完成各种任务。每个任务有一组小的子任务。每个子任务执行特定任务,然后将其结果传递到下一个子任务,由此得到最终结果。ChainLink节点软件内置了一些子任务,包括HTTP请求、JSON解析、转换为各种区块链格式等。
除内置子任务类型,通过创建适配器也可以自定义子任务。适配器是具有最小REST API的外部服务。通过以面向服务的方式对适配器建模,只需在程序前添加小的中间API,可实现任何编程语言的程序。很多适配器都是开源的,服务可以审计,且由不同的社区成员运行。各种不同的适配器由不同的开发者开发,确保适配器之间的兼容也关键。ChainLink与基于JSON模式的模式系统一起使用,以指定每个适配器需要什么输入以及如何来格式化它们。
2.分散化是ChainLink实现安全连接的基础
实现预言机本身并不算很难,难的是提供持续安全的预言机服务。上面蓝狐笔记也提到过,中心化预言机面临的难题包括单点失败、数据保密、数据不被篡改等。为了实现安全的预言机,去中心化的方式,也就是分散化的方式是实现安全的基础探索。
针对预言机可能出现的安全漏洞,ChainLink提出了去中心化为主的安全方法,其本质也就是分散化,其中包括数据源的去中心化、预言机节点的去中心化。当然只有去中心化还不够,ChainLink还考虑了使用可信硬件、对数据源数据进行签名等方法来确保安全。
首先是数据源的去中心化。如果只有一个数据源,一旦该数据源被黑客篡改、或停机等,那么预言机就不安全。分散化是一种解决方案。可以通过多个来源的数据,获得多个反馈,以分散风险。
其次是预言机节点的去中心化。不同的预言机节点可以从一个或多个数据源获取数据,同时也可防止部分恶意节点输入错误数据。即便其中部分预言机存在错误,只要通过ChainLink汇总合约的加权计算,也有机会得出更可靠的响应。
不过,这里存在搭便车问题。有的节点可能会为了节省收集数据成本,抄袭其他节点的响应数据,不仅对其他节点不公平,同时也实质上降低了预言机节点数据源的分散化,从而不利于安全。ChainLink会采用加密提交方式,由预言机节点发送加密的响应到CHAINLINK-SC智能合约,在达到一定数量,并发起第二轮时才会揭示反馈值。
ChainLink开始时采用的是合约内汇总的方式,长期来说会采用链外汇总的方式。合约内汇总的问题是成本问题,它会涉及链上预言机消息传输和处理的成本。如果节点多,这里可能会有很高的成本。更省钱的方法是在链外执行反馈的汇总,然后向CHAINLINK-SC发送一条消息。ChainLink还提出使用门限签名的方法(蓝狐笔记:threshold signature),例如使用Schnorr签名。链外汇总的系统利用了基于门限签名的分布式协议,可以防止f<n/3预言机的搭便车抄袭情况。
3.ChainLink实现预言机安全的其他措施
仅有去中心化(分散化)的方式,还无法实现全面的安全。ChainLink还考虑其他的措施,例如包括可信硬件、来源数据的数字签名、以及其安全服务。
可信硬件和数字签名方面是ChainLink实现预言机安全长期要做的事情。下面主要介绍在早期预言机服务中,ChainLink为提高安全的措施,也就是其主要安全服务,其中包括:验证系统、声誉系统、认证服务、合约升级服务。
首选看验证系统。ChainLink验证系统监控链上预言机的行为,并提供指标,帮助用户做选择。指标包括可用性和正确性。可用性主要记录预言机没有即时响应查询的失败次数。正确性就是指正确的响应。如果偏离值大,可以比较其他节点的响应得出。在链上处理汇总数据时,预言机的活动是可见的,不过在链下执行汇总时,就无法直接观察其可用性和正确性。对于链下反馈的正确性方面,ChainLink要求预言机对其响应进行数字签名,而其他节点可以报告有明显错误的行为(举报偏离值过大的节点),报告节点会获得奖励。可用性比较难监控,ChainLink要求预言机对从其他预言机收到的反馈结果进行数字签名的证明,也就是让别人来证明自己的成功率。验证合约会接受这些证明。
其次是声誉系统。声誉系统主要记录历史表现。主要包括:分配的请求总数(完成响应和未完成响应的);已完成的请求总数,可以计算出完成的成功率;被接受的请求总数,通过计算被合约接受的请求总数,然后跟其他节点做比较,并与总完成的请求总数对比,由此得出准确率;平均响应时间:它基于完成的请求来计算;质押金额:被锁定的罚金数额,可以计算节点的犯错成本。为了获得好声誉,节点会正确行事。
最后是认证服务。认证服务主要是为高质量的预言机提供者做信用背书。不过这会被人们误认为是许可节点参与的意思。这种服务在早期为了获得安全存在的一定的必要性。当然长期看,能否找到更合适的方法也值得考虑。认证服务会监控验证系统的数据统计,尤其对高价值交易的响应进行审计,还有链下审计,包括事后审计等。同时,这么做也是考虑了女巫和镜像攻击的可能性。女巫攻击会通过控制预言机池,提供错误数据,影响最终答案。为减少操作成本,女巫攻击者还会采用镜像,这些恶意预言机会在链下共享数据,假装有独立数据源,这样结果是减少了数据源的分散化,降低了安全。长期看,这可以通过使用可信硬件来解决。短期则需要一些认证措施。
ChainLink的价值从何而来
LINK代币是其预言机数据交易市场的支付媒介,同时也是工作权利代币。ChainLink网络使用LINK代币向节点运行者支付费用,以获得节点提供的链下数据流中检索数据的服务、将数据格式化为区块链可读格式、链外计算、以及保证正常运行。用户智能合约为了使用ChainLink预言机节点,它们也需要向其所选的ChainLink节点支付运营费用。
由此可见,LINK的价值来源于ChainLink预言机服务市场的规模。
去中心化预言机市场的潜力
去中心化预言机领域有多大?智能合约承载价值的规模越大,去中心化预言机的需求也就越大。假如Maker、Compound、dydx等DeFi项目的规模达到几十亿上百亿美元时,预言机安全的重要性可想而知,它需要更多的节点参与,更多的数据来源参与,更安全的技术基础(如数据加密和可信硬件等)设施参与,更多预言机安全方案的探索。
对于有数十亿上百亿规模的价值来说,其中几千万美元甚至几亿美元用来保证其安全也是值得的。支付给预言机的服务成本,其本质是安全成本。随着合成资产等衍生品市场的发展,这个市场有可能比现货市场的规模更大,所以,对安全的预言机服务的需求也会越来越大。
结语
预言机是连通加密世界和现实世界的“中间件”。它关系到加密领域的可持续发展,尤其是对DeFi领域来说,其重要性显而易见。
而对预言机来说,最核心的是安全问题。只有解决了安全问题,它才有立身之本。在解决安全问题的方法中,去中心化是达成安全的重要方式。ChainLink提出了一系列的解决方案,包括数据来源的去中心化、预言机的去中心化、可信硬件、对数据的签名,以及安全服务措施(验证、声誉、认证、合约升级)等。它为人们在去中心化预言机领域的探索开启了一条道路。
同时,也有人认为ChainLink的去中心化程度还不够,在安全上还有提升空间。那么,不妨更多的预言机网络进来探索,以提供更多选择。接下来蓝狐笔记如有机会将关注预言机领域的其他选手。也许未来不只有ChainLink,还会有其他预言机网络也会随着智能合约应用的兴起而发展壮大。这个领域不会只有一家选手,随着市场增长,只要能够实现更安全的预言机,机会还有,格局未定。
------
风险警示:蓝狐笔记所有文章都不能作为投资建议或推荐,投资有风险,投资应该考虑个人风险承受能力,建议对项目进行深入考察,慎重做好自己的投资决策。
郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。