谷歌放大招,使用ChainLink Oracle构建混合云区块链应用
本周四,科技巨头谷歌云的开发者在一篇博客文章中表示,使用谷歌软件的以太坊应用构建者,将通过使用ChainLink的Oracle智能合约,整合来自区块链外部来源的数据。这就使得预测市场、期货合约以及交易隐私等诸多区块链用例拥有了更大的可能。
谷歌云的高级开发者Allen Day写道,Chainlink可充当智能合约与现实世界数据的中间件,让去中心化应用(DApp)无需依赖中心化的oracle获得链下输入数据。
(图片来自:谷歌云)
通过与现代互联网资源和公共云服务集成,我们可加快区块链协议和技术的采用。在这篇博客文章中,谷歌云描述了一些使互联网托管数据在不宜篡改的公链中可用的应用:使用Chainlink Oracle智能合约将BigQuery数据放置在链上。可能的应用数不胜数,开发者在文章集中探讨了一些他们认为具有高度可能和即时效用的应用:预测市场、期货合约以及交易隐私。
混合云区块链应用
区块链专注于通过数学的形式创建一个共享共识,后来便出现了一些想法来扩展这种模式,以允许当事人之间的协议(即合约)。1997年,计算机科学家尼克·萨博(Nick Szabo)在一篇文章中首次描述了智能合约的概念。一个早期的智能合约例子,便是比特币区块链上的染色币(Colored Coin)。
智能合约嵌入到区块链的真实性来源中,因此在几个区块深度之后,它们实际上是不可变的。这提供了一种机制,允许参与者将加密经济资源提交给与交易对手达成的协议,并相信合约条款将自动执行,如果需要,此过程无需第三方执行或仲裁。
但这些都不能解决一个基本问题:从哪里获得评估合约的变量。如果数据不是从最近添加的链上数据派生的,则需要外部数据的可信源。这样的信息源,就被称为oracle。
在之前的工作中,开发人员通过谷歌云公共数据集计划,为8种不同的加密货币免费提供了BigQuery中的公共区块链数据。在本文中,我们将该工作称为谷歌的加密公共数据集。你可以在 GCP市场 中找到这些数据集的更多详细信息和示例。该数据集资源导致许多GCP客户基于索引区块链数据的自动分析开发业务流程,例如SaaS利润共享、使用静态分析技术检测软件漏洞和恶意软件等。然而,这些应用有一个共同的属性:它们都使用加密公共数据集作为链外业务流程的输入。
相反,作为智能合约实现的业务流程是在链上执行的,并且在没有访问链外输入的情况下,它的效用是有限的。要关闭循环并允许双向互操作,我们不仅需要使区块链数据以编程方式可用于云服务,还需要使云服务以编程方式实现与智能合约的链上交互。
下面,我们将演示特定的智能合约平台(以太坊)如何通过Oracle中间件(ChainLink)与谷歌的企业云数据仓库(BigQuery)进行互操作。此组件组合允许智能合约根据从链上查询到Internet托管数据库的数据执行操作。
谷歌云是如何构建它的?
从高 level来看,以太坊Dapp(即智能合约应用)从ChainLink请求数据,ChainLink反过来从使用谷歌应用引擎和BigQuery构建的Web服务中检索数据。
为了从BigQuery中检索数据,Dapp调用ChainLink Oracle合约,并包括对要服务的参数化请求的付款(例如,在指定时间点的gas价格)。一个或多个Chainlink节点正在监听这些调用,在观察到这些调用后,将执行请求的作业。外部适配器是面向服务的模块,它将Chainlink节点的功能扩展到经过身份验证的API、支付网关和外部区块链。在这种情况下,Chainlink节点与专门构建的应用引擎Web服务交互。
在GCP上,开发者使用应用引擎标准环境实现了一个Web服务。之所以选择应用引擎,是因为它的低成本、高可扩展性以及无服务器部署模型。应用引擎从BigQuery中检索数据,而后者承载了公共加密货币数据集。谷歌云提供的数据来自封闭查询,即其不允许从BigQuery请求任意数据,只允许参数化查询的结果。具体来说,应用程序可请求(a)特定以太坊区块号或(b)特定日历日期的平均gas价格。
在Web服务成功响应之后,Chainlink节点使用返回的数据调用Chainlink oracle合约,从而调用Dapp合约,然后触发下游Dapp特定业务逻辑的执行。过程如下图所示。
有关集成Dapp的详细信息,请参阅谷歌云通过Chainlink从BigQuery请求数据的 文档 。对BigQuery的说明性查询,可以按日期和区块编号查看gas价格。
如何使用BigQuery Chainlink oracle
在本节内容中,我们将描述如何使用谷歌云和Chainlink构建有用的应用程序。
用例1:预测市场
中国观察