區塊鏈可能不完全安全

關於安全,先思考一個問題,區塊鏈到底安全不安全?總體來看,可能不完全安全,從4個方面加以說明。

區塊鏈在設計之初使用大量安全技術。比如:使用分佈式記帳,保證分佈式安全存儲。使用P2P網絡,保證運行安全。使用共享機制,保證全網一致協同。使用數字簽名技術,實現所有權匿名。

首先,分佈式記帳技術是區塊鏈核心。它使用哈希結構。一個是基於哈希鏈表塊鏈。當前塊存儲以及前一個區塊哈希值作為副指針,保證前面任何一點修改對後面都沒影響。

另一個是關於交易安全。採用哈希樹,底層是一些交易,通過中間哈希節點連接。通過這個簡單哈希技術實現一致性校驗。

其次,P2P網絡技術。區塊鏈不是一個簡單的分佈式技術。而是大規模網絡下的分佈式存儲技術。那麼這個技支持全球範圍、不同地點、分散化的網絡結構是如何實現的?

有一個問題是,如何實現高效通信?區塊鏈採用P2P網絡結構。其核心是小世界模型,小世界模型在理論上有兩大性質,一是高密集型;二是短鏈原則。

帶來的好處是不管命令有多大,互聯網發一條信息包括六跳之內可以發佈全網,保證信息傳播有效性。

再其次,共識機制。對所有任務方達成一致機制。共識技術解決的問題是跨通。最經典例子是拜佔廷一致協議。

比特幣提出一種思想是塊衝突思想,不需要大家選舉,而是大家工作使用單向函數溝算,實現快速驗證。後續技術包括授權證明等一些新技術。這些技術實現並降低計算開銷。

最後,安全特性。是關於數字簽名技術。數字簽名和加密是密碼學中兩個主要技術。數字簽名技術用來保證協議安全。

區塊鏈中使用數字簽名有一個特點,比如實現所有權匿名,也就是通過將只保留在區塊鏈中,保留公鑰部分,而不將公鑰所有者信息脫落,保證資產接收者只能對資產所有者私鑰進行所有權驗證。

為回答區塊鏈安全技術,我給出一個表格。豎向是四項技術:分佈式賬本、P2P網絡、共識機制、數字簽名。橫向是安全性分四個方向:合約安全、交易安全、存儲安全、管理安全。

針對它進行如下打分,按分數值排,存儲安全分數最高。其次是交易安全、管理安全、合約安全。

這樣可以得到非常客觀評價。針對很有希望一項技術:合約安全,現在已經推廣的一項技術。

什麼叫智能合約?智能合約是一個程序。既然是程序,為什麼不叫程序而叫合約?程序是單方執行,合約是多方執行。合同最上,要有甲方乙方。

其次合約並不是記帳單,現有比特幣還是停留在記帳單時代,記錄已有信息,能否體現出智能性,有待於學術界和產業界發揮。

我給出一個綜合性定義:智能合約是共同完成具有法律效應的任務。我不是法學家,是搞安全的人。

簡單講,是不是在合約運行時引入一些中立機構、仲裁機構,合約運行使其合法化,不但要看合約運行結果,希望運行過程中保證安全。

安全一般認為有三個特性。一個是公平性合約,各方與公正機構都能公平參與合約運行。二是正確性,合約結果是一致和正確的。三是隱私性,保護合約各方信息隱私性。

針對智能合約安全性要求,我們提出一個基本框架:這個框架很簡單,框架下是我們偏紅色部分區塊鏈系統,上一層根據智能合約,放在區塊鏈裡一些可執行交易。

交易存儲在區塊鏈中,如果執行這個交易,會動態形成一些動態執行組。合約各方構成臨時性機構。在運行過程中會在區塊鏈中形成若干執行組。

在這個框架內要引入安全多方計算技術,一個很容易理解的技術,數據加密狀態完成各種操作技術,數據不脫密情況下能保證安全性,傳統密碼學可以保證所有權。

什麼是安全多方計算理論?首先是理論模型,模型很簡單,多方計算模型有N參與者,P1到PN,共同完成某一個計算任務。

是一個程序,每方有一個輸入,最終運行結果,每方獨立運行會得到Y1到Yn各自輸出。這個定義就是多方計算定義。很抽象的一個定義。

