本文由幣乎(bihu.com)優(yōu)質(zhì)內(nèi)容計劃支持

“區(qū)塊鏈”這個陌生的技術(shù)詞匯在2018年會越來越多地進入人們的視野。
在我看來,區(qū)塊鏈技術(shù)不但有可能改變?nèi)藗兊纳?,甚至有可能重塑世界?區(qū)塊鏈是一種分布式數(shù)據(jù)庫,是一串使用密碼學方法相關(guān)聯(lián)產(chǎn)生的數(shù)據(jù)塊,每一個數(shù)據(jù)塊中包含了一次比特幣網(wǎng)絡(luò)交易的信息,用于驗證其信息的有效性和生成下一個區(qū)塊,它解決了各方如何建立信任的問題,卻也同時帶來了一個新的問題:
隱私如何得到保護?
當用戶的所有交易信息都暴露在大眾面前,如果這些交易信息被惡意挖掘及利用,將給用戶隱私帶來嚴重的威脅。
?區(qū)塊鏈的隱私問題?也許大家首先會有一個疑惑:比特幣等區(qū)塊鏈技術(shù)不是“匿名”的嗎,為什么會有隱私問題?
要回答這個問題,我們首先要區(qū)分“化名”和“匿名”這兩個概念?;芎美斫?,就是我們在網(wǎng)絡(luò)中使用的一個與真實身份無關(guān)的身份。
例如在比特幣系統(tǒng)的交易中,使用者無需使用真名,而是采用公鑰哈希值作為交易標識。在這個例子中,公鑰哈希值就可以代表使用者的身份,與真名無關(guān),因此比特幣是具備化名性的。?但匿名跟化名是不同的。在計算機科學中,匿名指的是具備無關(guān)聯(lián)性(unlinkability)的化名。
所謂無關(guān)聯(lián)性,就是指站在攻擊者的角度,無法將用戶與系統(tǒng)之間的任意兩次交互進行關(guān)聯(lián)。在比特幣中,由于用戶反復使用公鑰哈希值作為交易標識,交易之間顯然能建立關(guān)聯(lián)。因此比特幣并不具備匿名性。?若單個地址進行交易并不能確保匿名性,那么多個地址又如何?
答案依然是否定的:用戶X利用多個賬戶在一定時間內(nèi)向用戶Y進行轉(zhuǎn)賬,攻擊者可以很大概率猜測這幾個地址屬于同一個用戶,而將這多個地址都歸為一個地址簇。
?除了上述情況,零錢地址也會暴露用戶地址的關(guān)聯(lián)性。用戶X向用戶Y轉(zhuǎn)賬40,總計付款50,因此零錢返回10。攻擊者會很大概率推測賬戶D是零錢地址,從而將賬戶D和E進行關(guān)聯(lián)。
?如何在保障隱私的情況下實現(xiàn)區(qū)塊鏈的特性(交易可驗證,歷史可查等)呢?
下面我們介紹最典型的匿名化方案:達世幣(Dash)
?達氏幣(Dash)?達氏幣使用了一種稱之為合幣(CoinJoin)的關(guān)鍵技術(shù)。簡單地說,所謂合幣技術(shù)就是通過一些主節(jié)點(master node)來將多個用戶(至少3個)的多筆交易進行混合、形成單一交易的技術(shù)。在合幣中,每個用戶都會提供一個輸入輸出地址,然后將其送到主節(jié)點進行混合(即任意交換輸入輸出地址)。
交易只能以規(guī)定面額(0.1, 1, 10, 100)為單位來進行,這樣就增加了攻擊者從數(shù)額的角度來猜測交易關(guān)聯(lián)度的難度。同時,主節(jié)點要保證亂序輸出。如圖4所示,不同的顏色代表此金額來自不同用戶,DASH是達氏幣的貨幣標識。通過混合,黃色用戶完成了對綠色用戶進行轉(zhuǎn)賬10 DASH。而外界很難從混淆后的交易中發(fā)現(xiàn)這筆交易。?
??合幣中一個關(guān)鍵的保護隱私的角色就是主節(jié)點,因為主節(jié)點依然存在被攻擊者控制的可能性。為了解決這個問題,達氏幣中引入了鏈式混合(chaining)以及盲化(blinding)技術(shù)。所謂鏈式混合,就是指用戶的交易會隨機選擇多個主節(jié)點,并在這些主節(jié)點中依次進行混合,最后輸出;所謂盲化技術(shù),就是指用戶不直接將輸入輸出地址發(fā)送到交易池,而是隨機選擇一個主節(jié)點,讓它將輸入輸出傳遞到一個指定的主節(jié)點,這樣后一個主節(jié)點就很難獲取用戶的真實身份。
通過這兩個技術(shù),除非攻擊者控制了很多的主節(jié)點,否則幾乎不可能對指定交易進行關(guān)聯(lián)。?除了防范交易數(shù)額以及輸入輸出地址的關(guān)聯(lián)攻擊,達氏幣還防范了交易時間上的關(guān)聯(lián)攻擊。每個用戶往往都會具備自己的交易習慣,例如每天的交易時間段以及短時間內(nèi)進行多筆交易等等。這些時間信息也會一定程度暴露用戶身份。為了解決這個問題,達氏幣提出了被動(passive)匿名化的方案,保證用戶客戶端以固定的時間間隔發(fā)起交易請求,來參與主節(jié)點的混合。?