如何實現真正的去中心化預言機?

買賣虛擬貨幣

前言:預言機是整個加密世界非常重要的一環。不過,當前的去中心化預言機還無法達到領先公鏈級別的安全和去中心化。而需要預言機服務的智慧合約安全會依賴於最薄弱的環節,如果預言機方面透過選擇高質量認證節點運營商,透過懲罰方式,透過聲譽指數等方式來確保安全,也許在短期和中期內有利於引匯出網路,並提供一定程度的安全,但也存在一個很大的安全隱患:如何防止這些已知節點的合謀。如果想要達成真正的去中心化預言機,最重要的是構建達到公鏈級別的安全,而隨機選擇節點是其中的一種重要方法。它本質上也是一種共識機制的設計。本文作者是Zak Ayesh,由“藍狐筆記”社群的“MoQi”翻譯。

本文提出一個附加安全層的想法,可被整合到諸如Chainlink這樣的預言機中,以供智慧合約使用:隨機選擇節點運營商。

當前Chainlink的安全設計

Chainlink試圖解決加密領域的重大問題:預言機問題。Chainlink白皮書中,我最喜歡的描述之一是其團隊開發協議的縱深防禦方法。該計劃允許智慧合約開發者可以調整下列的安全變數,也稱為“服務級別協議(SLA)”,以適應各自不同的合約情況:

  • 自由選擇所需的節點運營商數量

  • 使用鏈上驗證合約來確定高質量的節點

  • 使用鏈上和鏈下聲譽指標來確定高質量的節點

  • 要求使用可信執行環境(TEE)

  • 要求節點運營商持有一定數量的抵押資產

  • 對惡意節點的抵押資產進行懲罰的嚴重程度

  • 獎勵給行為良好節點的金額

  • 如何聚合節點響應(這也控制瞭如何獎勵或懲罰節點的確切條件)

  • 使用Chainlink自己的可信和經過審查的節點運營商,以抵抗女巫攻擊

  • 底層區塊鏈的選擇。Chainlink是一種協議,可以移植到最安全的智慧合約區塊鏈。

那麼,舉個例子。假設我是一個開發團隊的成員,該團隊擁有一個有數萬億美元流動的智慧合約。我可以要求300個在驗證和聲譽合約/服務上擁有最高分數的認證節點運營商,只選擇那些在可信執行環境(TEE)中執行節點的運營商,要求每個節點至少抵押了100萬美元的Link代幣,懲罰所有偏離平均響應兩個標準差的節點運營商,並慷慨獎勵所有兩個標準差以內的節點運營商。

這樣的行為有很高的安全性。可能會過猶不及,我上述提到的假設也可能無法實現。但這是Chainlink協議的精妙之處。它允許智慧合約開發者以及社羣來決定為某個特定的智慧合約在預言機中提供多大程度的安全性。智慧合約的安全取決於其最薄弱的環節,Chainlink的CEO Sergey曾表示其目標是讓預言機跟執行智慧合約的區塊鏈一樣安全和去中心化。但是,在所有這些防禦層中缺少實現這一目標的關鍵安全特徵:隨機節點運營商的選擇。

隨機節點運營商和抗合謀

讓我們簡單看下以太坊的共識演算法,以太坊是當前執行Chainlink的區塊鏈。以太坊當前執行在PoW共識演算法上,有計劃切換到PoS。在PoW中,任何人都可以成為礦工,以建立和驗證區塊,其方式是透過設定挖礦節點,加入網路,並尋找正確的隨機數以挖出區塊。

儘管這建立了任何人都可以參與的無須許可的網路,但它同時也建立了一個更加抗合謀網路。(藍狐筆記:抗合謀是指不易串通)

這種抗合謀性來自於這樣的事實:區塊生產者並非由中心機構或人選擇的,而是根據它們所貢獻的雜湊算力比例隨機選擇出來的。沒有實體可以確定地知道哪個節點會提議下一個區塊。

然後提議的區塊由執行全節點的整個網路檢查,攻擊者可以透過合謀來啟動區塊鏈篡改的唯一方法是,合謀的群體是否擁有超過23%的雜湊率。如果要造成任何實質性的損害,通常認為必須要控制超過50%的雜湊率。將它跟EOS的DPoS共識演算法進行比較,它透過社羣投票來選定有限的驗證者,也就是21個代表節點,它因此也遭受可能的腐敗及合謀的指責。