這個定義基礎上安全多方指什麼性質?一是隱私性,各參與方不能獲得任何方輸入。二是一致性,重視參與者會獲得一致性輸出結果。Y1等於Y2依此類推。

安全多方計算理論結果,這張表左邊閾值是多方攻擊者,攻擊者分三類,第一類小於n/3,平凡模型下,保證公平性和傳輸保障性,分別實現計算上的安全。

攻擊者數量少於一半以上,平凡模型只需要P2P信道加工和認證,同樣可以實現安全和計算。

最後一種情況比較特殊,當攻擊者數目佔多數,大於n/2,需要採用非平凡模型,只能在廣播信道下實現計算安全。

為什麼廣播信道尤其重要?安全領域最難防範,對不同人進行不同對策,比如只對一個人說假話,對其他人都說真話。

這種在密碼學也是最難防的,我們防止採用廣播信道,發一個消息大家都能夠知道,不存在差異性攻擊。

安全多方及理論上可以實現可證明安全。

理論模型在歷史上提得比較早。1982年姚期智先生提出姚氏百萬富翁問題。1983到1987年以色列的學者Golderich提出若干定義,完善安全多方計算概念。

2000年前,學術界實現安全多方計算可行性分析。2000年後,進入安全多方計算實用化階段,美國軍方和歐洲都有實際例子。

另外一事件是2009年出現一個新詞彙叫全同態加密,被認為是安全多方計算的一步,全同態加密可以實現數據同態計算。

但很快被證明不夠有效。這是安全單方計算。2011年後,主流集中在多線性映射電路族的安全計算技術。

國內起步不晚,幾代密碼工作者一直在這方面做大量工作,2006年北大馮榮權教授領導的安全計算獲得國家863計劃支持。另一位馮教授獲得國家科學基金支持。

我們科研團隊有幸參與到上述兩個研究課題中,保留一些科研成果,其中一些成果給大家展示一下。包括隨機函數族生成、代數運算族實現、還有邏輯關係,邏輯比較和位操作。

區塊鏈的出現讓我們看到安全多方計算可能應用的一些場景。這裡現在已經構造了叫做貝殼鏈的區塊鏈系統,這個鏈的特點是提供智能合約安全。兩個實例幫大家理解安全多方運算。

如果目前合約計算量很低,我們無法體現出安全多方計算的優勢。關於智能科學舉兩個例子,一是隱私集簇算法,一些數據點歸類,現在能做到智能合約裡引入安全多方計算語言。這個語言現有程序語言框架內進行環境定義,以及安全整形定義,只要是安全定義就能進行處理。

區塊鏈平臺下形成智能合約,4方參與,這4方對於200個數據點進行集類,200個點聚類,演示時間40秒,實際運行不包括顯示這些數據幾秒內能夠完成。

二是實驗關於ID3算法,也是隱私挖掘基本算法,如同神經網絡,是一個簡單的數據挖掘算法。舉一個例子。

一些數據表,這些數據表也許在區塊鏈中一方或者多方共同存儲數據表,對它的保密性有要求,我們允許它最終得到一些挖掘後信息,但不允許你獲得這些信息,這個體現主要是上一個體現數據的計算,體現的是串類型的PK功能。核心是隱私數據的統計、檢索。

現在能夠做到檢索和代檢索完全處於加密狀態能夠完成工作。

這個結果是四臺模擬器下完成的,時間只需要三秒鐘,運算量很大,如果把通信放在一塊,有12兆。

最後,區塊鏈安全是一個新興安全技術,是大量工作者和企業把一些新安全技術引入到區塊鏈中。包括這幾年提出的零知識證明。零知識證明並不是技術,是密碼學概念。我們獲取信息洩露是零。連零點幾倍都達不到的狀態。

其次,這幾年出現一些新簽名:多重簽名、環簽名、盲簽名。密碼學有大量簽名方案存在:代理簽名、群簽名、盲驗證、聚合簽名、身份簽名、門限簽名、指定驗證者簽名,屬性簽名。

另外,數據隱私數據加密也被引用進來。呼籲我們注重自有知識產權核心技術的開發,這是科技工作者必然使命,同時希望產業界人士能夠積極推動這些科研成果的轉化。

區塊鏈可能不完全安全


分享到:


相關文章: