想知道更多區塊鏈技術知識,請百度【鏈客區塊鏈技術問答社區】 鏈客,有問必答!
您可能見過許多承諾保護隱私的區塊鏈實現。這篇博文給了你一個關於區塊鏈上提供隱私的真實可能性的小概述。在對這些問題進行了簡短的概述以後,我將解決方案分爲五個層次來保護區塊鏈的隱私。 小程序
在使用區塊鏈時,有幾個關鍵的挑戰,它們正在一點點改變「保持數據隱私」的遊戲規則。後端
問題安全
在區塊鏈上操做時,咱們可能但願每一個人都可以驗證分類帳是正確的。咱們但願數據被正確存儲並可用。在這一點上,咱們不關心負載。咱們只是想確保全部的塊都是正確的,而且共識協議是有效的。所以,區塊鏈須要操做的全部信息必須對全部參與者可用。不管咱們談論的是私有區塊鏈仍是公共區塊鏈。這還包括元數據,例如節點的正常運行時間或哈希值能力、時間戳、事務信息等等,這都取決於區塊鏈系統。網絡
下一個挑戰直接關係到區塊鏈的核心概念:咱們不能刪除數據。當前可能不敏感的數據可能在區塊鏈的生命週期中變得敏感。就比特幣而言,這種狀況已經持續了九年多。想象一下,你租用了一項服務,但你不想讓任何人知道你在使用這項服務。由於你據說它應該更安全,你用比特幣支付。既然你擁有比特幣,你也會在其餘商店花不少錢。但若是其中一家商店遭到黑客攻擊,你的數據被公之於衆,全部人都知道你的比特幣地址和你在哪裏花錢。你就對此無能爲力。分佈式
數據披露的另外一個問題是:若是披露的數據足夠多,所謂的「匿名」可能很快就會變成假名。這意味着一個匿名密鑰能夠鏈接到您的我的。有了人工智能、大數據和圖形分析提供的潛力,咱們已經可以作到這一點。工具
但一旦咱們克服了這一切,還有另外一個挑戰:智能合約。智能合約是在區塊鏈上或與區塊鏈數據交互的小型程序。也許最著名的例子是以太坊,它已經提供了大量所謂的「DApps」分佈式應用程序。咱們可使用這種智能合約,啓動一個衆籌項目或參與著名的遊戲「加密貓」。這些小程序處理存儲在各個塊中的數據。若是咱們對各個區塊的數據進行加密,智能合約就沒法再使用這些區塊。區塊鏈
解決方案大數據
這就是爲何咱們必須爲每一個單獨的用例找到合適的解決方案。所以,我爲區塊鏈設計了一個「隱私層蛋糕」。這一層能夠單獨應用於您的解決方案,也能夠組合使用。每一層都增強了對私有數據的保護,但也增長了所需的技術和組織工做。人工智能
0層-手動加密加密
保護隱私最簡單、最明顯的方法是手動加密交易的有效負載。例如,咱們可使用RSA或橢圓曲線密碼術(ECC)。數據在密鑰全部者之間共享。如前所述,該方案不適合智能聯繫人,由於合同的功能沒法對加密數據進行評估。這種方法的優勢是咱們能夠在任何地方使用它,好比對於以太坊而言,咱們就能夠在區塊鏈上存儲負載。
手動加密有效負載的缺點是,若是數據被公開,那麼在每一個節點上刪除整個區塊鏈以前都沒法返回。對於比特幣這樣的公共區塊鏈來講,這幾乎是不可能的。
第一層——哈希數據和私有數據的集合
這個原則看起來很簡單,可是實現起來要比第一層複雜得多。在這個層中,咱們只在有效負載中存儲私有數據的哈希值(例如私有文檔的哈希值)。數據是受保護的,由於它不能從哈希值中從新建立。真正的數據被髮送給咱們想要與之共享信息的每一個人。
在一些現有的解決方案中,存在第二個和私有的分類帳來存儲私有數據。該實現自動處理私有消息,並將它們視爲來自博客的實際有效負載。這樣咱們甚至能夠在特殊的智能合約中使用它們。將數據直接發送給其餘用戶的好處是,咱們能夠直接向收件人發送地址。
在超分類結構中,這種數據被稱爲「私有數據收集」,使用「八卦協議」創建對等點之間的鏈接。還有一個以太坊實現,稱爲「Quorum」,它也實現了這個特性。
第二層——側鏈和通道
除了上面的步驟,咱們還能夠將您的區塊鏈網絡分紅更小的部分。每一個塊都存在於一個單獨的區塊鏈網絡中,而且可能有一個鏈接網絡的中間區塊鏈。
有多種方法能夠實現這一點。在公共區塊鏈中,咱們常常看到所謂的側鏈,例如在RSK中,它從主鏈中分離出來,在一系列的交易以後返回主鏈。(注:RSK自己不支持隱私。這只是側鏈的一個很好的例子,它對於擴展和提供其餘特性也頗有用)。
在私有區塊鏈領域也有多種解決方案。例如,超分類結構區塊鏈的「通道」與其餘通道徹底分離,不打算進行數據傳輸。
要命名一個用例,若是咱們有一部分業務合做夥伴不但願深刻了解業務事務,那麼可使用這個隱私層。咱們還能夠在任務組中定義內部項目,而後在不影響主網絡的狀況下刪除它。
第三層——應用程序身份驗證
在區塊鏈的將來,你不會直接經過設備上的節點訪問區塊鏈。特別是對於商業區塊鏈應用程序,公司可能在後端使用區塊鏈技術,用戶經過簡單的Web界面訪問節點。這使得在應用程序級設計訪問控制成爲可能。
誰能獲得哪些信息仍然取決於區塊鏈軟件。然而,物理上的分離再也不給出。
例如:一個消費者保護組織是一個與多家汽車製造商組成的聯盟的一部分。區塊鏈能夠驗證全部信息都是正確的。消費者保護組織如今爲客戶提供一個區塊鏈節點來接收關於購買產品的信息。每一個製造商都提供大量信息,但只會將其傳遞給受權的我的用戶。
您可使用「超分類器編寫器」工具來實現這個功能,這很是簡單,該工具是一種用於超分類器結構網絡的軟件抽象。有了這個工具,咱們可使用訪問控制列表(ACL)輕鬆定義用戶訪問,甚至能夠集成OAuth等身份驗證機制。
第四層——零知識證實
在區塊鏈上保護隱私的最後一層是一種稱爲零知識證實的加密方法。它必須由區塊鏈自己提供,而且很難理解。
咱們能夠這樣想象:你想用Ethereum買一輛新車,但你不想讓你的鄰居知道你出了多離譜的高價。在零知識證實的狀況下,你能夠向公衆證明你確實把錢寄出去了,但對公衆隱瞞了確切的金額。
在零知識證實的狀況下,咱們能夠證實某件事是真實的,或者某個事務被髮送了——可是您沒必要透露更多的信息。
在以太坊,咱們已經可使用這種方法。它被稱爲「ZK-STARK」,它能夠抵抗量子計算機,但須要更多的計算能力和內存空間。
在超分類結構中,有一種基於零知識的身份驗證方法,稱爲「身份混合器」。這能夠用來證實咱們是合法年齡,而不須要透露咱們的名字。或者若是咱們想得更大一點,咱們能夠把它用於投票系統,讓選民匿名化。
結論
做爲補充信息,我想指出,區塊鏈上還有其餘幾種保護隱私的方法。然而,這些方法是爲很是特定的目的而開發的,不能映射到其餘系統。這種實現的一個很好的例子是加密貨幣「Monero」。門羅幣的廣告說,錢能夠不留痕跡地進行轉移。
另外,我想指出,數據私隱是一個大問題,尤爲是考慮到《通常數據保護規例》(GDPR)。在您將您的數據甚至您的客戶數據推送到區塊鏈網絡以前,請三思。
區塊鏈被設計成分佈式和持久性的。沒有辦法從您沒法控制的節點中提取泄漏的我的信息。
堅持使用模型並實現儘量多的層,以保持私有數據的安全和隔離。