作為一個(gè)去中心化的信任數(shù)字化解決方案,區(qū)塊鏈技術(shù)的出現(xiàn),在某種程度上讓我們對(duì)隱私保護(hù)的想象變成了可能。
原因主要有兩點(diǎn),一,區(qū)塊鏈?zhǔn)且粋€(gè)分布式系統(tǒng),所有的節(jié)點(diǎn)都可以獲取鏈上的所有信息;二,區(qū)塊鏈可信基礎(chǔ)之一的共識(shí)算法要求所有的交易都是公開(kāi)且可驗(yàn)證的。
基于以上兩個(gè)原因,我們?cè)谑褂脜^(qū)塊鏈的時(shí)候,所有提交到鏈上的信息都是完全赤裸裸的,你發(fā)送的每一筆交易,做的每一個(gè)合約調(diào)用,乃至每一個(gè)鏈上活動(dòng)都有跡可循。而且由于區(qū)塊鏈的不可篡改性,這些信息將被永遠(yuǎn)記錄在案。
有些人可能會(huì)認(rèn)為區(qū)塊鏈上的賬戶都是個(gè)人自己創(chuàng)建的,跟自己在物理世界里的身份信息并沒(méi)有直接的關(guān)聯(lián)。即使鏈上足跡被追蹤,也不會(huì)影響自己在物理世界的隱私信息。但事實(shí)恰恰相反,雖然區(qū)塊鏈賬戶的創(chuàng)建過(guò)程和我們自己的身份信是毫無(wú)關(guān)聯(lián),但我們?cè)谑褂觅~戶時(shí)或多或少會(huì)跟自己的真實(shí)身份產(chǎn)生交互,由此別人可以通過(guò)你在鏈上的交易信息追蹤到你在物理世界的真實(shí)身份。
舉個(gè)例子,門頭溝幕后的黑客大佬小胖哥Kim Nilsson用了三年的時(shí)間,根據(jù)分析海量交易記錄中的蛛絲馬跡才定位到了黑客身份。背后原因,其一是區(qū)塊鏈交易的可溯源性,其二是用戶本身對(duì)更換賬戶有惰性的,經(jīng)常是各處使用一個(gè)賬戶。
混淆器
針對(duì)區(qū)塊鏈的隱私保護(hù),最早的解決方案應(yīng)該是針對(duì)比特幣的混淆器(Mixer)。
混淆器的原理類似于,警匪片里的主角為了躲避跟蹤,找了一堆穿著相仿的人在自己周圍走動(dòng),混淆跟蹤者的視線?;煜鲿?huì)接收一大堆來(lái)自用戶的輸入,經(jīng)過(guò)一系列復(fù)雜的中間賬戶的轉(zhuǎn)移操作,再轉(zhuǎn)出給用戶指定的賬戶。這樣在用戶的輸入和輸出之間可能會(huì)涉及到幾十甚至上百個(gè)和中間賬戶和中間交易,極大地削弱了輸入賬戶和輸出賬戶間的關(guān)聯(lián)關(guān)系,使得追蹤者無(wú)法定位輸入賬戶資產(chǎn)的最終流向。
混淆器結(jié)構(gòu)簡(jiǎn)單,便于理解和實(shí)現(xiàn)。
但問(wèn)題是,一,用戶需要把資產(chǎn)轉(zhuǎn)入混淆器,這個(gè)過(guò)程具有風(fēng)險(xiǎn)。混淆器一旦出錯(cuò),用戶的資產(chǎn)將無(wú)法尋回;二,混淆器雖然可以極大地增加追蹤的難度和復(fù)雜度,但是所有的交易依然是可以追蹤的,在新的分析手段和算法加持下,其分析難度也逐漸下降。
零知識(shí)證明
除了對(duì)已有項(xiàng)目進(jìn)行混淆之外,更好的解決方案是創(chuàng)建一條完全針對(duì)于隱私保護(hù)的新鏈。雖然這樣的區(qū)塊鏈項(xiàng)目不在少數(shù),但是很多技術(shù)都使用的是零知識(shí)證明。
零知識(shí)證明,顧名思義是在證明過(guò)程中無(wú)法獲得額外知識(shí)信息的過(guò)程。我們經(jīng)常舉的例子就是數(shù)獨(dú)問(wèn)題:我給你出一個(gè)數(shù)獨(dú)題,但是你想知道這個(gè)數(shù)獨(dú)是不是真的有答案,因此我需要向你證明這個(gè)答案的存在,但是又不能告訴你這個(gè)答案的內(nèi)容。因此我證明的過(guò)程就是,你任意選列或者行,我把指定的行列的9個(gè)數(shù)收集起來(lái)打亂順序給你,你看到每個(gè)數(shù)都在就會(huì)明白這行是有答案的,依次類推,你驗(yàn)證的行列越多,你就越相信這個(gè)答案的存在。但是在這個(gè)過(guò)程中,你無(wú)法獲得任何跟答案有關(guān)的信息。
這也存在一些問(wèn)題。首先,這個(gè)證明需要的驗(yàn)證數(shù)據(jù)量很大,起初大家用的是zk-snark,后來(lái)bulletproof地出現(xiàn)極大地減少了驗(yàn)證的數(shù)據(jù)量,但是零知識(shí)證明的驗(yàn)證很繁瑣;其次,這個(gè)生成證明的過(guò)程計(jì)算量很大,比較費(fèi)時(shí)間;再者,零知識(shí)證明需要針對(duì)每個(gè)特定的邏輯設(shè)計(jì)專門的電路,技術(shù)門檻比較高,不存在通用的電路來(lái)驗(yàn)證合約。
隱地址與環(huán)簽名
隱地址與環(huán)簽名,都是門羅幣項(xiàng)目里的技術(shù)。目前絕大多數(shù)的區(qū)塊項(xiàng)目如比特幣、Neo、以太坊等,都是賬戶是賬戶、交易是交易,賬戶控制交易,交易關(guān)聯(lián)賬戶。
但是門羅幣是個(gè)異類,它的隱地址技術(shù)使你無(wú)法根據(jù)一個(gè)目標(biāo)地址查詢到任何與其關(guān)聯(lián)的交易。因?yàn)榻灰赘~戶沒(méi)有任何關(guān)系,每一個(gè)交易本身都相當(dāng)于一個(gè)獨(dú)立賬戶。
舉個(gè)例子,我們通常理解的交易是:我從我的賬戶給你轉(zhuǎn)五毛錢,你查詢接收。這個(gè)隱地址的交易模式是:我創(chuàng)建了一個(gè)賬戶在里面存了五毛,只有你的私鑰能使用這個(gè)賬戶。
隱地址可以在交易中隱藏目標(biāo)地址,源地址則使用環(huán)簽名來(lái)進(jìn)行隱藏。用戶在發(fā)送交易時(shí),會(huì)和別的用戶一起構(gòu)成一個(gè)環(huán),大家都對(duì)交易進(jìn)行簽名。外部來(lái)看,這個(gè)交易來(lái)自于環(huán)成員,但具體是來(lái)自于哪一個(gè)成員就無(wú)法確定了,從而隱藏了交易發(fā)送者的地址。
但這也有明顯的問(wèn)題。別人無(wú)法查詢你的信息,你自己也很難查詢,比如你想知道哪一筆交易是發(fā)給你的,你必須對(duì)每一筆交易都用你的私鑰來(lái)試一試,你不試一試,你也不知道這個(gè)交易到底是不是給你的。
同態(tài)加密
同態(tài)加密的技術(shù)主要用于智能合約。因?yàn)閹缀跚懊娴乃屑夹g(shù)都不能用在智能合約領(lǐng)域,智能合約的邏輯由用戶編寫(xiě),你無(wú)法確定它的具體樣子,所以你無(wú)法提前給用戶編寫(xiě)驗(yàn)證的電路。但是同態(tài)加密可以在一定程度上隱藏用戶的信息。
同態(tài)加密,簡(jiǎn)單理解就是計(jì)算的封閉性。
舉個(gè)很簡(jiǎn)單的例子,五毛錢一斤梨,那我現(xiàn)在有四斤梨子,它一定值兩塊錢。意思就是錢和梨子有相互的對(duì)應(yīng)關(guān)系,你可以從梨子到錢,也可以從錢到梨子。
同態(tài)加密就是,加密數(shù)據(jù)后再進(jìn)行計(jì)算,計(jì)算的結(jié)果在解密之后和原數(shù)據(jù)直接計(jì)算的結(jié)果是一致的。這樣既能保證數(shù)據(jù)的隱私性,又能保證計(jì)算結(jié)果的正確性,從而實(shí)現(xiàn)對(duì)智能合約執(zhí)行過(guò)程隱私的保護(hù)。
可信執(zhí)行環(huán)境
可信執(zhí)行環(huán)境是芯片中的一處安全區(qū)域,由硬件提供最直接的安全防護(hù),加載到可信執(zhí)行環(huán)境中的數(shù)據(jù)和代碼將無(wú)法被不安全的系統(tǒng)進(jìn)程訪問(wèn),從而保證數(shù)據(jù)的隱私性。
其實(shí),可信執(zhí)行環(huán)境在我們的日常生活中已經(jīng)十分常見(jiàn),手機(jī)的系統(tǒng),無(wú)論是安卓還是蘋(píng)果,芯片無(wú)論是高通還是A13還是麒麟,內(nèi)部都有可信執(zhí)行環(huán)境來(lái)在本地保護(hù)我們的個(gè)人隱私。
很多科研人員也正在研究將可信執(zhí)行環(huán)境和區(qū)塊鏈進(jìn)行結(jié)合的方式。有可信執(zhí)行環(huán)境加持的區(qū)塊鏈系統(tǒng),不僅可以實(shí)現(xiàn)隱私保護(hù)的交易處理、合約執(zhí)行,甚至可以為比特幣這種不支持智能合約的項(xiàng)目增加合約執(zhí)行的額外功能。
側(cè)鏈與通道
除了以上直接在項(xiàng)目本身動(dòng)刀子的解決方案之外,第二層的解決方案也可以很好地解決區(qū)塊鏈系統(tǒng)當(dāng)前遇到的隱私問(wèn)題。
與主鏈進(jìn)行鉚接的側(cè)鏈,通過(guò)建立用戶專有的一條鏈,只在關(guān)鍵的資產(chǎn)變動(dòng)時(shí)才會(huì)與主鏈進(jìn)行交互,其余時(shí)間的交易信息都僅僅由側(cè)鏈進(jìn)行管理,不會(huì)同步到主鏈上,從而避免了不必要的信息泄漏。
雖然,側(cè)鏈在理論上解決了目前區(qū)塊鏈系統(tǒng)面臨的問(wèn)題,但是它本身卻是犧牲了區(qū)塊鏈系統(tǒng)的去中心化特性而存在的。側(cè)鏈可以由專門的組織特地建立,這樣的一條鏈完全是中心化的,其安全性無(wú)法保證。
目前,通道系統(tǒng)主要基于比特幣的閃電網(wǎng)絡(luò),原理是用戶在主鏈上創(chuàng)建一個(gè)只有兩方參與的多簽賬戶,兩個(gè)參與者可以在鏈下任意變動(dòng)這個(gè)賬戶中的余額分配,只需把最后的結(jié)果提交到主鏈上即可。在這個(gè)時(shí)間內(nèi),兩個(gè)參與者可以任意發(fā)起無(wú)數(shù)次的余額變動(dòng)且不需要提交任何數(shù)據(jù)到主鏈上,從而避免了交易信息的泄漏。不過(guò)這種結(jié)構(gòu)雖然簡(jiǎn)單,但卻很不方便,用戶在使用過(guò)程中需要提前鎖定一部分的資產(chǎn)在通道內(nèi)部。此外,通道系統(tǒng)的爭(zhēng)端解決方案也存在著日蝕攻擊的風(fēng)險(xiǎn)。
結(jié)語(yǔ)
關(guān)于區(qū)塊鏈隱私保護(hù)的研究,方興未艾。各種新的技術(shù)和解決方案層出不窮。相信終有一天,一個(gè)完善的解決方案會(huì)將其完美攻克。