一文读懂预言机运算——赋予预言机数据传输和链下计算的双重功能
原文链接:https://blog.chain.link/what-is-oracle-computation-zh/
(复制链接至浏览器打开)
重点摘要:
预言机的功能不仅是单纯将外部数据传输至区块链,还可以为智能合约展开新型的信任最小化链下计算,即“预言机运算”。
预言机运算正好落在中心化的Web 2.0运算和去中心化的区块链运算之间;其性能和功能都优于区块链,而比起Web 2.0系统则多了不可篡改性和透明性。
在预言机层面实现计算功能,将提升智能合约的可扩展性、成本效益以及隐私性,并且为智能合约带来公允排序、可验证随机数、链下聚合以及交易自动化等全新的功能。
Chainlink为预言机赋予了计算功能,包括Chainlink Keepers、Chainlink可验证随机函数(VRF)、链下报告(OCR)以及跨链互操作性协议(CCIP),因此为智能合约应用提供了各种丰富的服务。
区块链预言机最显著的功能就是数据传输,即:从现实世界中获取数据,并传输至区块链,以供链上智能合约应用参考使用。正如Chainlink 1.0白皮书所述,去中心化的预言机网络(DON)是解决“预言机问题”的关键,预言机问题指区块链无法直接接入外部数据源。而DON不仅可以解决这个问题,而且还能保证可靠性和防篡改性。
由于DON可以传输数据,因此生成了上百个不同的Chainlink Price Feeds,为智能合约提供金融市场数据。Chainlink Price Feeds极大推动了去中心化金融(DeFi)的发展,市场价值超过1000亿美元。一些DeFi行业的领先应用集成了Chainlink Price Feeds实现链上功能,其中包括Aave、Compound、Synthetix、Liquiy以及Sushi。
除了为DeFi应用提供市场数据外,Chainlink预言机还支持许多其他的智能合约用例,比如为自动化参数型保险提供天气数据;为预测市场提供体育比赛数据;以及提供储备金证明,以审计通证的抵押储备金(如:验证稳定币是否与美元储备金维持1:1的比率)。然而,Chainlink DON不仅可以传输数据,还可以为智能合约执行链下计算任务,并以特殊的方式来保障信任最小化。
下文中,我们将定义预言机运算,列举Chainlink预言机运算在现实中的用例,并阐述混合型智能合约如何利用Chainlink预言机的数据传输和运算功能,突破区块链和传统Web2.0的计算范畴,实现更加高级的功能。
预言机运算的定义及其特点
运算指通过一组指令并按照一定逻辑实现的任意数学计算,比如一个等式或算法。运算会基于输入的数据输出确定的结果,即:如果满足条件x,则输出结果y。比如,一个最基本的运算就是在五个数字(输入)中取中位数(指令),最终得到结果(输出)。运算可以手动展开,不过如今大多数运算都是数字运算,即:通过代码的形式由计算机执行。数字运算可以是任何规模,小到你手上戴的电子表,大到训练高级机器学习算法的超级计算机,都属于运算的一种。
区块链是一种新型的去中心化运算类型,其管理的分布式账本中包含数字资产和数据。区块链也可以储存并处理最新的智能合约当前“状态”。你可以把状态理解成是应用在区块链账本中建立的一个内部账本,这个内部账本可以按自己的规则(即指令)在两个账户之间转移资产。智能合约的每次状态变更都需要在链上展开某种计算,比如:
验证私钥生成的签名(注:私钥即密码)是否与发起交易的公钥匹配(注:公钥即地址)。
确认公钥地址中的余额超过发送金额和交易费的总和。
基于用户输入的数据执行智能合约,然后基于输出的结果更新合约状态。
在出块过程中生成PoW哈希或PoS证明,在账本中添加一个包含用户交易的新区块。
验算区块中储存的所有交易,以检查网络中其他节点创建的区块。
虽然区块链可以为智能合约执行防篡改的计算,但是它本身也存在一定限制。比如说,高度去中心化的区块链可以保证计算过程具有抗审查性,但代价是交易成本高且速度慢。另一些区块链将交易吞吐量放在第一位,但代价是无法在链上完成更高级的计算任务,比如在端到端保障隐私或交易自动化。
与其让区块链执行所有合约交易,不如将许多计算任务放到链下执行,将最后的计算结果返回至链上。链下计算通常在中心化的Web2.0系统中展开,而这些Web2.0系统并不能保障与区块链同样高的安全性和不可篡改性。如果智能合约不能保证计算的防篡改性、透明性以及去中心化水平,那么区块链最初的价值就荡然无存。因此,如果智能合约为了扩展功能而将关键的计算任务放到链下执行,就要保障这些链下系统与区块链拥有同样的安全性、可靠性以及透明性。而信任最小化的链下计算,即预言机运算,在这里可以发挥无限价值。
预言机运算使用了去中心化的预言机网络(DON),为智能合约执行链下计算,并同时接入区块链实现信任最小化。因此,DON可以执行任何计算任务,并同时保障了可扩展性和隐私性,既实现了与Web2.0同样丰富的功能,又利用了区块链的各种技术和特性提升预言机运算的准确性、防篡改性、运行率和透明性。
预言机运算可以实现信任最小化和丰富的功能
DON通过与区块链建立同步,可以实现信任最小化,即可以保障运算会严格按照预定义逻辑执行。预言机运算使用与区块链类似的去中心化基础架构,实现信任最小化,避免单点故障,并严格遵守用户自定义的链上服务协议。另外,DON还可以使用多方计算、加密证明、防欺诈证明以及链上验算等方式,向区块链证明链下计算结果的真实和有效性。这些验证技术可以创建更多经济激励机制,提升透明性和问责制,比如触发智能合约中的各种加密经济奖惩机制。
除了信任最小化以外,预言机运算的另一个优势是它相比链上计算拥有极高的灵活性。区块链运算是非常标准化的流程,而预言机运算则可以采用任何设计模式,比如灵活调整去中心化水平、选择任意节点、自定义日程安排、预定义加密经济安全水平以及结合各种安全技术等。因此,用户可以根据自身需求、信任假设以及预算来优化预言机运算,在安全和性能之间达成平衡。
为了更好地帮助大家理解预言机运算,下文将详细阐述Chainlink为混合型智能合约已经实现的用例。
Chainlink网络中的预言机运算用例
正如Chainlink 2.0白皮书所述,Chainlink网络的长期发展愿景是通过DON为链上提供外部数据并开展信任最小化的链下计算,以最终提升新老区块链应用的能力。为了实现这个愿景,Chainlink网络已经发布了一系列基于Chainlink预言机运算的服务,其中包括Keepers、可验证随机数、链下报告、外部适配器以及跨链互操作性协议。
Chainlink Keepers
Chainlink Keepers 是一个交易自动化解决方案,当预定义条件满足时会触发区块链展开运算。Chainlink Keepers使用预言机运算来监控链上和链下条件是否满足,比如时间(如:是否过去了24小时?)或事件(如:资产是否达到了某一价格点?)。一旦条件满足,Chainlink Keepers会向链上发送一条交易,唤醒智能合约,并触发合约运行一行预定义的代码。Chainlink Keepers的常见用例包括触发借贷协议清算贷款、触发去中心化交易平台执行限价单、以及结算预测市场。
Chainlink Keepers使用去中心化的节点网络实现信任最小化,在链下执行合约逻辑,然后在链上充分验证结果。Chainlink Keepers还会对其发送至链上的结果进行加密签名,用户可以通过加密签名来追根溯源;采用自动故障切换机制,如果一个节点未能响应,则自动切换至其他节点;并生成calldata确定需要执行哪一部分智能合约逻辑,以最大程度降低gas成本。有了Chainlink Keepers,DevOps团队就无需手动或通过中心化的服务器执行这些计算任务,因此可以大幅提升应用开发体验。
开发团队可以用Chainlink Keepers来开发自动化的智能合约
Chainlink的可验证随机数
Chainlink可验证随机函数(VRF) 是专门为智能合约应用打造的安全可验证的随机数生成器(RNG)解决方案。Chainlink VRF在链下计算随机数以及相应的加密证明,然后在链上进行验证,最后发送至用户智能合约。如果随机数被修改,那么其加密证明也会随之失效。因此用户、预言机或智能合约开发团队都无法操纵随机数。智能合约可以在使用随机数之前充分验证其真实性。
接入Chainlink VRF的常见用例包括:在铸造NFT时公平地分配稀缺属性;为配对游戏玩家和开箱环节引入公正的随机性;在抽奖和无损储蓄游戏中随机选出中奖者。
Chainlink VRF为智能合约提供可验证的随机数
Chainlink的链下报告和外部适配器
Chainlink链下报告(OCR) 是一个预言机网络,提升了Chainlink去中心化预言机网络的链下计算效率。OCR让Chainlink节点可以使用点对点网络,在链下将数据聚合成一份报告,然后采用节点轮转和故障自动切换机制,在一笔交易中将报告发送至链上。OCR利用预言机运算,可以将每次预言机更新的链上gas成本最多降低90%,与此同时,每份预言机报告都包含了每个节点的数据和签名,因此可以充分保障节点的问责性。在下方图示中,OCR预言机报告至包含一笔链上交易,而如果在链上聚合的话则需要发送15笔交易。
Chainlink OCR提高了预言机报告上链的效率
Chainlink OCR可以通过Chainlink外部适配器得到进一步提升。Chainlink外部适配器扩展了Chainlink预言机节点可以访问的数据类型以及可以展开的运算类型。Chainlink外部适配器通常用于将预言机接入受密码保护的API接口。除此之外,还可以用来定义预言机展开运算的方式,并选择优先隐私保护、低延时、或吞吐量等参数。比如,Chainlink节点可以使用外部适配器,执行统计分析、价格指数计算或机器学习等各种高级运算任务。外部适配器还可以将智能合约接入云端或大数据系统中的运算资源。
外部适配器采用面向未来的模块化设计,为开发者提供了一个框架,为智能合约接入任何类型的计算资源,以弥补区块链或Web2.0系统的功能缺口。
Chainlink外部适配器扩展了Chainlink节点可以支持的数据和运算类型
跨链互操作性协议(CCIP)
跨链互操作性协议(CCIP)是一个开源的开发标准,将各个区块链网络连接在一起。CCIP为通证桥和跨链应用的开发提供了底层技术,保障跨链数据、资产和指令传输的安全性。Chainlink节点以OCR 2.0的形式利用预言机运算功能,从一个区块链获取交易,在链下对交易合法性达成共识,并将结果发送至另一个区块链。
CCIP实现的其中一个信任最小化用例就是反欺诈网络。这个去中心化预言机网络中的节点与负责跨链传输资产和指令的节点相互独立。反欺诈网络使用了预言机运算来对CCIP网络进行分析,一旦检测到协议中或接入的区块链中存在问题(如:区块重组),则会立即叫停。值得一提的是,这个反欺诈网络不直接参与资金转账,而是作为第三方,起到制约作用。反欺诈网络和通证桥之间形成权力制衡关系,可以避免任何一方权力过大,最终操控服务。因此,这个机制可以进一步增强信任最小化。
CCIP链接各个区块链网络,并可以开发出安全的通证桥和跨链智能合约
预言机运算助力混合型智能合约
以上这些Chainlink服务展示了信任最小化的预言机运算可以通过与区块链同步,进一步提升智能合约应用的能力。预言机运算不仅可以增强智能合约应用的功能,还可以通过公允排序服务和L2链下执行等基于预言机运算的服务,直接提升底层区块链网络的基础架构。预言机运算非常灵活,因此可以在极大程度上弥补链上运算功能的不足。
预言机运算推动了混合型智能合约的发展(注:混合型智能合约将链上运行的防篡改代码与链下预言机网络提供的去中心化服务结合在一起,以实现更高级的功能。)。事实上,DeFi、游戏和NFT等各个行业中最成功的智能合约应用都是混合型智能合约。比如,DeFi货币市场集成了Chainlink Price Feeds访问外部金融市场喂价,以决定用户的贷款额度,并判定贷款是否需要清算。DeFi货币市场还集成了Chainlink Keepers及时发现贷款抵押率是否低于阈值,并触发清算功能。除了货币市场外,其他类型的应用也连通了链下数据和计算,其中包括算法稳定币、衍生品平台、预测市场、NFT平台以及无损储蓄游戏等。
随着Chainlink 2.0白皮书中阐述的愿景不断落地,预言机运算在智能合约中的作用将等同于如今API在Web 2.0系统中的作用。开发者可以为应用接入不同类型的预言机数据和计算资源,并通过信任最小化技术保障服务的安全性和可靠性。这将极大缩短开发时间,团队不用再花时间开发并维护链下基础架构,而是可以聚焦核心商业模式的开发。最终,预言机的功能将进一步得到拓展,为链上智能合约提供无法在原生区块链上获取的任何数据和计算资源,并同时满足智能合约自身的信任假设、功能需求和预算。
如果你想立刻着手开发混合型智能合约应用,并需要接入链下数据或计算资源,请查看我们的开发者文档,你也可以通过Discord问技术问题或与Chainlink专家安排电话沟通。
想要了解更多,请访问chain.link,订阅Chainlink新闻,并在Twitter、YouTube和Reddit上关注Chainlink。
END
▲获取Chainlink官方最新资讯
Chainlink欢迎优秀小伙伴的加入▼
加入 Chainlink官方渠道▼
Chainlink 官方渠道
微博: https://weibo.com/chainlinkofficial
知乎:https://www.zhihu.com/people/chainlink
中文 Twitter: https://twitter.com/ChainlinkChina
Twitter: https://twitter.com/chainlink
中文爱好者电报群:https://t.me/chainlinkfans
Telegram: https://t.me/chainlinkofficial
Discord: https://discord.gg/aSK4zew
GitHub: https://github.com/smartcontractkit/chainlink
SegmentFault:https://segmentfault.com/u/chainlink
QQ群: 6135525
合作联系: china@smartcontract.com
点击“阅读原文” 进入 Chainlink中文官网