文章來源:巴比特
作者:Reuben Yap
本文宗旨在于簡要概述當今主流加密貨幣中實施的匿名機制,特別是Zcoin使用的Zerocoin協(xié)議如何工作的。
區(qū)塊鏈匿名是一個特別困難的事情,因為公共區(qū)塊鏈的設計使得所有的交易都是透明的,加密貨幣的供應可以被公開驗證。匿名機制必須確保這些要素得到保留,因此在維護可驗證性的同時保護匿名是相互矛盾的。要了解Zcoin背后的創(chuàng)新,我們需要研究區(qū)塊鏈匿名技術(shù)的歷史。
1 資金池混幣和混幣器混幣
用于:達世幣Dash
優(yōu)點:不需要特定的共識就可以在大多數(shù)加密貨幣上運行
相對簡單即可實施
輕量化
缺點:只能提供基礎的匿名
要求在線混幣
早期需要可信的第三方
人們試圖實現(xiàn)匿名的第一種方法是通過在資金池中混合自己和他人的幣來達到目的,混合之后很難證明誰的硬幣最初屬于誰,從而提供某種程度的匿名。當然,前提是相信別人不會偷你的幣。
混幣器是這種混合理念的改進,消除了匿名發(fā)起者竊取幣的可能性,它在Darkcoin(現(xiàn)在稱為Dash)中被廣泛使用。但是混幣器仍然有很多缺點。
(1)因為后臺可以記錄信息,并且知道每個用戶的輸入地址和他們正在接收的地址,所以您需要信任匿名發(fā)起者。這個問題可以通過使用匿名數(shù)字簽名來避免,因此混幣器的匿名強烈依賴于以匿名方式(例如通過Tor網(wǎng)絡)登陸。
(2)要求參與混幣的人員在線進行混幣。如果雙方就混幣的數(shù)額不能達成一致的話則必須推遲。
(3)匿名受到人數(shù)限制。Dash的混幣(private transactions)的一輪只涉及3個參與者,但是這個過程可以重復。
(4)最近的研究(https://arxiv.org/pdf/1708.04748.pdf)顯示,即使經(jīng)過多輪混幣器混合,如果用戶的錢包在進行支付時不清除瀏覽器cookie的話,可以通過技術(shù)手段識別用戶的錢包,因為混幣只會掩蓋地址之間的交易鏈接,但不會完全破壞它們。
(5)很容易破壞混幣器運行,并延遲其他參與者完成混幣交易。
混幣器的其他改進,例如CoinShuffle++不再需要可信的第三方,但仍然受到混幣器的其他缺點的限制,如有限的匿名、參與者必須在線等。
混幣器匿名的主要好處是它們相對簡單,并且在加密貨幣的基礎上工作,而不需要使用特定的共識規(guī)則。通過適當?shù)念A防措施,混幣器可以提供基礎匿名。
Tumblebit也是一個非常有希望的改進混幣器匿名的方案,但超出了本文的范圍。與我們將在下一步討論的其它匿名方案相比,這是一個沒有在協(xié)議級別實施的匿名計劃,但仍然需要其他人提供用于混合的資金。它的主要優(yōu)點與混幣器相同,可以在比特幣或任何其他數(shù)字貨幣上實現(xiàn),而不需要改變其協(xié)議。
2 .Cryptonote和環(huán)簽
用于:門羅幣Monero
優(yōu)點:
混合自動完成
默認情況下可以匿名實施
隨著新的混幣加入和時間的推移,匿名性會增加
使用環(huán)簽執(zhí)行時可隱藏交易金額
精心研究的密碼學
缺點:
因為其區(qū)塊鏈數(shù)據(jù)巨大且不可修剪,因此可擴展性較差
由于科技進步或執(zhí)行錯誤的原因,可能會被解密
無法利用現(xiàn)有的比特幣生態(tài)系統(tǒng),需要單獨的工作
環(huán)簽大小受限
我們將要探討的下一個匿名方案是在Monero等Cryptonote加密貨幣中使用的環(huán)簽,環(huán)簽方案大大提高了混幣器方案的匿名性。在環(huán)簽中,某人簽署了交易,只能追蹤到一個組而不能具體追蹤到組中的這個人。比如,可知某個“高級白宮官員”簽署了環(huán)簽,但不能追蹤到具體哪個官員簽署了這條信息。
Cryptonote和環(huán)簽可以自動實現(xiàn)匿名功能,無需其他用戶指定想要和誰混合,也無需等待其他人提供資金,因為它只是掃描區(qū)塊鏈以便使用輸出。因為沒有混幣器,所以你不需要信任任何人。Monero最近還實施了RingCT (RingConfidential Transactions),也隱藏了交易金額。
該加密技術(shù)的主要缺點是,它的交易——特別是與RingCT的交易——非常大,占用了幾千個字節(jié),這大大增加了存儲區(qū)塊鏈所需的存儲空間。目前沒有任何辦法可以精簡已形成的加密的區(qū)塊鏈。使用與比特幣完全不同的代碼庫,也意味著第三方必須做更多的工作,將Cryptonote加密技術(shù)整合到他們現(xiàn)有的生態(tài)系統(tǒng)中。
目前在Cryptonote加密貨幣中實現(xiàn)的環(huán)簽實際大小(你所使用的其他輸出的數(shù)量)上也有限制,因為隨著環(huán)的尺寸的增加,交易數(shù)據(jù)的大小線性增長。這就是為什么在默認情況下,Monero的默認環(huán)大小是4。實際上,使用不同的環(huán)大小,默認情況下,有可能會讓你去匿名化。這意味著,在每筆交易的基礎上,匿名性受到環(huán)參與者數(shù)量的限制。區(qū)塊鏈分析師雖然可能無法證明交易是有關(guān)聯(lián)的,但他們可以計算出交易關(guān)聯(lián)的幾率。
另一種對此種加密技術(shù)的批評是,如果它的環(huán)簽技術(shù)有一個bug,或者一個相當強大的量子計算機,那么整個區(qū)塊鏈的記錄就會被去匿名化和可追溯,并且無法在事后修正。就像名為Shadowcash的Cryptonote加密貨幣,因為bug導致所有區(qū)塊數(shù)據(jù)全部被解密。
另外還需要注意的是,使用環(huán)簽來隱藏交易金額,犧牲了供應可審核性?!肮蓪徍诵浴笨梢则炞C在交易過程中,是否有新的加密貨幣被秘密生成,并確定在某一時刻加密貨幣的具體數(shù)量。在Monero的“環(huán)簽”的實現(xiàn)中,如果有人打破了支撐環(huán)簽的離散對數(shù),他就可以在沒人知道的情況下偽造加密貨幣,雖然用目前的技術(shù)還很難做到。
盡管有這些缺點,但Cryptonote今天已被證明是一種非常好的匿名技術(shù),它唯一公開慘敗的例子是Shadowcash,被全部解密,通過使用混合了零交易的Monero交易導致一個級聯(lián)效應,約87%的輸入被去匿名化。(https://eprint.iacr.org/2017/338)(隨后被新的交易所緩和)。Cryptonote加密技術(shù)解決了加密貨幣的許多問題,提供了良好的匿名性,但是作為代價,更大的交易規(guī)模和區(qū)塊鏈擴展性也更難實現(xiàn)。
3 Zerocoin協(xié)議和Zcoin
用于:Zcoin,PIVX
優(yōu)點:
不需要混幣
成千上萬個熔鑄和取回交易完全打亂了各地址通過交易建立起來的聯(lián)系,從而實現(xiàn)極高的匿名性
保留總量的可審核性
使用了高級的密碼學知識
缺點:
證明數(shù)據(jù)目前比較大
需要一個信任機制
不正確的操作或泄漏受信任的設置參數(shù)可能導致偽造zerocoin
在熔鑄和取回的時候,需要多加注意
現(xiàn)在,我們來看看Zerocoin。與之前的匿名方案不同,在使用零知識證明的情況下,Zerocoin協(xié)議完全打破了幣之間的交易鏈接。
簡單地說,零知識證明是你做某件事或知道某件事的證明,而不泄露任何其他信息。例如,要證明您知道密碼,而不需要實際顯示密碼。
Zerocoin的工作原理是,熔鑄掉你自己的加密貨幣(也就是所謂的零幣熔鑄),然后再兌換等量的做記號的新幣(被稱為零幣取回)。這些幣在沒有任何交易歷史的情況下出現(xiàn),與新挖礦而得到幣相似。這一證明是用來證明你確實燒過了加密貨幣,而沒有透露你燒過的具體加密貨幣信息,因此你有權(quán)贖回等量的新幣。
這意味著,與混幣和Cryptonote技術(shù)(匿名者的數(shù)量是由參與者的數(shù)量或環(huán)的大小所限制)不同,Zerocoin交易過程中將允許你和任何一個挖礦(或熔鑄)的人完全匿名,同時挖礦(或熔鑄)的人也即時獲得特定面額的加密貨幣。這就使得匿名者可以在成千上萬的人中使用零幣熔鑄和取回來擴大規(guī)模。此外,這些硬幣的交易環(huán)節(jié)也被完全打破,因為它們看起來完全是全新的硬幣,與之相比,之前的匿名方法只是掩蓋交易環(huán)節(jié)。
這種匿名模式也有一些缺點。為了獲得巨大的匿名性,同時打破交易鏈接,Zerocoin需要一次可信的設置來生成初始的參數(shù)。在Zerocoin中,有兩個被摧毀的大質(zhì)數(shù)。如果有人獲取這兩個巨大的質(zhì)數(shù),就可以憑空偽造出Zerocoin。為了解決這一問題,Zcoin使用了1991年的RSA質(zhì)數(shù)挑戰(zhàn)中的方法,在該挑戰(zhàn)中,密碼學專家生成并摧毀了兩個大質(zhì)數(shù),并為能在16年內(nèi)成功地將其分解的挑戰(zhàn)者提供了20萬美元的獎金,但無人能破解此難題。時至今日,RSA-2048方法仍然是我們所知的最好的方法,RSA-2048方法仍然被廣泛使用,直到某天能夠?qū)iT破解此類難題的量子計算機的出現(xiàn)。
值得注意的是,對這兩個質(zhì)數(shù)成功的分解不會影響零硬幣的匿名性,因為它只影響熔鑄。此外,Zcoin的總量可查,這樣就可以監(jiān)測硬幣的熔鑄過程。在項目前期由于編程中的一個bug(并非RSA被破解),硬幣的熔鑄出現(xiàn)問題,但我們及時檢測到了bug并進行了修復,因此可見,總量可查是非常重要的。
Zerocoin的另一個限制是,熔鑄和取回只能處理固定面值的貨幣,相比環(huán)簽交易,零幣的零知識證明的數(shù)據(jù)大小是25kb。值得注意的是,不同于Cryptonote交易(所有交易都占用同樣大小的數(shù)據(jù)),只有匿名取回的交易占據(jù)了25kb數(shù)據(jù),而普通交易的數(shù)據(jù)大小與比特幣交易的數(shù)據(jù)大小相同。
錯誤的或可預見性的熔鑄和取回方式(有規(guī)律的熔鑄和取回,或者使用相同的IP地址來熔鑄和取回)可能會影響匿名性,因此使用時需要注意。
總而言之,Zerocoin提供了非常強大的匿名性,但為了實現(xiàn)該匿名,需要信任機制、區(qū)塊鏈上的存儲空間和額外的計算資源。為了移除信任機制和降低零知識證明數(shù)據(jù)大小,目前開發(fā)團隊正在研究和評估采用Sigma協(xié)議的可行性。
4 Zerocash and Zcash
如:Zcash,Zencash,Komodo
優(yōu)點:
在熔鑄過程和打破地址之間的交易鏈接方面可能是最好的匿名技術(shù)
驗證數(shù)據(jù)小,驗證速度快
隱藏交易金額
不需要轉(zhuǎn)換成普通硬幣,且匿名硬幣可以直接發(fā)送到對方。
缺點:
私密交易需要花費一段時間才能完成(在一臺功能強大的計算機上要花一分鐘左右)
由開發(fā)人員完成的復雜的信任參數(shù)
不正確的設置或泄漏受信任的設置參數(shù)可能導致偽造硬幣。
不能對供應進行審計,因此偽造很難被發(fā)現(xiàn)。
使用更新的密碼學
我們討論的最后一個匿名方案是ZCash中使用的Zerocash協(xié)議。Zerocash采用了零知識證明,并試圖改進Zerocoin協(xié)議。有了Zerocash和zkSNARKs技術(shù),匿名數(shù)據(jù)大小現(xiàn)在只有1 kb,并且可快速驗證。此外,所有交易金額都是隱藏的,在進行熔鑄時不需要使用固定的面額。Zerocash還允許人們將Zerocash的“零硬幣”直接轉(zhuǎn)移給對方,而不需要將其轉(zhuǎn)化為等價的基本硬幣。它的匿名方法也是之前所有匿名計劃中規(guī)模最大的一個,包含了所有鑄造的硬幣,而沒有考慮區(qū)塊鏈的面值。
粗略來看,就會覺得Zerocash技術(shù)超出了Zerocoin,然而,相對Zerocoin,它也有一些不足。
首先,Zerocash缺乏可審核性。和Zerocoin一樣,Zerocash需要一個信任機制,但Zerocash的設置要復雜得多。Zcash采用了一場涉及6人的多方儀式來完成設置,其參數(shù)泄露的唯一方式是,所有的6人相互串通,并保留相關(guān)參數(shù)。換句話說,你必須信任這6個人中的任何一位,相信他們摧毀了初始參數(shù)并且相信這個儀式被正確執(zhí)行。如果代碼中存在bug,或者密碼缺陷或多方信任設置的問題,攻擊者可以生成無限的Zcash,與Zerocoin不同的是,這種額外的供應是無法被檢測到的。因此,總量可查是非常重要的。
其次Zerocash使用一種zkSNARKs的新加密算法,它實際上只在Zerocash中使用。但是,相對RSA技術(shù),其并未經(jīng)過多年的使用和審查,也并未被廣泛使用。許多密碼學專家認為zkSNARKs的保密性相對較弱。
Zerocash的另一個主要缺點是,由于需要進行復雜的數(shù)學計算,因此,在一臺功能強大的計算機上,匿名交易的生成時間要比之前任何一種匿名方式要長得多,特別是對配置較低的計算機來說,這一過程太長。這使得人們無法廣泛使用它的匿名功能,也可能會不適用一些功能不太強大的系統(tǒng),比如移動設備。
因此,盡管Zerocash具備可能是最好的匿名性,但它以犧牲總量可查為代價,同時也包括如下缺點:復雜的可信設置,使用過于新的加密技術(shù),創(chuàng)建匿名交易需要很長時間。
5 其他匿名方案
在這里列出的所有區(qū)塊鏈匿名方案都得到了研究人員的好評,各種匿名方案都很容易理解。然而,現(xiàn)在的加密貨幣有好幾百種,但只有少數(shù)能真正實現(xiàn)匿名。以下是新的匿名機制是否可靠的關(guān)鍵因素:
它能提供區(qū)塊鏈的匿名嗎?
一些匿名貨幣聲稱具備匿名技術(shù),但在區(qū)塊鏈上完全看不到任何匿名保護。具體可見下文:(https://zcoin.io/the-difference-between-privacy-on-the-blockchain-and-hiding-your-ip-address/)。
專家撰寫的匿名保護機制是否被審查過?
看看他們的匿名計劃是否經(jīng)過密碼學家的審核,是否有學術(shù)論文引用它,許多程序都是由開發(fā)人員或程序員編寫的,而他們沒有任何的加密或信息安全的背景,其實現(xiàn)匿名技術(shù)的技術(shù)通常并不可靠。
它僅僅是利用現(xiàn)有技術(shù)的一個新名稱嗎?
一些項目將現(xiàn)有的匿名貨幣更名為自己的名字,并將其作為自己的名字進行發(fā)行,如果他們公開了原始的匿名技術(shù),這是可以接受的。
是否是中心化的?
如果依靠你信任別人來保護你的匿名計劃的話,它通常是一個糟糕的匿名計劃。
團隊是否理解這些匿名技術(shù)背后的密碼學?
除非你自己是專家,否則這很難確定。檢查他們的團隊,看看他們的團隊或者他們的顧問名單上是否有密碼學相關(guān)的研究經(jīng)歷。
6 總結(jié)
每一個匿名模式都有自己的利益和權(quán)衡取舍,我們相信,對這些匿名方案進行持續(xù)的探索和研究,會改善整個區(qū)塊鏈的匿名技術(shù)。
我們堅信Zcoin中使用的Zerocoin協(xié)議與其他匿名方案相比,提供了一個非常全面的匿名方案,它使用經(jīng)過驗證的加密技術(shù),同時還保持了可擴展性和可審計性。