對區塊鏈撒謊:將“垃圾進,垃圾出”問題應用在去中心化網路上

買賣虛擬貨幣

作者 | Steven Pu

翻譯 | 火火醬~,責編 | 晉兆雨

出品 | 區塊鏈大本營

頭圖 | 付費下載於視覺中國

在本文中,我們將討論一個經常被忽略(大多是故意無視)的概念,即“真實世界中的資料如何與區塊鏈互動”。

與其他系統一樣,區塊鏈也同樣存在典型的“垃圾入、垃圾出”問題。區塊鏈基礎設施無法保證非鏈上生成的、不公開的資料的真實性,但不幸的是,世界上絕大多數資料都屬於此類資料。因此,如果有人(或裝置)向區塊鏈提交了虛假資料的話,我們便沒有辦法確定該資料的真實性,最後只能將這些虛假資料永久地提交到區塊鏈歷史中。因此,如果把垃圾放到區塊鏈中,便也會從區塊鏈中得到垃圾。

如今,聲稱自己無意中忽略了這個問題的應用程式在市場上氾濫成災,它們往往都會藉助額外的技術層來營造資料正確的假象。比如:

去中心化的資料市場:用代幣激勵公司將其資料掛牌出售。但是你怎麼知道買來的資料是真實的呢?

隱私保護查詢:可以透過零知識證明來統計銀行高淨值客戶,因此,就可以在銀行不提供任何客戶資訊的情況下得到統計結果——你怎麼知道銀行的客戶資料庫不是捏造的呢?

對於公開的資料來說,你可以設計一款遊戲,讓有財務風險的玩家就所提供資料的真實性相互進行挑戰(就像Chainlink或其他一些區塊鏈專案那樣)。但是,世界上絕大多數的資料都是非公開的。

那麼,如何才能解決這個問題呢?關鍵是要從源頭上保證資料安全。

最實用的方法:確保資料來源可靠

如果資料不是從源頭處獲得的,而是透過第三方中介獲取的,那麼如果中介不值得信任的話,資料的真實性也同樣不可信。在處理資料時,涉及的中介越多,需要付出的信任就越多,直到某一刻,當涉及的中介太多時,資料就和從隨機生成器中生成的沒什麼兩樣了。

因此,我們的目標是要儘可能從靠近資料來源的地方獲取資料。例如,與其從零售商的資料庫中獲取銷售資料,不如從銷售硬體處獲取;與其從氣象網站上訂閱資料,不如從氣象感測器那裡收集;與其閱讀橋樑運營公司的PDF報告,不如試著從安裝在橋樑上的攝像機和感測器中獲取原始資料。

但是如何從源頭保護資料呢?既然世界上的大多數資料都是由裝置生成或收集的,那麼讓我們先研究一下如何保護裝置生成的資料。這裡,我們面臨三個可能會出現問題的故障點:

身份:你怎麼知道是什麼在生成資料?是像你預期的那樣來自溫度感測器,還是來自惡意玩家的的隨機數生成器?

處理和傳輸:即使資料來源是真實且可識別的,你又怎麼知道資料在處理和傳輸過程中(例如從感測器轉移到通訊模組的過程中)沒有被更改、損壞或徹底調包?

數字/模擬介面:即使身份、處理和傳輸都是安全的,你又如何防止有人透過接入虛假輸入訊號,來改變裝置收集資料的方式呢?

下面,讓我們來看看能做些什麼,逐一解決上述問題吧。

身份

為了保護資料生成裝置的身份,可以在裝置中嵌入一組公鑰/私鑰,將公鑰公開,並且對硬體的實際輸出進行現場檢查,這才是能確保硬體提供可靠資料的切實可行的辦法。但這僅僅是最簡單的部分。

棘手的是,要如何確保這個身份不會被盜?我們可以使用一種名為安全元件(secure element, SE)的東西。該硬體可以在晶片內生成公鑰/私鑰對,並且具有很強的防篡改能力。SE通常只做一件事:為訊息簽名(提供身份證明的一種花哨講法)。如果你用過信用卡或智慧手機的話,就已經享受過安全元件的好處了。

處理和傳輸

為了保證資料處理和傳輸邏輯的安全,我們可以使用帶有安全啟動(secure boot, SB)的微控制器(MCU)。你可以把微控制器想象成一臺非常簡單的計算機。SB可以確保只有具有正確私鑰的實體才能將應用程式載入到MCU中。可以提前與利害關係人共享應用程式邏輯和相關校驗和,或者乾脆開源,這樣就可以在載入後對其進行驗證了。

更重要的是,當應用程式徹底測試完畢後,我們需要從應用程式和MCU禁用所有修改功能,包括韌體升級。這是為了確保應用程式邏輯保持現在的狀態、不可變,甚至製造商也無法進行更改。

當然,這也存在明顯的弊端,比如應用程式無法再進行升級。但是,我們也因此獲得了真正的裝置獨立性,不受外界干擾,其行為值得信賴、具有確定性且不可改變。

數字/模擬介面

這個問題非常棘手,並且不能使用嵌入在資料收集和中繼裝置上的硬體來解決。一般來講,要確保介面不被中斷的話,就必須設計出新的機制,但這與應用程式有強相關性。我們可以用以下例子來進行說明。

假設你有一輛冷鏈物流公司的冷藏車,負責向當地超市運送鮮魚。為了保證質量,魚必須全程保持在一定的溫度範圍內。如果溫度太高,魚就會變質。如果溫度太低,魚的味道和口感就會變差。為了確保物流公司遵守合同規定的溫度範圍,超市在卡車上安裝了溫度感測器。

但是,如果卡車司機把感測器放在卡車前方的冰櫃裡,同時,為了節約能源成本而調高了製冷裝置的溫度,那會怎麼樣呢?感測器不知道自己被挪動了位置,收集並上傳的溫度資料一直都處於合同規定範圍內。就這樣,感測器被騙了。

降低這種風險的方法之一是將感測器硬連線到製冷裝置中,使其無法被移動。但是,這種方法也不保險。比如說,可以在感測器周圍包上一袋冰,這樣一來,就可以將卡車其他地方的溫度調高到要求範圍以上了。

另一種更好(但更貴)的方法是在每包魚上都貼上防篡改的封條,然後在每包魚上都裝上一個溫度感測器。這樣一來,如果司機想要取出溫度感測器的話,就要破壞封條,這會違反合同的關鍵條款,並且這很容易就會被發現。

最後,要想解決數字/模擬介面的問題就需要進行大量的創新,解決方案往往具有高度的應用針對性。

當向企業客戶提供區塊鏈解決方案時,必須記住,如果存在更廣泛的裝置獨立性問題,那麼在應用於物聯網時,僅有區塊鏈是沒有用的。我們要確保這些邊緣裝置生成的資料是真實可信的,並且完全不受外界影響。

原文連結:https://hackernoon.com/lying-to-the-blockchain-applying-the-garbage-in-garbage-out-problem-to-decentralized-networks-g52i3e66

免責聲明:

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

推荐阅读

;