在这篇文章中,我们展示了开放的气象数据和区块链技术,结合谷歌云的功能,可以创造经济效益,并通过可持续农业缓解气候变化。
意外的恶劣天气事件导致了各行各业的经济损失,而且随着我们经历气候变化,这些事件变得越来越普遍。这方面的例子包括干旱时作物减产,暴风雪时旅行路线中断,过度降雨时体育赛事取消,以及大面积恶劣天气造成的生存风险和基础设施故障。
虽然我们还没有控制天气的技术,但当事件本身更可预测时,不利天气事件的影响可以被减轻。幸运的是,当有更多的数据可用时,可以做出更准确的预测。谷歌云的公共数据集计划托管了PB级的有用数据集,如历史天气和气候数据,企业可以即时访问,以优化围绕天气风险的分析模型,并创建数据驱动的解决方案。而且这种情况已经在发生;用于天气预报的机器学习算法正被用于创建天气保险等金融产品。
将天气数据直接提供给金融市场是另一个有希望的途径,以减轻与天气有关的损失,并引入了一个改善预测本身的机会,因为拥有更准确的天气模型的做市商将在天气预测资本市场上表现优异。
我之前描述了混合区块链/云应用软件的设计模式,在这篇博文中,我们将特别关注如何通过向新兴的去中心化金融(DeFi)资本市场提供高质量的天气数据来实现这一模式。因为这些市场对所有有互联网连接的参与者开放(无权限),并且可以在定义明确的结构化数据上运行,所以它们提供了一个机会,可以将气象数据驱动的金融产品即时带到市场上,并在全球范围内使用。
然而,随着潜在影响的增加,潜在风险也在增加。随着企业开始将智能合约--区块链网络上的信任最小化的数字协议--纳入其业务流程,驱动这些合约的数据必须是高质量的,并且是安全和可靠的。幸运的是,这些挑战是可以克服的,正如我们将要描述的。
关于数据质量,谷歌云在BigQuery中托管了美国国家海洋和大气管理局(NOAA)的全球地表日总结(GSOD)数据库。简而言之,GSOD提供了来自全球9000多个站点的天气和气候观测的每日总结,这些站点可以追溯到1929年。天气和气候数据来自著名的数据供应商,包括美国国家航空航天局(NASA)和日本宇宙航空研究开发机构(JAXA)的合资企业GPM项目,该项目基于多卫星检索,以三小时的间隔提供全球降水图。
在下一节中,我们将看看如何建立一个解决方案,通过Chainlink(为智能合约生态系统提供300亿美元以上安全保障的区块链甲骨文解决方案),将天气数据从谷歌BigQuery传递到以太坊,这个智能合约平台承载了最大的DeFi市场。然后,作为总结,我们将讨论如何以及为什么这些数据可能最好地应用于发展可持续农业实践。
用Chainlink将谷歌云的天气和气候数据集与智能合约连接起来
基于区块链的智能合约应用为企业提供了关键的优势,它可以减轻对手方的风险,加快结算,并减少签订金融协议的摩擦。有了天气数据(如降雨量)作为输入,智能合约可以进一步实现预测市场,其中参与者可能同意这样的条款。
对于<价格>,如果<地理位置>的<天气测量>在<时间范围>内<大于或小于><数量>,我们将同意在<结算时间>向买方转让<数量>。
这种协议使企业能够对冲温度、风速、降水和其他条件的极端天气波动。这种套期保值影响了特定行业的盈利能力--在某些情况下是可行的。
但 "链上 "智能合约不能原生地访问关于天气的外部 "链下 "输入。这是区块链的一个安全特征,意味着需要一个桥接组件,即区块链神谕,以建立混合区块链/云应用程序。
我与Chainlink的工程师合作,建立了一个适配器,使智能合约能够通过BigQuery查询NOAA GSOD的天气数据。GSOD提供来自9000多个气象站的每日测量数据,包括每个地点的温度、能见度、风速、降水等。
该适配器接受来自Chainlink支持的50多个平台中任何一个平台的智能合约的天气数据请求。它将来自第三方应用程序的链上函数调用翻译成正确的形式,以检索托管在BigQuery的GSOD数据,并返回数据供下游使用。红色勾勒的方框/箭头是我们为这篇博客文章建立的组件。
源代码可在Github上找到,你可以在地址为0x6B705Fc5c425bE07EBe59d09aA9fD2C0Df88CAb4的以太坊Goerli测试网和地址为0x7F7D84789eAfb80A6bA0B996D37A06723FCc02c5的以太坊主网上与GSOD数据互动。
应用程序开发人员可以从特定区域内的气象站或离指定点最近的气象站请求数据。
为了展示我们的解决方案,在Goerli Testnet上生成了以太坊智能合约的链上数据请求交易。这个合约有几个返回天气数据的功能,我们将在这里详细展示它们的一些例子。
虽然这些例子都集中在一个特定的地点(挪威卑尔根),但可以用GeoJSON数据结构或Geohash来指定请求的地点,以获得更大的灵活性。
查询实例1,固定地点。在<开始,结束>时间段内,挪威卑尔根的<平均温度>测量值是多少?
这个请求交易展示了智能合约调用 requestAvgTemp() 函数,使用 Chainlink 节点预先配置的作业请求挪威卑尔根在2021年4月1日至5月1日期间的平均温度。请求者给出的输入日期可以通过点击解码输入数据在Etherscan页面上查看。在链外Chainlink节点收到请求事务中定义的地理坐标、时间跨度、聚集方法、天气类型和单位后,以下输入被提供给该节点的外部适配器。
在被外部适配器接收后,在生成链上响应事务之前,会产生以下5.29ºC的输出,该值被编码为uint256并乘以10^18以支持小数。
在收到这个真实世界的天气数据后,消费智能合约可以利用这些数据来执行特定的应用逻辑。
示例查询2,固定地点。在<开始,结束>的时间段内,挪威卑尔根的<总雨量>测量值是多少?
除了获取挪威卑尔根的日平均温度外,这个链路节点和外部适配器组合还可以用来获取其他天气数据集,如使用预先配置的作业获取挪威卑尔根的总降水量。这个请求交易展示了一个智能合约正在调用 requestTotalRain() 函数,以请求挪威卑尔根在2021年4月1日至5月1日期间的总降雨量,并使用预定义的地理坐标。请求的智能合约给出的唯一输入是数据应该参考的时间框架。在处理这个数据请求时,Chainlink节点的外部适配器被赋予以下输入有效载荷。
在通过Google BigQuery获取链外数据后,Chainlink节点的外部适配器提供了以下结果,表明在给定的时间范围内预定义的地理区域内的雨量毫米数,然后通过链上响应交易交付链上,返回以uint256编码的结果并乘以10^18以提供十进制支持。
查询实例3,固定位置。在<开始,结束>的时间段内,挪威卑尔根的<总风量>是多少?
Chainlink节点提供的第三个工作示例允许智能合约通过调用requestHail()函数来查询在给定的日期范围内,覆盖挪威卑尔根的坐标范围内是否有冰雹。与前一个作业一样,请求的智能合约给出的唯一输入是要查询的时间段,如这个请求事务中所示。没有冰雹的时间段返回0,而任何其他的数值都表示在该范围内的特定天数发生了冰雹。在处理冰雹发生的数据请求时,Chainlink节点的外部适配器被赋予以下输入有效载荷。
在收到给定的有效载荷后,Chainlink节点的外部适配器从BigQuery中获取天气数据,并提供以下输出,展示发生冰雹的天数,然后通过一个响应事务在链上交付。
由于结果大于零,这个结果表明在预定的地理区域内至少有一天发生了冰雹。通过使用这个Chainlink节点,需要外部天气数据的智能合约可以从世界上任何一个或多个气象站所在的地理区域请求数据。
用智能合约为下一代农作物保险提供动力
随着托管在谷歌云上的NOAA天气和气候数据现在可以通过Chainlink直接在链上访问,智能合约开发者可以创建预编程的作物保险协议,根据高质量的真实世界数据自动和可靠地解决索赔问题。
随着此类协议市场的出现,企业获得了对冲风险的能力,无论其规模、管辖范围或位置如何,使他们能够计划并安全地扩大其业务,因为他们知道他们对不利天气事件有充分的保障。这些产品鼓励更可持续的农业,并对土地使用的变化产生稳定的影响,而土地使用的变化是二氧化碳排放的主要因素。
同样,通过建立基于智能合约的协议,承保人和投保人都有更大的保障,即根据准确反映现实世界条件的数据进行理赔,为农作物保险行业引入了前所未有的透明度、可靠性和无许可访问。
此外,由于它们是用公共智能合约构建的,因此可以在全球和微观规模上提供天气保险,而不会出现影响传统保险结算的缺点和低效率,如延迟支付和主观调整。
用混合区块链/云应用重新定义全球产业
智能合约生态系统对高质量链外数据的需求继续快速增长,必须与行业重新定义的工具相匹配,使智能合约开发人员能够建立他们设想的创新应用和用例。随着谷歌云和Chainlink在链上提供的NOAA天气数据,可以创建去中心化和无权限的应用程序,如智能合约作物保险协议,以提供以前无法获得的风险管理产品。
混合区块链/云应用有能力重新定义金融经济,我们非常期待看到由此产生的更多智能合约应用。智能合约农作物保险有可能提高服务质量和执行保障,从而提高金融服务的可及性。我们预计,通过遵循本文内所概述的模式,可以利用Chainlink和GCP上的各种公共数据建立其他一些应用。
我们期待着看到开发者和企业通过结合谷歌云平台和Chainlink oracle中间件创造出创新的智能合约应用。
了解更多
用云数据集和区块链甲骨文对冲恶劣天气》原载于Google Cloud - Communityon Medium,人们在这里通过强调和回应这个故事继续对话。