如何使用 Chainlink 和谷歌云共建區(qū)塊鏈+云端混合型應(yīng)用

來源:知乎
作者:Chainlink
時(shí)間:2020-06-19
3435
谷歌于去年6月宣布將在谷歌云中集成Chainlink服務(wù),使谷歌的BigQuery數(shù)據(jù)能供安全、可靠地傳輸?shù)揭蕴粎^(qū)塊鏈上。本文為Google Cloud開發(fā)者Allan Dan針對(duì)Chainlink和Google Cloud集成之后可能有怎樣的潛在應(yīng)用所做的分析。

谷歌于去年6月宣布將在谷歌云中集成Chainlink服務(wù),使谷歌的BigQuery數(shù)據(jù)能供安全、可靠地傳輸?shù)揭蕴粎^(qū)塊鏈上。以下為Google Cloud開發(fā)者Allan Dan針對(duì)Chainlink和Google Cloud集成之后可能有怎樣的潛在應(yīng)用所做的分析。

將區(qū)塊鏈協(xié)議和技術(shù)與現(xiàn)代互聯(lián)網(wǎng)資源和公共云服務(wù)相結(jié)合,可以大幅提高應(yīng)用速度。把互聯(lián)網(wǎng)端數(shù)據(jù)接入公鏈會(huì)帶來更多的應(yīng)用場(chǎng)景,而使用Chainlink預(yù)言機(jī)就可以將BigQuery數(shù)據(jù)傳到區(qū)塊鏈上,使得這些應(yīng)用場(chǎng)景成為可能。相關(guān)應(yīng)用場(chǎng)景有很多,本文著重分析其中幾種我們認(rèn)為價(jià)值較高并且可以立即投入使用的應(yīng)用場(chǎng)景,它們分別是預(yù)測(cè)市場(chǎng)、期貨合同和交易隱私。

區(qū)塊鏈云端混合型應(yīng)用

區(qū)塊鏈致力于運(yùn)用數(shù)學(xué)方式建立共識(shí)。最初的區(qū)塊鏈出現(xiàn)后,很快就出現(xiàn)了各種創(chuàng)新,實(shí)現(xiàn)了點(diǎn)對(duì)點(diǎn)的協(xié)議,也就是智能合約。計(jì)算機(jī)科學(xué)家Nick Szabo在1997年發(fā)表的一篇文章中首次提到智能合約這個(gè)概念。Colored Coins等項(xiàng)目在比特幣區(qū)塊鏈上首次嘗試了智能合約。

智能合約被嵌入了區(qū)塊鏈的信息源中,在幾個(gè)區(qū)塊后就再也不能被篡改。這就打造了一種信任機(jī)制,讓區(qū)塊鏈的各個(gè)參與者可以放心地投入加密資產(chǎn)而不必?fù)?dān)心交易對(duì)手方風(fēng)險(xiǎn),因?yàn)闊o須第三方參與,智能合約必然會(huì)自動(dòng)執(zhí)行。

但上述嘗試都無法解決一個(gè)根本問題,那就是用于評(píng)估合約的參數(shù)從何而來。如果數(shù)據(jù)不是來自于最近添加的鏈上數(shù)據(jù),那么就需要一個(gè)可信的外部數(shù)據(jù)來源。這個(gè)數(shù)據(jù)來源就叫預(yù)言機(jī)。

在此之前,我們通過Google Cloud公共數(shù)據(jù)集項(xiàng)目(Google Cloud Public Datasets Program)在BigQuery中免費(fèi)開放了八個(gè)區(qū)塊鏈項(xiàng)目的公共數(shù)據(jù),以下簡(jiǎn)稱Google區(qū)塊鏈公共數(shù)據(jù)集。如果想了解更多關(guān)于這些數(shù)據(jù)集的信息,可以訪問GCP市場(chǎng)。此類數(shù)據(jù)集資源讓許多GCP客戶可以基于區(qū)塊鏈數(shù)據(jù)自動(dòng)分析開發(fā)業(yè)務(wù)流程,比如SaaS利潤(rùn)分享,通過標(biāo)注網(wǎng)絡(luò)參與方特征降低服務(wù)濫用風(fēng)險(xiǎn),以及使用靜態(tài)分析技術(shù)偵測(cè)軟件漏洞和惡意軟件。然而,這些應(yīng)用都有一個(gè)共同的特征,那就是他們?nèi)际褂昧藚^(qū)塊鏈公共數(shù)據(jù)集作為數(shù)據(jù)輸入,傳輸至鏈下業(yè)務(wù)流程。

與之相比,通過智能合約執(zhí)行的鏈上業(yè)務(wù)流程如果無法訪問鏈下數(shù)據(jù),則效用會(huì)受限。為了解決這個(gè)問題,并實(shí)現(xiàn)雙向交互,我們不僅需要讓區(qū)塊鏈數(shù)據(jù)與云服務(wù)交互,還要讓云服務(wù)與區(qū)塊鏈上的智能合約交互。

接下來,本文將展示一個(gè)智能合約平臺(tái)(以太坊)如何通過預(yù)言機(jī)中間件(Chainlink)與我們的企業(yè)云數(shù)據(jù)庫(BigQuery)交互。通過這樣的交互,智能合約可以在區(qū)塊鏈上發(fā)送數(shù)據(jù)請(qǐng)求,并從互聯(lián)網(wǎng)端數(shù)據(jù)庫提取相應(yīng)數(shù)據(jù),以此觸發(fā)操作。本文分析的云端+區(qū)塊鏈混合型應(yīng)用模式能讓智能合約高效地配置云端資源,完成復(fù)雜的操作。我們?cè)谥蟮奈恼聲?huì)進(jìn)一步探討該模式的其他應(yīng)用。

運(yùn)作原理

跑在以太坊上的應(yīng)用程序,也就是Dapp,在最高層級(jí)從Chainlink請(qǐng)求數(shù)據(jù),然后從Google應(yīng)用引擎(Google App Engine)和BigQuery端的web服務(wù)提取數(shù)據(jù)。

Dapp會(huì)觸發(fā)Chainlink預(yù)言機(jī)智能合約,從BigQuery提取數(shù)據(jù),合約中包含參數(shù)化數(shù)據(jù)請(qǐng)求的費(fèi)用(比如具體某個(gè)時(shí)間點(diǎn)的gas價(jià)格)。一個(gè)或多個(gè)Chainlink節(jié)點(diǎn)會(huì)看到數(shù)據(jù)請(qǐng)求,最終其中一個(gè)節(jié)點(diǎn)會(huì)處理請(qǐng)求任務(wù)。Chainlink節(jié)點(diǎn)的能力會(huì)通過外部適配器,也就是以服務(wù)為中心的模塊,擴(kuò)展至授權(quán)API、支付網(wǎng)關(guān)以及外部區(qū)塊鏈。通過Chainlink節(jié)點(diǎn)交互,就可以獲取應(yīng)用引擎(App Engine)的web服務(wù)。

我們?cè)贕CP使用應(yīng)用引擎標(biāo)準(zhǔn)環(huán)境實(shí)施了web服務(wù),我們選擇應(yīng)用引擎是因?yàn)樗杀镜土?、可擴(kuò)展性高而且無須部署服務(wù)器。App Engine從BigQuery提取數(shù)據(jù),BigQuery中儲(chǔ)存著區(qū)塊鏈公共數(shù)據(jù)集。我們提供的數(shù)據(jù)是來自于已存數(shù)據(jù),也就是說我們不會(huì)允許從BigQuery隨意請(qǐng)求數(shù)據(jù),而只能請(qǐng)求參數(shù)化數(shù)據(jù),比如應(yīng)用可以針對(duì)以太坊上具體某個(gè)區(qū)塊或具體某個(gè)日期要求平均gas價(jià)格。

Chainlink節(jié)點(diǎn)成功得到web服務(wù)響應(yīng)后,就會(huì)向Chainlink預(yù)言機(jī)合約傳回?cái)?shù)據(jù),之后會(huì)觸發(fā)Dapp合約,隨后觸發(fā)下游具體的Dapp業(yè)務(wù)流程執(zhí)行。詳情請(qǐng)參見下方圖表:

v2-b0ceeb11d18b6078a382644544f0d259_720w.jpg

如果想了解整合Dapp的具體方式,可以參考我們的文檔《了解如何通過Chainlink從BigQuery請(qǐng)求數(shù)據(jù)》。

如何使用BigQuery Chainlink預(yù)言機(jī)

這一部分中,我們將探討如何利用Google Cloud和Chainlink開發(fā)實(shí)用的應(yīng)用。

應(yīng)用場(chǎng)景1:預(yù)測(cè)市場(chǎng)

預(yù)測(cè)市場(chǎng)中的參與者可以通過資產(chǎn)配置對(duì)未來發(fā)生的各種事件進(jìn)行投機(jī)操作。區(qū)塊鏈行業(yè)一個(gè)很有趣的問題是,哪個(gè)智能合約平臺(tái)會(huì)成為主流,因?yàn)榫W(wǎng)絡(luò)生態(tài)系統(tǒng)的價(jià)值將遵循贏者通吃的邏輯。人們對(duì)于哪個(gè)平臺(tái)會(huì)成功以及成功怎么定義持有許多不同的見解。

通過使用區(qū)塊鏈公共數(shù)據(jù)集,就可以在區(qū)塊鏈上處理很復(fù)雜的預(yù)測(cè)(比如最近有人押50萬美元預(yù)測(cè)以太坊的未來走向)。我們?cè)谖臋n中也闡述了如何在具體某個(gè)Dapp上通過提取1天/7天/30天活動(dòng)數(shù)據(jù)測(cè)量Dapp的使用變化、使用量、使用間隔和使用頻率。

這些衡量指標(biāo)包括每日/每周/每月活躍用戶,并經(jīng)常用于web分析和移動(dòng)App分析,是評(píng)估網(wǎng)站和App成功與否的標(biāo)桿。

應(yīng)用場(chǎng)景2:對(duì)沖區(qū)塊鏈平臺(tái)風(fēng)險(xiǎn)

金融行業(yè)成功將現(xiàn)有金融系統(tǒng)復(fù)制到了區(qū)塊鏈環(huán)境中,因此去中心化的金融應(yīng)用也是大勢(shì)所趨。金融行業(yè)轉(zhuǎn)移到區(qū)塊鏈上,從技術(shù)角度來看,會(huì)比傳統(tǒng)金融系統(tǒng)更加值得信任也更加透明。

期貨和期權(quán)等金融合約的存在原本是為了讓企業(yè)能夠降低或?qū)_關(guān)鍵資源相關(guān)的風(fēng)險(xiǎn)。同樣地,如果可以使用平均gas價(jià)格這種鏈上活動(dòng)數(shù)據(jù)創(chuàng)建簡(jiǎn)單的金融工具,就可以對(duì)沖gas價(jià)格波動(dòng)的風(fēng)險(xiǎn)。區(qū)塊鏈網(wǎng)絡(luò)的其他特質(zhì),比如區(qū)塊時(shí)間和/或礦工中心化等,都為Dapp開發(fā)者帶來了一定風(fēng)險(xiǎn),因此也需要做一定對(duì)沖,規(guī)避風(fēng)險(xiǎn)。

通過從區(qū)塊鏈公共數(shù)據(jù)集中提取優(yōu)質(zhì)數(shù)據(jù)輸入到智能合約中,Dapp開發(fā)者可以降低風(fēng)險(xiǎn),并最終帶來更多的創(chuàng)新和區(qū)塊鏈技術(shù)更加廣泛的應(yīng)用。

我們?cè)谙嚓P(guān)文檔中描述了以太坊智能合約如何與BigQuery預(yù)言機(jī)交互,在任意時(shí)間點(diǎn)提取gas價(jià)格數(shù)據(jù)。我們還在智能合約中展示了如何使用預(yù)言機(jī)基于未來gas價(jià)格執(zhí)行質(zhì)押合約,這是Dapp正常運(yùn)行所需的關(guān)鍵數(shù)據(jù)輸入。

應(yīng)用場(chǎng)景3:使用潛艇交易(submarine sends)在整個(gè)以太坊上實(shí)現(xiàn)交易發(fā)布和披露

以太坊最受詬病問題之一就是缺乏交易隱私,導(dǎo)致對(duì)手會(huì)利用鏈上數(shù)據(jù)泄露鉆空子,剝削高頻智能合約用戶的價(jià)值,比如包含去中心化交易所地址的搶跑交易(front running)?!杜沙鰸撍?,擊沉搶跑者》這篇文章里提到提前交易是目前所有去中心化交易所都遇到的問題,而且會(huì)拖慢去中心化金融的步伐,因?yàn)榻灰姿窃S多去中心化金融產(chǎn)品和應(yīng)用的關(guān)鍵環(huán)節(jié)。

通過潛艇交易,智能合約用戶能夠提高交易隱私,并成功避免對(duì)手搶跑,這樣一來去中心化交易所立刻能擁有更大的實(shí)用價(jià)值。雖然這個(gè)方法對(duì)于阻止搶跑等惡性行為特別有效,但如果沒有預(yù)言機(jī)的話,其本身還是具有一定限制。

不使用預(yù)言機(jī)的潛艇交易會(huì)導(dǎo)致區(qū)塊鏈變得臃腫不堪。具體來說,以太坊虛擬機(jī)讓智能合約最多可以看到區(qū)塊鏈上256個(gè)上游區(qū)塊,或大約1小時(shí)內(nèi)產(chǎn)生的全部區(qū)塊。這個(gè)最大可見范圍限制了潛艇交易的實(shí)用性,因?yàn)楫?dāng)需要重新廣播數(shù)據(jù)的時(shí)候會(huì)造成不必要的不規(guī)范問題。相較之下,如果使用了預(yù)言機(jī),就可以拓寬潛艇交易的操作范圍,可以看到鏈上的所有歷史數(shù)據(jù),因此區(qū)塊鏈也不會(huì)變得過于臃腫。

總結(jié)

我們已經(jīng)展示了如何使用Chainlink服務(wù)將BigQuery中的區(qū)塊鏈公共數(shù)據(jù)集傳輸至區(qū)塊鏈上。這個(gè)技術(shù)可以用于提升效率(潛艇交易的案例),在一些情況下為以太坊智能合約建立全新的能力(風(fēng)險(xiǎn)對(duì)沖的案例),并打造全新的區(qū)塊鏈商業(yè)模式(預(yù)測(cè)市場(chǎng)的案例)。

這個(gè)方法的核心是用少量的延遲和交易費(fèi)用換取大量的經(jīng)濟(jì)效用。舉個(gè)具體的例子,普通的潛艇交易所需鏈上儲(chǔ)存的空間復(fù)雜度是O(n),要向鏈上添加新區(qū)塊,但是如果智能合約等到兩個(gè)區(qū)塊后再調(diào)用BigQuery預(yù)言機(jī),那么空間復(fù)雜度就能降低到O(1)。

我們預(yù)期這種交互技術(shù)將讓開發(fā)者能夠?qū)⒅悄芎霞s平臺(tái)和云平臺(tái)的優(yōu)勢(shì)結(jié)合起來開發(fā)混合型應(yīng)用。我們對(duì)結(jié)合Google Cloud平臺(tái)上的機(jī)器學(xué)習(xí)服務(wù)(比如AutoML和Inference API)尤為感興趣。

原文鏈接:點(diǎn)擊前往 >
版權(quán)說明:本文內(nèi)容來自于知乎,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個(gè)人觀點(diǎn),不代表快出海對(duì)觀點(diǎn)贊同或支持。如有侵權(quán),請(qǐng)聯(lián)系管理員(zzx@kchuhai.com)刪除!
個(gè)人VIP
小程序
快出海小程序
公眾號(hào)
快出海公眾號(hào)
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家