24

ChainLink、预言机与两个世界的连接

 4 years ago
source link: https://www.jinse.com/blockchain/572799.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

j2yyqy6.jpg!web(晨光照耀原野,梵高)

互联网诞生之后,人们有现实世界,也有了互联网世界。 如今,人们又有了一个新的世界: 加密世界。 这是区块链带给人们的礼物。

在过去二十多年,创新者们不断融合着现实和互联网世界,两者相互融入,难以分开。在比特币诞生后十多年后,加密世界也加快了跟现实世界交互的脚步。从蓝狐笔记的角度,加密世界和现实世界的融合会是未来二十年最重要的发展线之一,可以与人工智能和物联网并驾齐驱。

加密世界vs 现实世界

纯粹的加密世界跟现实世界有不同的运行逻辑。

加密世界运行在链上,通过共识机制、密码学以及分布式节点等来保证其不可篡改性,实现不依赖于第三方的信任。智能合约运行在链上,同样,没人可以修改其代码,也无法干扰其运行,这包括智能合约的创建者。在智能合约中,其执行逻辑是,如果发生了x,那么就会执行y,这里的结果是确定性的。智能合约可以自我验证自我执行,它代表了加密世界的可信赖。

而在现实世界中,很难有全局的确定性共识,充满各种不确定的可能,例如应用是可以被修改、被终止的。在这种情况下,加密世界和现实世界的融合存在挑战。互联网世界可以将现实世界的部分搬到网上,例如将报纸杂志搬到网上,成为新媒体;将各种线下的零售店搬到网上就变成了网店。而加密世界跟现实世界的融合更复杂。