我的想法?只要智慧合約開發者在選擇特定的節點運營商,它們就無法達到跟領先公鏈相同的抗合謀級別。一群已知的節點運營商遠比從一個池中隨機選擇的節點運營商更容易實現合謀。即使使用像SGX這樣的可信執行環境(TEE),你實際上也要在組合中新增一個可信運營者,例如Intel(藍狐筆記:此處是指除了要相信已知的節點運營商之外,還要相信硬體廠商)。

在這裡,我的意思不是說Intel會有意地設計帶有後門的SGX,也不是說所有合約都需要達到以太坊底層鏈級別的安全,但有些合約確實需要這種級別的安全。如果我們想要達成這一目標,Chainlink需要增加另外的安全性,基於staking上的安全的隨機信標。

解決方案:以太坊2.0信標鏈+Staking

對於緩解Chainlink中節點運營商可能的合謀問題,我的建議是允許智慧合約開發者使用安全的隨機信標從無須許可的節點運營商池中隨機選擇節點。真正安全的隨機信標在區塊鏈中很難達成,但很幸運,以太坊已經有提議要實現安全的通用隨機信標,即以太坊2.0信標鏈。

說以太坊中的信標鏈會產生不可預測和沒有偏見的隨機性,它基於這樣的假設:至少有一個驗證者是誠實的,並且不存在VDF ASIC硬體的速度快於商品VDF ASIC硬體速度很多倍的情況。實際上,你會看到我的建議實質上是使用一個非常類似於以太坊2.0的權益證明工作原理的系統。

讓我們假設有特定的資料流在很多不同的智慧合約中都有非常高的需求,例如,讓我們假設其中的一個資料流就是ETH/USD價格流。任何人都可以為這個資料流啟動節點,並加入網路。但是,不是加入和等待一個智慧合約開發者來選擇你,而是你加入節點運營商的池子,在這個池中的所有節點都給智慧合約提供相同的資料流。

以太坊隨機性信標被觸發,並且當它觸發時,節點運營商的新委員會被選擇出來,委員會規模由需要預言機服務的智慧合約的SLA決定。(藍狐筆記:SLA是指服務級別協議)其中,某個特定節點被選進委員會的概率將與其在池中質押的Link代幣數量比例成正比。這些節點將提供資料流,資料會被彙總,並將根據使用服務的智慧合約的定義來進行獎勵或懲罰。

這可以疊在所有當前計劃的安全功能之上。

或許智慧合約開發者可以基於鏈上聲譽指標部分影響節點被選中的概率;質量聲譽越高,被選中的可能性越大。智慧合約可以獎勵使用SGX的節點,或者它可用於當前中心化認證服務,其中你至少知道誰是池中的一些較大的節點。

當然,這需要足夠大的節點運營商池,才能從根本上消除池中已認證節點之外的女巫攻擊威脅。在以太坊中,估計有數以萬計的節點,這很容易假定這些節點中的大多數並非由少數幾個假裝很多的運營商所控制。

結論

我不是第一個想出這個主意的人,有幾個即將到來的預言機網路也發現節點選擇缺乏隨機性,並提出了自己的解決方案(通常它們有自己的PoW鏈,對此我也有所保留)。其中的案例包括Witnet和Tellor。還有其他解決方案,例如可能的去中心化身份協議。這是一個非常基本的建議,距離詳細的規範和設計相距甚遠。

還可以從以太坊的PoS設計中吸取營養,例如鎖定期間或對同時離線的節點處以更大的懲罰。本文的目的更多是對拋磚引玉,希望Chainlink和社羣採取行動。從長遠看,我們必須最小化對第三方的信任,以及最大限度地減少預言機中出現的合謀威脅。

總體來說,我認為Chainlink當前的計劃和發展是出色的。使用認證服務用於抵抗女巫攻擊,同時結合所有上面提到的安全方法,這些給它超過大多數其他競爭預言機解決方案的最強防禦屬性。這些方法還具有快速引匯出網路的額外好處,並且在節點運營商還不夠多的情況下,可能在中短期內有更好的安全性。

然而,從長遠看,如果我們真正想要開發出最去中心化的預言機解決方案,如果我們想要在安全和無須信任方面儘可能達到與領先公鏈如以太坊相同的級別,那麼,我們就不能簡單地相信選擇的一組節點運營商不會合謀。獲得隨機性可能是Chainlink未來需要確保自己安全的最後一項功能。

------

風險警示:藍狐筆記所有文章都不能作為投資建議或推薦,投資有風險,投資應該考慮個人風險承受能力,建議對專案進行深入考察,慎重做好自己的投資決策。

免責聲明:

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

推荐阅读

;