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

買賣虛擬貨幣
前言:dApp要發展,不僅需要鏈上資料,也需要鏈下的資料。如何利用去中心化的預言機和谷歌雲的資料集來獲取更多的可靠資料?如何來驅動更多的dApp創新?本文作者是Allen Day,由“藍狐筆記”社群的“SIEN”翻譯。透過結合現代網際網路資源和公共雲服務,區塊鏈協議和技術的採用會得到加速。本文將描述一些在不可變的公鏈中提供網際網路託管資料的應用:使用Chainlink預言機智慧合約讓在鏈上置入BigQuery資料成為可能。但本文的重點放在一些有高度的即時效用上:預測市場、期貨市場以及交易隱私。混合雲區塊鏈應用區塊鏈專注於數學努力,以達成共識。很快,在這個模式基礎上擴充套件的想法就出來了,它允許不同方的對等協議,也就是合約。智慧合約的概念於1997年由電腦科學家Nick Szabo首次提出。早期也有將協議寫入區塊的例子,隨著比特幣區塊鏈上的染色幣的努力,逐漸被更多人瞭解。智慧合約嵌入到區塊鏈的真實源中,因此,在幾個區塊高度之後它們是不可篡改的。這提供了一種機制,允許參與者將加密經濟資源提交到協議中,以實現跟對手方的交易,並相信合約條款會被自動執行,且無須透過第三方執行或仲裁。但這些都沒有解決一個根本問題:從哪裡獲取合約評估的變數。如果資料不是從最近新增的鏈上資料來的,則需要可靠的外部資料來源。這樣的資料來源稱為預言機。(藍狐筆記注:就是說,如何獲取觸發合約條款的可靠資料。)
在之前的工作中,我們透過谷歌雲公共資料集計劃,在BigQuery中免費提供公鏈資料。在本文中,我們將這項工作稱作為谷歌的加密公共資料集。你可以在GCP(谷歌雲平臺)市場中找到更多關於資料集的資訊和案例。該資料集資源已經導致不少GCP(谷歌雲平臺)客戶開發基於索引區塊鏈資料的自動分析的業務流程,例如SaaS利潤分享,透過給網路參與者畫像分層來減少服務濫用,以及使用靜態分析技術來檢測軟體漏洞及惡意軟體。然而,這些應用都一個共同的屬性:它們都使用加密公共資料集作為鏈下業務流程的輸入。相反,作為智慧合約實現的業務流程是在鏈上執行的,並且如不能獲取鏈下的資料來源,它的實用性有限。為了實現閉環和允許雙向操作,不僅需要以程式設計方式將區塊鏈資料提供給雲服務,也需要以程式設計方式將雲服務提供給智慧合約。下面將展示特定的智慧合約平臺(以太坊)如何透過預言機中介軟體(Chainlink)與谷歌的企業雲資料倉儲(BigQuery)實現互操作。這種元件的組合允許智慧合約基於資料檢索採取行動,資料檢索包括鏈上查詢到網際網路託管的資料倉儲。我們的案例可以概括為雲/區塊鏈混合應用的模式,其中智慧合約可以有效地委託雲資源來執行復雜的操作。
如何來構建?在較高的層面,以太坊dApp(也就是智慧合約應用)向Chainlink請求資料,而Chainlink從基於谷歌App引擎和BigQuery構建的web服務中檢索資料。為從BigQuery檢索資料,dApp呼叫Chainlink 預言機合約,幷包括對要服務的引數化請求的支付(例如,指定時間點的gas price)。一個或多個Chainlink節點正在監聽這些呼叫,並在觀察時,執行所要求的操作。外部介面卡是面向服務的模組,它能擴充套件Chainlink節點的功能,包括身份驗證API、支付閘道器以及外部區塊鏈等。在這種情況下,Chainlink節點與專用的App引擎網路服務互動。在GCP上,我們用App引擎標準環境實現網路服務。我們選擇App引擎作為其低成本、高可擴充套件性和無伺服器部署模型。App引擎從BigQuery檢索資料,在它上面有加密貨幣的資料集。其所提供的資料是固定查詢,也就是說,不允許向BigQuery請求查詢任意資料,而只允許引數化查詢的結果。具體來說,應用可以請求查詢:特定以太坊區塊編號或者特定日曆日期的平均gas價格。

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

關於整合dApp的細節,可參閱谷歌雲的相關文件,可以透過Chainlink從BigQuery請求資料。可以透過日期和區塊編號檢視gas價格。
如何使用BigQuery Chainlink 預言機本節將闡述如何使用谷歌雲和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)。我們預測這種互操作性技術會引導開發者建立混合應用,這樣可以充分利用智慧合約平臺和雲平臺提供的功能。我們尤其是對谷歌雲平臺的ML服務特別有興趣。
透過允許引用超出鏈上範圍的資料,我們提高了智慧合約平臺的運營效率。在“潛艇傳送”的情況,儲存消耗以區塊高度擴充套件的O(n)減少到O(1),這是透過與預言機合約互動折衷了額外交易延遲的成本。

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;