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