那么,两个世界如何沟通? 有没有可能沟通? 这就是预言机存在的意义。 蓝狐笔记之前介绍了DeFi领域中的交易协议Uniswap(《 一文读懂Uniswap》 和Kyber(《 Kyber的淡出与起势)。 今天蓝狐笔记介绍 DeFi中的预言机领域。

预言机连通加密世界和现实世界

加密世界和现实世界的沟通需要预言机。在蓝狐笔记看来,预言机是连接两个不同世界的“中间件”。

如果加密世界仅仅满足于货币类应用,那么,仅仅通过加密世界内部也可以完成,例如比特币的交易。但,如果想要更丰富的服务,想要满足更多的需求,想要将智能合约的潜力发挥到最大,那么,很有必要为智能合约引入来自现实世界的数据。

有人会问,为什么区块链不直接获取这些数据?无法直接获取。上面也提到过,因为这两个世界的运行逻辑不同。区块链上的数据都是通过共识机制达成的全局共识,而现实世界的数据并非都是共识的结果。两个世界的连通需要可靠的预言机。通过预言机提供可信的数据,转换成为区块链可读可用的数据。

加密世界需要哪些现实世界的数据?从目前发展看,迄今为止,需求最大的是DeFi领域,DeFi中MakerDAO、Compound、Synthetix、dYdX等都需要预言机提供的价格数据流服务。

随着智能合约的发展,会有更多的场景需要链外的数据。例如合成资产智能合约,可能需要来自于纳斯达克、纽交所的价格数据流;房产智能合约,可能需要来房地产市场的数据流;保险智能合约,例如航班延误险需要航班活动的数据流;贸易金融智能合约,可能需要获取GPS相关数据等。此外,随着人工智能和物联网的发展,智能合约对现实世界数据的需求只会越来越大。

除了将现实世界数据引入加密世界,加密世界的数据也可以进入现实世界。例如从链上向链下输出数据,以支付消息的形式被路由到支付网络等。

中心化预言机并不契合区块链

为了满足区块链智能合约对链外数据的需求,有的智能合约采用了或采用过中心化的预言机。中心化的预言机存在什么问题?它中心化的控制方式,容易出现单点失败的故障,一旦出现停机,会带来损失。此外,不管是主观操作,还是客观被黑客攻击,都存在被篡改的可能。即使通过公证、品牌、质押资金等也无法彻底解决潜在安全问题。

在现实中已经发生过此类问题。Synthetix曾在2019年6月遭遇过重大的预言机问题。其Synthetix Oracle,负责给Synthetix智能合约提供外部数据。它在6月25日引入了错误价格数据,该数据报告的KRW(韩元)价格是实际价格的1000多倍。这一错误数据被一个交易机器人利用,该交易机器人所有者借此兑换了3700万的sETH,价值超过10亿美元。最后Synthetix跟该交易机器人的所有者协商解决,在支付一定的漏洞赏金之后,将sETH恢复。也就是说,在这个过程中,Synthetix的中心化预言机错误提供了KRW价格,从而导致悲催后果。

如果中心化预言机容易出问题,那么,为了保证价格等数据不会出错,采用人工输入的方法是不是可行?人工输入的预言机,在预测市场可以看到。对于人工输入方,需要抵押资产,可以防止一定程度的作弊,且通过众包方式,有一定程度分散化。不过,人工输入的方法,成本较高、效率较低、无法即时反馈,不具有可扩展性。

安全是预言机的关键

对预言机来说,中心化或去中心化不是目的,其目的是要实现安全的可靠的数据送达服务。 (从蓝狐笔记的角度,“去中心化”这个词并不是很好的表达,“分散化”或“分布式”是更恰当的描述,因为从目前实践来看,没有真正的去中心化,只是节点更多更分散而已)

智能合约的代码逻辑执行中,一旦发生了X,就会触发Y。这种方式保证了可信赖、透明;但是,如果输入的数据是错误的,那么,也会带来损失。就像上面提到的Synthetix案例一样,由于其输入的韩元价格数据是正常价格的1000多倍,导致产生严重后果。Synthetix是合成资产交易平台,用户通过抵押SNX代币生成合成资产。合成资产可以是BTC、ETH这些加密货币,也可以是特斯拉股票、大宗商品等。不管是加密货币还是股票、黄金,Synthetix的合成资产交易都需要精确的资产价格数据流。一旦价格数据出现问题,后果不堪设想。

同样,MakerDAO协议中用户使用ETH进行抵押,可以生成稳定币Dai,其抵押率在150%以上,假如输入的ETH数据是恶意的,它导致大多数用户资产被清算,且还有14%的罚金。如发生这种极端情况,MakerDAO系统将无法运行下去。同样,Compound、dYdX等DeFi项目也是如此,都需要预言机提供正确的价格数据流,以保证其系统安全。

可以说,预言机是DeFi领域大多数项目的共同问题(Uniswap除外,它无须预言机提供价格数据服务)。如果没有安全的预言机,DeFi大厦就没有稳固的地基,也无法扩展壮大。目前DeFi已经锁定超过6.8亿美元价值的资产,且还在持续发展中,如果预言机出问题,几乎是不可承受之重。

既然中心化预言机有潜在安全问题,那么,如何获得更安全的预言机服务?关于这一点,ChainLink早在2017年就提出来了,不得不说,这在当时是具有远见卓识的,毕竟2017年DeFi还没有发展起来,预言机的需求也不明显。

ChainLink预言机如何连接两个世界

上述可以得出两点:一是,预言机是加密世界和现实世界实现沟通的不可或缺的“中间件”。这决定了其重要地位,会有越来越大的市场规模。二是,预言机安全非常重要,它是很多智能合约,尤其是DeFi大厦的基础构建块,安全是其安身立命之本。

那么,ChainLink是如何来连接加密世界和现实世界的?

numYnie.jpg!web(ChainLink的ETH/USD价格数据流,21个节点提供服务)

1.ChainLink预言机的工作流程

ChainLink预言机的工作流程大致有如下几步:

  • 用户智能合约(USER-SC)从链上发出请求

  • ChainLink智能合约(CHAINLINK-SC)为预言机记录一个事件

  • ChainLink Core接到事件,并路由任务,给到适配器

  • ChainLink适配器向外部API发出请求

  • ChainLink适配器处理响应,并将其返回给Core

  • ChainLink Core将数据报告给ChainLink智能合约(CHAINLINK-SC)

  • ChainLink智能合约汇总响应,加权得出一个最终反馈,并将其发送给用户智能合约

rMnERzn.jpg!web

(来源于ChainLink白皮书)

ChainLink目前以太坊为主构建,未来也会支持其他智能合约平台,例如跟物联网公链IoTeX和分片公链Harmony等都有合作。

为了实现上述工作流程,ChainLink从架构上可以分为两个部分:链上部分和链下部分。

*ChainLink的加密世界部分

ChainLink智能合约响应用户智能合约的数据请求或查询。 它包括三个组成合约: 声誉合约、订单匹配合约以及汇总合约。 其中声誉合约记录的是预言机服务提供者的历史表现; 订单匹配合约通过SLA(Service Level Agreement,服务水平协议)为预言机需求者提供选择,例如价格水平、预言机数量、声誉等,并根据需求确定预言机服务提供者; 汇总合约汇总不同预言机的响应,并加权计算出最终结果。

总的来说,ChainLink链上的工作流有三步:一是,选择预言机;二是,报告数据;三是,汇总得出结果。

用户选择预言机主要是通过指定SLA提案,可以选择查询参数、预言机数量、声誉情况、价格水平等。根据这些,可以进行排序、过滤,最后作出选择。确定SLA提案之后,它会被提交到订单匹配智能合约,满足SLA要求的ChainLink节点选择是否对提案出价。如果预言机服务提供者出价,则会被提交至合约,同时附上质押金,如有不当行为,会被没收。一旦SLA接收到足够多的符合要求的出价,出价窗口关闭,并从这个出价池选择最终的预言机服务者。没被选上的则其押金会被退还。

一旦执行SLA任务的预言机被选定,接下来就是链下的预言机执行协议,并向链上报告数据。当预言机合约收到预言机提交的结果后,这些结果会被反馈到汇总合约。汇总合约计算加权结果,得出最终的反馈答案。加权答案会返回给用户智能合约,从而触发特定功能。同时,每个预言机响应的有效性都会反馈给声誉合约。

当然,这个汇总加权处理方式可以有多种。有的需要在进行汇总前将异常值去掉,比如可以抛弃离散值,比如在计算时,去掉最大和最小的值,并输出剩余值的中位数等。

*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,还会有其他预言机网络也会随着智能合约应用的兴起而发展壮大。这个领域不会只有一家选手,随着市场增长,只要能够实现更安全的预言机,机会还有,格局未定。

------

风险警示: 蓝狐笔记所有文章都 不能作为投资建议或推荐,投资有风险,投资应该考虑个人风险承受能力, 建议对项目进行深入考察,慎重做好自己的投资决策。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK