以太坊與Google雲:如何構建混雜區塊鏈/雲的利用?

尋夢新聞LINE@每日推播熱門推薦文章,趣聞不漏接❤️

加入LINE好友

文章目錄[ 隱藏 ]

  • 混合雲區塊鏈應用
  • 如何來構建?
  • 如何使用BigQuery Chainlink 預言機
  • 結論

摘要:在較高的層面,以太坊dApp(也就是智能合約應用)向Chainlink請求數據,而Chainlink從基於GoogleApp引擎和BigQuery構建的web服務中檢索數據。為從BigQuery檢索數據,dApp調用Chainlink 預言機合約,並包括對要服務的參數化請求的支付(例如,指定時間點的gas price)。

編者按:本文來自藍狐筆記(ID:lanhubiji),原文作者:Allen Day,翻譯:SIEN,Odaily星球日報經授權轉載。

前言:dApp要發展,不僅需要鏈上數據,也需要鏈下的數據。如何利用去中心化的預言機和Google雲的數據集來獲取更多的可靠數據?如何來驅動更多的dApp創新?

以太坊與Google雲:如何構建混雜區塊鏈/雲的利用? 科技 第1張

通過結合現代互聯網資源和公共雲服務,區塊鏈協議和技術的採用會得到加速。本文將描述一些在不可變的公鏈中提供互聯網托管數據的應用:使用Chainlink預言機智能合約讓在鏈上置入BigQuery數據成為可能。但本文的重點放在一些有高度的即時效用上:預測市場、期貨市場以及交易隱私。

混合雲區塊鏈應用

區塊鏈專注於數學努力,以達成共識。很快,在這個模式基礎上擴展的想法就出來了,它允許不同方的對等協議,也就是合約。智能合約的概念於1997年由計算機科學家Nick Szabo首次提出。早期也有將協議寫入區塊的例子,隨著比特幣區塊鏈上的染色幣的努力,逐漸被更多人了解。

智能合約嵌入到區塊鏈的真實源中,因此,在幾個區塊高度之後它們是不可篡改的。這提供了一種機制,允許參與者將加密經濟資源提交到協議中,以做到跟對手方的交易,並相信合約條款會被自動執行,且無須通過第三方執行或仲裁。

但這些都沒有解決一個根本問題:從哪里獲取合約評估的變量。如果數據不是從最近添加的鏈上數據來的,則需要可靠的外部數據源。這樣的數據源稱為預言機。(藍狐筆記註:就是說,如何獲取觸發合約條款的可靠數據。)

在之前的工作中,我們通過Google雲公共數據集計劃,在BigQuery中免費提供公鏈數據。在本文中,我們將這項工作稱作為Google的加密公共數據集。你可以在GCP(Google雲平台)市場中找到更多關於數據集的信息和案例。

該數據集資源已經導致不少GCP(Google雲平台)客戶開發基於索引區塊鏈數據的自動分析的業務流程,例如SaaS利潤分享,通過給網路參與者畫像分層來減少服務濫用,以及使用靜態分析技術來檢測軟件漏洞及惡意軟件。

然而,這些應用都一個共同的屬性:它們都使用加密公共數據集作為鏈下業務流程的輸入。

相反,作為智能合約做到的業務流程是在鏈上執行的,並且如不能獲取鏈下的數據來源,它的實用性有限。為了做到閉環和允許雙向操作,不僅需要以編程方式將區塊鏈數據提供給雲服務,也需要以編程方式將雲服務提供給智能合約。

下面將展示特定的智能合約平台(以太坊)如何通過預言機中間件(Chainlink)與Google的企業雲數據倉庫(BigQuery)做到互操作。

這種組件的組合允許智能合約基於數據檢索採取行動,數據檢索包括鏈上查詢到互聯網托管的數據倉庫。我們的案例可以概括為雲/區塊鏈混合應用的模式,其中智能合約可以有效地委托雲資源來執行複雜的操作。

如何來構建?

在較高的層面,以太坊dApp(也就是智能合約應用)向Chainlink請求數據,而Chainlink從基於GoogleApp引擎和BigQuery構建的web服務中檢索數據。

為從BigQuery檢索數據,dApp調用Chainlink 預言機合約,並包括對要服務的參數化請求的支付(例如,指定時間點的gas price)。一個或多個Chainlink節點正在監聽這些調用,並在觀察時,執行所要求的操作。外部適配器是面向服務的模塊,它能擴展Chainlink節點的功能,包括身份驗證API、支付網關以及外部區塊鏈等。在這種情況下,Chainlink節點與專用的App引擎網路服務交互。

在GCP上,我們用App引擎標準環境做到網路服務。我們選擇App引擎作為其低成本、高可擴展性和無服務器部署模型。App引擎從BigQuery檢索數據,在它上面有加密貨幣的數據集。其所提供的數據是固定查詢,也就是說,不允許向BigQuery請求查詢任意數據,而只允許參數化查詢的結果。具體來說,應用可以請求查詢:特定以太坊區塊編號或者特定日曆日期的平均gas價格。

在網路服務成功響應之後,Chainlink節點使用返回的數據調用Chainlink預言機合約,而後者調用dApp合約,從而觸發下遊dApp特定業務邏輯的執行。這在下圖中有描述。

以太坊與Google雲:如何構建混雜區塊鏈/雲的利用? 科技 第2張

關於集成dApp的細節,可參閱Google雲的相關文檔,可以通過Chainlink從BigQuery請求數據。可以通過日期和區塊編號查看gas價格。

如何使用BigQuery Chainlink 預言機

本節將闡述如何使用Google雲和Chainlink構建有用的應用。

用例1:預測市場

預測市場的參與者分配資金來預測未來事件。這個讓人感興趣的領域基本上由智能合約平台主導,因為作為網路生態系統,它們的價值將遵循冪律法則,也就是贏家通吃。關於哪個平台會成功,如何量化成功,大家意見不一。

通過使用加密公共數據集,甚至可以進行複雜的預測,例如最近關於以太坊未來狀態的50萬美元的押註可以在鏈上成功解決。通過檢索某個dApp1天、7天以及30天的活動,可以測量dApp利用率的種類、數量、新進度和頻率,這些都可以記錄下來。

這些指標稱為每日、每周、每月活躍用戶,並且經常被網路分析和移動應用分析專業人員用於評估網站和應用的成功程度。

用例2:針對區塊鏈平台風險進行套期保值

去中心化金融快速獲得了採用,這是由於它用區塊鏈環境對現有金融系統的成功改造,在技術層面,區塊鏈環境比現有系統更值得信賴和更加透明。

像期貨和期權等金融合約最初是為了減少/對沖其至關重要的經營資源相關的風險。同樣,關於鏈上活動的數據,比如平均gas價格,這些數據可用於創建簡單的金融工具,當gas價格太高時,為持有者提供支付。

區塊鏈網路的其他特性,例如區塊時間/礦工中心化,創造dApp開發者想避免的風險。通過將加密公共數據集的高質量數據提供給金融智能合約,可以降低dApp開發者的風險敞口。最終結果是更多的創新和加速區塊鏈採用。

我們記錄了以太坊智能合約如何與BigQuery預言機互動,以檢索某一個特定時間的gas價格數據。我們還實施了智能合約選項的存根,顯示了如何使用預言機來實施未來gas價格的抵押合約,這是dApp運作的關鍵輸入。

用例3:使用「潛艇發送」在以太坊中支持提交/顯示

以太坊自身常見的一個限制是缺乏隱私交易,這可以讓對手利用鏈上數據泄漏,來利用常用智能合約的用戶。這可以採取涉及DEX地址的搶先交易形式,如To Sink Frontrunners所述,在「潛艇發送」中,由於交易是很多DeFi產品/應用的關鍵組成部分,因此,搶先交易的問題困擾了所有當前的DEX並延緩了DeFi的進展。

通過使用「潛艇」發送的方法,智能合約用戶可以增加其交易的隱私,成功避免想要搶先交易的它們的對手,使得DEX更加直接有用。通過這種方法,可以阻止搶先交易等惡意行為,但它也有局限性,如果它沒有預言機幫忙的話。

在沒有預言機的情況下,執行「潛艇發送」會導致區塊鏈的膨脹。具體來說,以太坊虛擬機允許合約在鏈中上溯到最多256個區塊,或大約1個小時。這個最大範圍限制了「潛艇發送」的實際用途,因為當它需要重新廣播數據時會產生不必要的非規範化。相反,通過使用預言機做到「潛艇發送」,消除了區塊膨脹,因為操作範圍增加,以包括所有歷史的鏈數據。

結論

我們已經演示了如何使用Chainlink服務從BigQuery加密公共數據集提供鏈上數據。這種技術可用於減少低效率(如潛艇發送的用例),並在某些情況下添加全新功能(如對沖風險的用例)到以太坊智能合約,做到新的鏈上商業模式(如預測市場用例)。

我們的方法的本質是平衡少量的延遲和交易開銷,以獲得潛在的大量經濟效用。作為具體的例子,普通的「潛艇發送」需要鏈上存儲,該存儲用添加到區塊鏈的區塊來擴展O(n),但如果調用合約等待額外的兩個區塊來調用BigQuery預言機,則可以減少到O(1)。

我們預測這種互操作性技術會引導開發者創建混合應用,這樣可以充分利用智能合約平台和雲平台提供的功能。我們尤其是對Google雲平台的ML服務特別有興趣。

通過允許引用超出鏈上範圍的數據,我們提高了智能合約平台的經營效率。在「潛艇發送」的情況,存儲消耗以區塊高度擴展的O(n)減少到O(1),這是通過與預言機合約互動折衷了額外交易延遲的成本。

>以太坊與Google雲:如何構建混合區塊鏈/雲的應用?

About 尋夢園
尋夢園是台灣最大的聊天室及交友社群網站。 致力於發展能夠讓會員們彼此互動、盡情分享自我的平台。 擁有數百間不同的聊天室 ,讓您隨時隨地都能找到志同道合的好友!