本周四,科技巨頭谷歌云的開發(fā)者在一篇博客文章中表示,使用谷歌軟件的以太坊應(yīng)用構(gòu)建者,將通過使用ChainLink的Oracle智能合約,整合來自區(qū)塊鏈外部來源的數(shù)據(jù)。這就使得預(yù)測市場、期貨合約以及交易隱私等諸多區(qū)塊鏈用例擁有了更大的可能。
谷歌云的高級(jí)開發(fā)者Allen Day寫道,Chainlink可充當(dāng)智能合約與現(xiàn)實(shí)世界數(shù)據(jù)的中間件,讓去中心化應(yīng)用(DApp)無需依賴中心化的oracle獲得鏈下輸入數(shù)據(jù)。
(圖片來自:谷歌云)
通過與現(xiàn)代互聯(lián)網(wǎng)資源和公共云服務(wù)集成,我們可加快區(qū)塊鏈協(xié)議和技術(shù)的采用。在這篇博客文章中,谷歌云描述了一些使互聯(lián)網(wǎng)托管數(shù)據(jù)在不宜篡改的公鏈中可用的應(yīng)用:使用Chainlink Oracle智能合約將BigQuery數(shù)據(jù)放置在鏈上。可能的應(yīng)用數(shù)不勝數(shù),開發(fā)者在文章集中探討了一些他們認(rèn)為具有高度可能和即時(shí)效用的應(yīng)用:預(yù)測市場、期貨合約以及交易隱私。
區(qū)塊鏈專注于通過數(shù)學(xué)的形式創(chuàng)建一個(gè)共享共識(shí),后來便出現(xiàn)了一些想法來擴(kuò)展這種模式,以允許當(dāng)事人之間的協(xié)議(即合約)。1997年,計(jì)算機(jī)科學(xué)家尼克·薩博(Nick Szabo)在一篇文章中首次描述了智能合約的概念。一個(gè)早期的智能合約例子,便是比特幣區(qū)塊鏈上的染色幣(Colored Coin)。
智能合約嵌入到區(qū)塊鏈的真實(shí)性來源中,因此在幾個(gè)區(qū)塊深度之后,它們實(shí)際上是不可變的。這提供了一種機(jī)制,允許參與者將加密經(jīng)濟(jì)資源提交給與交易對(duì)手達(dá)成的協(xié)議,并相信合約條款將自動(dòng)執(zhí)行,如果需要,此過程無需第三方執(zhí)行或仲裁。
但這些都不能解決一個(gè)基本問題:從哪里獲得評(píng)估合約的變量。如果數(shù)據(jù)不是從最近添加的鏈上數(shù)據(jù)派生的,則需要外部數(shù)據(jù)的可信源。這樣的信息源,就被稱為oracle。
在之前的工作中,開發(fā)人員通過谷歌云公共數(shù)據(jù)集計(jì)劃,為8種不同的加密貨幣免費(fèi)提供了BigQuery中的公共區(qū)塊鏈數(shù)據(jù)。在本文中,我們將該工作稱為谷歌的加密公共數(shù)據(jù)集。你可以在 GCP市場 中找到這些數(shù)據(jù)集的更多詳細(xì)信息和示例。該數(shù)據(jù)集資源導(dǎo)致許多GCP客戶基于索引區(qū)塊鏈數(shù)據(jù)的自動(dòng)分析開發(fā)業(yè)務(wù)流程,例如SaaS利潤共享、使用靜態(tài)分析技術(shù)檢測軟件漏洞和惡意軟件等。然而,這些應(yīng)用有一個(gè)共同的屬性:它們都使用加密公共數(shù)據(jù)集作為鏈外業(yè)務(wù)流程的輸入。
相反,作為智能合約實(shí)現(xiàn)的業(yè)務(wù)流程是在鏈上執(zhí)行的,并且在沒有訪問鏈外輸入的情況下,它的效用是有限的。要關(guān)閉循環(huán)并允許雙向互操作,我們不僅需要使區(qū)塊鏈數(shù)據(jù)以編程方式可用于云服務(wù),還需要使云服務(wù)以編程方式實(shí)現(xiàn)與智能合約的鏈上交互。
下面,我們將演示特定的智能合約平臺(tái)(以太坊)如何通過Oracle中間件(ChainLink)與谷歌的企業(yè)云數(shù)據(jù)倉庫(BigQuery)進(jìn)行互操作。此組件組合允許智能合約根據(jù)從鏈上查詢到Internet托管數(shù)據(jù)庫的數(shù)據(jù)執(zhí)行操作。
谷歌云是如何構(gòu)建它的?
從高 level來看,VPS租用,以太坊Dapp(即智能合約應(yīng)用)從ChainLink請求數(shù)據(jù),ChainLink反過來從使用谷歌應(yīng)用引擎和BigQuery構(gòu)建的Web服務(wù)中檢索數(shù)據(jù)。
為了從BigQuery中檢索數(shù)據(jù),Dapp調(diào)用ChainLink Oracle合約,并包括對(duì)要服務(wù)的參數(shù)化請求的付款(例如,在指定時(shí)間點(diǎn)的gas價(jià)格)。一個(gè)或多個(gè)Chainlink節(jié)點(diǎn)正在監(jiān)聽這些調(diào)用,在觀察到這些調(diào)用后,將執(zhí)行請求的作業(yè)。外部適配器是面向服務(wù)的模塊,它將Chainlink節(jié)點(diǎn)的功能擴(kuò)展到經(jīng)過身份驗(yàn)證的API、支付網(wǎng)關(guān)和外部區(qū)塊鏈。在這種情況下,Chainlink節(jié)點(diǎn)與專門構(gòu)建的應(yīng)用引擎Web服務(wù)交互。
在GCP上,開發(fā)者使用應(yīng)用引擎標(biāo)準(zhǔn)環(huán)境實(shí)現(xiàn)了一個(gè)Web服務(wù)。之所以選擇應(yīng)用引擎,是因?yàn)樗牡统杀尽⒏呖蓴U(kuò)展性以及無服務(wù)器部署模型。應(yīng)用引擎從BigQuery中檢索數(shù)據(jù),而后者承載了公共加密貨幣數(shù)據(jù)集。谷歌云提供的數(shù)據(jù)來自封閉查詢,即其不允許從BigQuery請求任意數(shù)據(jù),只允許參數(shù)化查詢的結(jié)果。具體來說,應(yīng)用程序可請求(a)特定以太坊區(qū)塊號(hào)或(b)特定日歷日期的平均gas價(jià)格。
在Web服務(wù)成功響應(yīng)之后,Chainlink節(jié)點(diǎn)使用返回的數(shù)據(jù)調(diào)用Chainlink oracle合約,從而調(diào)用Dapp合約,然后觸發(fā)下游Dapp特定業(yè)務(wù)邏輯的執(zhí)行。過程如下圖所示。
有關(guān)集成Dapp的詳細(xì)信息,請參閱谷歌云通過Chainlink從BigQuery請求數(shù)據(jù)的 文檔 。對(duì)BigQuery的說明性查詢,可以按日期和區(qū)塊編號(hào)查看gas價(jià)格。
如何使用BigQuery Chainlink oracle
在本節(jié)內(nèi)容中,我們將描述如何使用谷歌云和Chainlink構(gòu)建有用的應(yīng)用程序。
用例1:預(yù)測市場