那些說區塊鏈不能保密的可以閉嘴了

買賣虛擬貨幣

原文:區塊鏈:讓隱私保護更簡單來源:Neo智慧經濟作者:廖京輝

作為一個去中心化的信任數字化解決方案,區塊鏈技術的出現,在某種程度上讓我們對隱私保護的想象變成了可能。

原因主要有兩點,一,區塊鏈是一個分散式系統,所有的節點都可以獲取鏈上的所有資訊;二,區塊鏈可信基礎之一的共識演算法要求所有的交易都是公開且可驗證的。

基於以上兩個原因,我們在使用區塊鏈的時候,所有提交到鏈上的資訊都是完全赤裸裸的,你傳送的每一筆交易,做的每一個合約呼叫,乃至每一個鏈上活動都有跡可循。而且由於區塊鏈的不可篡改性,這些資訊將被永遠記錄在案。

有些人可能會認為區塊鏈上的賬戶都是個人自己建立的,跟自己在物理世界裡的身份資訊並沒有直接的關聯。即使鏈上足跡被追蹤,也不會影響自己在物理世界的隱私資訊。但事實恰恰相反,雖然區塊鏈賬戶的建立過程和我們自己的身份信是毫無關聯,但我們在使用賬戶時或多或少會跟自己的真實身份產生互動,由此別人可以透過你在鏈上的交易資訊追蹤到你在物理世界的真實身份。

舉個例子,門頭溝幕後的駭客大佬小胖哥 Kim Nilsson[1] 用了三年的時間,根據分析海量交易記錄中的蛛絲馬跡才定位到了駭客身份。背後原因,其一是區塊鏈交易的可溯源性,其二是使用者本身對更換賬戶有惰性的,經常是各處使用一個賬戶。混淆器

針對區塊鏈的隱私保護,最早的解決方案應該是針對比特幣的混淆器(Mixer)。

混淆器的原理類似於,警匪片裡的主角為了躲避跟蹤,找了一堆穿著相仿的人在自己周圍走動,混淆跟蹤者的視線。混淆器會接收一大堆來自使用者的輸入,經過一系列複雜的中間賬戶的轉移操作,再轉出給使用者指定的賬戶。這樣在使用者的輸入和輸出之間可能會涉及到幾十甚至上百個和中間賬戶和中間交易,極大地削弱了輸入賬戶和輸出賬戶間的關聯關係,使得追蹤者無法定位輸入賬戶資產的最終流向。

混淆器結構簡單,便於理解和實現。

但問題是,一,使用者需要把資產轉入混淆器,這個過程具有風險。混淆器一旦出錯,使用者的資產將無法尋回;二,混淆器雖然可以極大地增加追蹤的難度和複雜度,但是所有的交易依然是可以追蹤的,在新的分析手段和演算法加持下,其分析難度也逐漸下降。零知識證明

除了對已有專案進行混淆之外,更好的解決方案是建立一條完全針對於隱私保護的新鏈。雖然這樣的區塊鏈專案不在少數,但是很多技術都使用的是零知識證明。

零知識證明,顧名思義是在證明過程中無法獲得額外知識資訊的過程。我們經常舉的例子就是數獨問題:我給你出一個數獨題,但是你想知道這個數獨是不是真的有答案,因此我需要向你證明這個答案的存在,但是又不能告訴你這個答案的內容。因此我證明的過程就是,你任意選列或者行,我把指定的行列的9個數收集起來打亂順序給你,你看到每個數都在就會明白這行是有答案的,依次類推,你驗證的行列越多,你就越相信這個答案的存在。但是在這個過程中,你無法獲得任何跟答案有關的資訊。

這也存在一些問題。首先,這個證明需要的驗證資料量很大,起初大家用的是 zk-snark[2],後來 bulletproof 地出現極大地減少了驗證的資料量,但是零知識證明的驗證很繁瑣;其次,這個生成證明的過程計算量很大,比較費時間;再者,零知識證明需要針對每個特定的邏輯設計專門的電路,技術門檻比較高,不存在通用的電路來驗證合約。隱地址與環簽名

隱地址與環簽名,都是門羅幣[3]專案裡的技術。目前絕大多數的區塊專案如比特幣、Neo、以太坊等,都是賬戶是賬戶、交易是交易,賬戶控制交易,交易關聯賬戶。

但是門羅幣是個異類,它的隱地址技術使你無法根據一個目標地址查詢到任何與其關聯的交易。因為交易跟賬戶沒有任何關係,每一個交易本身都相當於一個獨立賬戶。

舉個例子,我們通常理解的交易是:我從我的賬戶給你轉五毛錢,你查詢接收。這個隱地址的交易模式是:我建立了一個賬戶在裡面存了五毛,只有你的私鑰能使用這個賬戶。

隱地址可以在交易中隱藏目標地址,源地址則使用環簽名來進行隱藏。使用者在傳送交易時,會和別的使用者一起構成一個環,大家都對交易進行簽名。外部來看,這個交易來自於環成員,但具體是來自於哪一個成員就無法確定了,從而隱藏了交易傳送者的地址。

但這也有明顯的問題。別人無法查詢你的資訊,你自己也很難查詢,比如你想知道哪一筆交易是發給你的,你必須對每一筆交易都用你的私鑰來試一試,你不試一試,你也不知道這個交易到底是不是給你的。同態加密

同態加密的技術主要用於智慧合約。因為幾乎前面的所有技術都不能用在智慧合約領域,智慧合約的邏輯由使用者編寫,你無法確定它的具體樣子,所以你無法提前給使用者編寫驗證的電路。但是同態加密可以在一定程度上隱藏使用者的資訊。

同態加密,簡單理解就是計算的封閉性。

舉個很簡單的例子,五毛錢一斤梨,那我現在有四斤梨子,它一定值兩塊錢。意思就是錢和梨子有相互的對應關係,你可以從梨子到錢,也可以從錢到梨子。

同態加密就是,加密資料後再進行計算,計算的結果在解密之後和原資料直接計算的結果是一致的。這樣既能保證資料的隱私性,又能保證計算結果的正確性,從而實現對智慧合約執行過程隱私的保護。

可信執行環境

可信執行環境是晶片中的一處安全區域,由硬體提供最直接的安全防護,載入到可信執行環境中的資料和程式碼將無法被不安全的系統程序訪問,從而保證資料的隱私性。

其實,可信執行環境在我們的日常生活中已經十分常見,手機的系統,無論是安卓還是蘋果,晶片無論是高通還是A13還是麒麟,內部都有可信執行環境來在本地保護我們的個人隱私。

很多科研人員也正在研究將可信執行環境和區塊鏈進行結合的方式。有可信執行環境加持的區塊鏈系統,不僅可以實現隱私保護的交易處理、合約執行,甚至可以為比特幣這種不支援智慧合約的專案增加合約執行的額外功能。側鏈與通道

除了以上直接在專案本身動刀子的解決方案之外,第二層的解決方案也可以很好地解決區塊鏈系統當前遇到的隱私問題。

與主鏈進行鉚接的側鏈,透過建立使用者專有的一條鏈,只在關鍵的資產變動時才會與主鏈進行互動,其餘時間的交易資訊都僅僅由側鏈進行管理,不會同步到主鏈上,從而避免了不必要的資訊洩漏。

雖然,側鏈在理論上解決了目前區塊鏈系統面臨的問題,但是它本身卻是犧牲了區塊鏈系統的去中心化特性而存在的。側鏈可以由專門的組織特地建立,這樣的一條鏈完全是中心化的,其安全性無法保證。

目前,通道系統主要基於比特幣的閃電網路,原理是使用者在主鏈上建立一個只有兩方參與的多籤賬戶,兩個參與者可以在鏈下任意變動這個賬戶中的餘額分配,只需把最後的結果提交到主鏈上即可。在這個時間內,兩個參與者可以任意發起無數次的餘額變動且不需要提交任何資料到主鏈上,從而避免了交易資訊的洩漏。不過這種結構雖然簡單,但卻很不方便,使用者在使用過程中需要提前鎖定一部分的資產在通道內部。此外,通道系統的爭端解決方案也存在著日蝕攻擊的風險。結語

關於區塊鏈隱私保護的研究,方興未艾。各種新的技術和解決方案層出不窮。相信終有一天,一個完善的解決方案會將其完美攻克。

免責聲明:

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

推荐阅读

;