本周四,科技巨頭谷歌云的開發(fā)者在一篇博客文章中表示,使用谷歌軟件的以太坊應(yīng)用構(gòu)建者,將通過使用ChainLink的Oracle智能合約,整合來自
本周四,科技巨頭谷歌云的開發(fā)者在一篇博客文章中表示,使用谷歌軟件的以太坊應(yīng)用構(gòu)建者,將通過使用ChainLink的Oracle智能合約,整合來自區(qū)塊鏈外部來源的數(shù)據(jù)。這就使得預(yù)測市場、期貨合約以及交易隱私等諸多區(qū)塊鏈用例擁有了更大的可能。
谷歌云的高級開發(fā)者Allen Day寫道,Chainlink可充當(dāng)智能合約與現(xiàn)實世界數(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)為具有高度可能和即時效用的應(yīng)用:預(yù)測市場、期貨合約以及交易隱私。
混合云區(qū)塊鏈應(yīng)用
區(qū)塊鏈專注于通過數(shù)學(xué)的形式創(chuàng)建一個共享共識,后來便出現(xiàn)了一些想法來擴展這種模式,以允許當(dāng)事人之間的協(xié)議(即合約)。1997年,計算機科學(xué)家尼克·薩博(Nick Szabo)在一篇文章中首次描述了智能合約的概念。一個早期的智能合約例子,便是比特幣區(qū)塊鏈上的染色幣(Colored Coin)。
智能合約嵌入到區(qū)塊鏈的真實性來源中,因此在幾個區(qū)塊深度之后,它們實際上是不可變的。這提供了一種機制,允許參與者將加密經(jīng)濟資源提交給與交易對手達成的協(xié)議,并相信合約條款將自動執(zhí)行,如果需要,此過程無需第三方執(zhí)行或仲裁。
但這些都不能解決一個基本問題:從哪里獲得評估合約的變量。如果數(shù)據(jù)不是從最近添加的鏈上數(shù)據(jù)派生的,則需要外部數(shù)據(jù)的可信源。這樣的信息源,就被稱為oracle。
在之前的工作中,開發(fā)人員通過谷歌云公共數(shù)據(jù)集計劃,為8種不同的加密貨幣免費提供了BigQuery中的公共區(qū)塊鏈數(shù)據(jù)。在本文中,我們將該工作稱為谷歌的加密公共數(shù)據(jù)集。你可以在GCP市場中找到這些數(shù)據(jù)集的更多詳細(xì)信息和示例。該數(shù)據(jù)集資源導(dǎo)致許多GCP客戶基于索引區(qū)塊鏈數(shù)據(jù)的自動分析開發(fā)業(yè)務(wù)流程,例如SaaS利潤共享、使用靜態(tài)分析技術(shù)檢測軟件漏洞和惡意軟件等。然而,這些應(yīng)用有一個共同的屬性:它們都使用加密公共數(shù)據(jù)集作為鏈外業(yè)務(wù)流程的輸入。
相反,作為智能合約實現(xiàn)的業(yè)務(wù)流程是在鏈上執(zhí)行的,并且在沒有訪問鏈外輸入的情況下,它的效用是有限的。要關(guān)閉循環(huán)并允許雙向互操作,我們不僅需要使區(qū)塊鏈數(shù)據(jù)以編程方式可用于云服務(wù),還需要使云服務(wù)以編程方式實現(xiàn)與智能合約的鏈上交互。
下面,我們將演示特定的智能合約平臺(以太坊)如何通過Oracle中間件(ChainLink)與谷歌的企業(yè)云數(shù)據(jù)倉庫(BigQuery)進行互操作。此組件組合允許智能合約根據(jù)從鏈上查詢到Internet托管數(shù)據(jù)庫的數(shù)據(jù)執(zhí)行操作。
谷歌云是如何構(gòu)建它的?
從高 level來看,以太坊Dapp(即智能合約應(yīng)用)從ChainLink請求數(shù)據(jù),ChainLink反過來從使用谷歌應(yīng)用引擎和BigQuery構(gòu)建的Web服務(wù)中檢索數(shù)據(jù)。
為了從BigQuery中檢索數(shù)據(jù),Dapp調(diào)用ChainLink Oracle合約,并包括服務(wù)參數(shù)化請求的付款(例如,在指定時間點的gas價格)。一個或多個Chainlink節(jié)點正在監(jiān)聽這些調(diào)用,在觀察到這些調(diào)用后,將執(zhí)行請求的作業(yè)。外部適配器是面向服務(wù)的模塊,它將Chainlink節(jié)點的功能擴展到經(jīng)過身份驗證的API、支付網(wǎng)關(guān)和外部區(qū)塊鏈。在這種情況下,Chainlink節(jié)點與專門構(gòu)建的應(yīng)用引擎Web服務(wù)交互。
在GCP上,開發(fā)者使用應(yīng)用引擎標(biāo)準(zhǔn)環(huán)境實現(xiàn)了一個Web服務(wù)。之所以選擇應(yīng)用引擎,是因為它的低成本、高可擴展性以及無服務(wù)器部署模型。應(yīng)用引擎從BigQuery中檢索數(shù)據(jù),而后者承載了公共加密貨幣數(shù)據(jù)集。谷歌云提供的數(shù)據(jù)來自封閉查詢,即其不允許從BigQuery請求任意數(shù)據(jù),只允許參數(shù)化查詢的結(jié)果。具體來說,應(yīng)用程序可請求(a)特定以太坊區(qū)塊號或(b)特定日歷日期的平均gas價格。
在Web服務(wù)成功響應(yīng)之后,Chainlink節(jié)點使用返回的數(shù)據(jù)調(diào)用Chainlink oracle合約,從而調(diào)用Dapp合約,然后觸發(fā)下游Dapp特定業(yè)務(wù)邏輯的執(zhí)行。過程如下圖所示。
有關(guān)集成Dapp的詳細(xì)信息,請參閱谷歌云通過Chainlink從BigQuery請求數(shù)據(jù)的文檔。對BigQuery的說明性查詢,可以按日期和區(qū)塊編號查看gas價格。
如何使用BigQuery Chainlink oracle
在本節(jié)內(nèi)容中,我們將描述如何使用谷歌云和Chainlink構(gòu)建有用的應(yīng)用程序。
用例1:預(yù)測市場
預(yù)測市場的參與者一般會分配資本來推測未來的事件。舉一個備受關(guān)注的領(lǐng)域:哪個智能合約平臺將占據(jù)主導(dǎo)地位?因為作為網(wǎng)絡(luò)生態(tài)系統(tǒng),平臺的價值將遵循冪律(即贏家通吃)分配。關(guān)于哪個平臺會成功,以及如何量化成功,市場上存在著很多不同的看法。
通過使用加密公共數(shù)據(jù)集,即使是最復(fù)雜的預(yù)測也有可能成功地在鏈上解決,比如最近對以太坊未來狀態(tài)的50萬美元賭注。谷歌云還記錄了如何通過檢索特定Dapp的1天、7天和30天的活動,來測量Dapp利用率的變化、數(shù)量、近況以及頻率。
這些指標(biāo)被稱為每日、每周和每月的活躍用戶,Web分析和移動應(yīng)用程序分析專業(yè)人員,經(jīng)常使用這些指標(biāo)來評估應(yīng)用的成功。
用例2:針對區(qū)塊鏈平臺風(fēng)險的對沖
去中心化金融運動,由于成功地在區(qū)塊鏈環(huán)境中對現(xiàn)有金融系統(tǒng)進行革新而迅速得到采用,在技術(shù)層面上,這些系統(tǒng)比當(dāng)前系統(tǒng)更值得信賴且更透明。
像期貨和期權(quán)這樣的金融合約,最初是為了使企業(yè)能夠降低/對沖與其運營關(guān)鍵資源相關(guān)的風(fēng)險。同樣,有關(guān)鏈上活動(如平均gas價格)的數(shù)據(jù),可用于創(chuàng)建簡單的金融工具,在gas價格上漲過高的情況下向其持有人提供支付。區(qū)塊鏈網(wǎng)絡(luò)的其他特性,例如區(qū)塊時間和/或礦工集中會導(dǎo)致風(fēng)險的產(chǎn)生,這些風(fēng)險是Dapp開發(fā)者想要避免的。通過將加密公共數(shù)據(jù)集的高質(zhì)量數(shù)據(jù)引入金融智能合約,Dapp開發(fā)者的風(fēng)險敞口可以降低。最終結(jié)果便是帶來更多的創(chuàng)新,并加快區(qū)塊鏈的應(yīng)用。
用例3:使用submarine發(fā)送,實現(xiàn)以太坊交易隱私
以太坊本身的一個常見限制是缺乏交易隱私,這使得對手能夠利用鏈上數(shù)據(jù)泄漏來利用智能合約用戶。
通過使用“submarine發(fā)送”方法,智能合約用戶可以增加交易的隱私,成功地避免了那些想先發(fā)制人的對手,使DEX更為迅速地發(fā)揮作用。盡管這種方法在阻止像front-running這樣的惡意行為方面特別有用,但如果不使用Oracle,它也有其自身的限制。
在沒有oracle 的情況下實現(xiàn)submarine發(fā)送,會產(chǎn)生區(qū)塊鏈膨脹。具體來說,以太坊虛擬機允許合約在鏈上游最多看到256個區(qū)塊(或大約一小時)。這一最大范圍限制了submarine發(fā)送的實際用途,因為當(dāng)需要重新廣播數(shù)據(jù)時,它會造成不必要的非規(guī)范化。相比之下,通過使用Oracle實現(xiàn)submarine發(fā)送,可消除區(qū)塊鏈膨脹。
結(jié)論
谷歌云已演示了如何使用Chainlink服務(wù)來提供來自鏈上BigQuery加密公共數(shù)據(jù)集的數(shù)據(jù)。該技術(shù)可用于為以太坊智能合約減少低效的情況(submarine發(fā)送情況),在某些情況下,還可以為合約添加全新的功能(對沖用例),使新的鏈上業(yè)務(wù)模式成為可能(預(yù)測市場用例)。
谷歌云的方法,本質(zhì)上是使用少量的延遲和事務(wù)開銷換取潛在的大量經(jīng)濟效用。
谷歌云預(yù)計,這種互操作性技術(shù),將引導(dǎo)開發(fā)人員創(chuàng)建混合應(yīng)用程序,充分利用智能合約平臺和云平臺所提供的功能。此外,谷歌云特別有興趣推出谷歌云平臺的ML服務(wù)(例如AutoML和Inference API)。(作者:Allen Day)
關(guān)鍵詞: 谷歌云 ChainLink Oracle智能合約