作者:扎克-赫斯, Zack Hess Read in English Chainlink是Eth上一個名爲LINK的子貨幣(subcurrency),以及javascript和golang中的一堆工具。Chainlink的目標是製作預言機(oracle)。這些預言機(oracle)將爲區塊鏈提供數據,這樣我們就可以有依賴於足球比賽結果或歐元價格等事件的合約。 Chainlink的安全策略不是很好。他們似乎認爲,如果他們描述了足夠多的不同機制,就沒有人能夠在糾結的混亂中找到一個錯誤。 幸運的是,我已經開發了一個簡單的計算信任模型: 信任理論。我們可以使用這個信任模型來快速找出Chainlink是否可以成爲一個安全的預言機(oracle)。 我們將使用一個關鍵的概念來簡化這個分析,即一個機制的安全性只能是它最薄弱的部分。正如Chainlink白皮書中所說。“任何系統的安全由其最薄弱的環節的安全性決定” 將不同的預言機(oracle)安全機制疊加在一起幾乎總是一個壞主意,因爲所產生的機制將和最不安全的組件機制一樣不安全。
在Chainlink中實現的oracle in-security的層次是:。
- api數據源
- 數據源彙總
- 非消耗性的聲譽
- 可消費的聲譽
- 認證
- 可信賴的硬件
api數據源 #
Chainlink團隊已經意識到,信任一個中央api供應商並不是一個安全的預言機(oracle)。從 chainlink 白皮書中可以看出,“當然,沒有完全值得信賴的數據源。由於有問題的網站、作弊的服務提供商或誠實的錯誤,數據可能被良性或惡意地破壞。” 特別是,運行api的中心人物可以選擇隨着時間的推移改變所提供的數據,或者將不同的數據交給oracle的不同部分,以導致oracle參與者失去聲譽。這樣一來,控制api的人不僅可以破壞自己api的數據,還可以導致oracle系統的其他部分出現故障。
信任一個api數據源是4.1級的安全。
數據源彙總 #
當你從多個來源彙總數據時,這被稱爲投票協議。投票協議在區塊鏈的背景下被很好地研究。
維塔利克寫了這篇偉大的論文,解釋了從多個來源彙總數據並不能增加該數據的安全性。https://vitalik.ca/general/2019/04/03/collusion.html
數據源聚合是4.1級安全。
預言機(oracle)的非消耗性信譽 #
Chainlink的預言機有一種聲譽,他們不能相互花費。比如他們節點的分配請求總數的記錄。
不可花費的聲譽實際上降低了預言機(oracle)的安全性,因爲它增加了參與退休攻擊的經濟激勵。
如果沒有辦法出售聲譽,而一個人想從預言機(oracle)中退休,那麼退休攻擊(retirement attacks)是他們將其聲譽價值轉化爲可消費形式的唯一途徑。
非消耗性的信譽是4.1級的安全。
預言機(oracle)可消費的聲譽 #
可消費的信譽是Augur和比特幣Hivemind中使用的安全系統。這是唯一一層有可能提供更多安全與中心化可信第三方的鏈路。
只要預言機(oracle)所擁有的信譽值大於預言機(oracle)所判斷的賭注總數,那麼這個系統就有3.1級的安全性。
保持聲譽的高價值意味着使用預言機(oracle)數據的人需要向預言機(oracle)支付交易費用。從長遠來看,這是不可能執行的,因爲人們會編制使用預言機(oracle)數據的寄生蟲合同,而不向預言機(oracle)支付特權。
一旦有足夠的寄生蟲合同,那麼3.1級的安全將被打破,而機制將處於4.1級
認證 #
相信一箇中心化的數據源來告訴你另一箇中心化的數據源是否值得信任。這根本不能提高安全性,兩個中心化的數據源都可能對你撒謊。4.1級安全。
可信賴的硬件 #
一個人怎麼能知道他們發送的請求是由真正可信的硬件響應的,還是由被虛擬化的假飛地響應的? 真正可信的硬件會有一個由硬件製造商嵌入的私鑰,不破壞硬件就不可能提取私鑰。所以你可以聯繫硬件製造商,並下載一份他們創建的所有硬件的公鑰清單。你可以用這些公鑰來驗證一個簽名確實是在受信任的硬件中創建的。 問題是,我們信任硬件製造商。他們可以在他們的硬件中保存私鑰的副本,允許他們簽署任何信息,所以對我們來說,這將看起來像受信任的硬件產生的信息。硬件製造商可以向列表中添加更多的公鑰,即使這些公鑰並不對應於他們生產的任何硬件。這使硬件製造商有能力運行一個他們可以使之說謊的預言機(oracle)。
如果硬件製造商可以破壞預言機(oracle)系統,那麼最終政府會通過法律來迫使硬件製造商破壞預言機(oracle)。他們會以 “拯救兒童”、“防止恐怖主義犯罪 “等爲藉口。
受信任的硬件是4.1級的安全。
結論 #
像Chainlink這樣的4.2級預言機(oracle)系統比@AugurProject和@BitcoinHivemind這樣的3.2級預言機(oracle)更昂貴,更不安全。這比Amoveo等2.2級預言機(oracle)系統更不安全,更昂貴。