有四種私人資訊在加密貨幣交易中可能洩漏:傳送者、接收者、金額、以及IP地址。如果這四種資訊都能成功隱藏,不被第三方觀察者發現,那麼,交易就具有完全隱私。
正如表1所示,隱私有它的範圍。在這個範圍中,一端是不隱藏以上所有四種資訊的交易,例如比特幣和以太坊交易。另一端則是Zcash的Sapling交易,它可以隱藏上述四種資訊(可以結合混淆IP的技術如Dandelion和Kovri)。Zcash的zk-SNARK 架構允許傳送者將隱藏金額的代幣傳送給匿名的接收者,同時不會在區塊鏈上留下任何可識別資訊,也不會洩漏到網路上。理論上來說,它們是完全的隱私。
儘管Zcash已有近3年曆史,但只有5%的ZEC使用SNARKs進行儲存,在這5%中,還有一半是採用傳統的SNARKs。大約95%的ZEC儲存在透明的地址中,它們無法提供隱私。2019年中,儘管加密市場總體上有了反彈,而ZEC是個例外。
儘管有希望,但市場已經作出反映:Zcash的Sapling交易所提供的隱私並沒有讓ZEC更有價值。
有幾個原因。
首先,加密貨幣的核心創新是這樣的一種概念:無須第三方信任的程式執行、輕鬆可驗證的稀缺性。由於來自各種文化和各行各業的人們都可以驗證他們的代幣,上述特性可以實現社會可擴充套件性,它是作為已知整體的確定部分。不幸的是,根據定義,完全隱私會妨礙完全的可審計性。
2018年3月,Zcash在其加密學中發現一個bug,該漏洞允許無限增發。正如Zcash基金會自己承認的那樣,在不贊成Sprout地址之前,不可能知道是否有人已經利用了這一點。使用者可以驗證有多少代幣傳送到隱藏的池中,但無從知道這些代幣是否被惡意行為者任意增發。完全隱私交易可以防止投資者驗證Zcash是否如它被認為的那般稀缺。
其次,最佳化隱私導致Zcash付出沉重代價。每次建立一個完全的隱私交易,為了產生礦工可以用零知識證明驗證的證明,傳送者必須進行一系列確定的計算步驟。這些步驟在計算上是昂貴的,並且Sprout版本過於笨重,無法被廣為採用。Zcash團隊針對代幣轉移進行明確的最佳化,他們程式設計了Sapling版本,並避開任何額外的功能,例如以太坊的有狀態的智慧合約,或門羅的多重簽名合約(儘管這些將來也許會有。)更高效的完全隱私交易導致Zcash失去了可程式設計性。
隨著2016年和2017年肆意的牛市泡沫結束,今天的市場更偏好更少隱私、更多安全性、可程式設計性以及可證明稀缺的資產,例如比特幣和以太坊。
儘管如此,看上去無國界貨幣的未來將是完全透明的。抗審查要求一定程度的財務隱私。那麼,現在的問題是:怎麼才算是足夠的隱私?
“在人群中消失”的隱私
比特幣和以太坊社羣都非常努力以將原生隱私帶入到它們的鏈中。它們沒有進行“完全隱私”的最佳化,而是推動“在人群中消失”的隱私——這種策略由Tor網路推動並流行開來。
“在人群中消失”的隱私是指其交易符合一組規則,這使得觀察者很難辨別交易的實際傳送者、接收者以及特定交易金額。遵守這些規則的交易越多,人群越大,觀察者就越難辨別這些交易。
與完全隱私交易相比,此策略透過為使用者混淆帶來安全,因為第三方觀察者可以看到發生了交易,但無法清楚知道傳送者、接收者以及交易金額。所有的宣告充其量都是概率性的,在大多數情況下,傳送者和接收者維持合理的可否認性。
比特幣持有者則使用CoinJoins作為他們在“人群中消失”的工具。
CoinJoins於2013年由Greg Maxwell首次提出,其中的交易涉及到多方參與者,他們將其多個單輸入和單輸出的交易組合為單個多輸入和多輸出的交易。這打破了傳送者和接收者之間的直接連結,並且如果所有的輸出大小都相同,它就混淆了誰接收多少比特幣。信任最小化的與CoinJoins協調的應用,如Wasabi錢包和Samourai錢包,近期備受歡迎。
同樣,CoinJoins並非是完全隱私的技術,因為觀察者可以分辨出哪些代幣進出混幣者中。但,這種型別的增長提供足夠大的人群,以至於尋求隱私的使用者實際上可以實現“在人群中消失”。Chainalysis是一家著名的區塊鏈分析公司,它的客戶包括了FBI、DEA以及IRS,他們也承認他們“無法追蹤使用了混幣服務的代幣的軌跡”。
預設情況下,以太坊的底層相對於比特幣有更少的隱私性,因為它使用了基於賬戶的模型,而不是基於UTXO模型。這意味著單個交易地址會重複使用多次,而不是每次交易產生新地址。
不過,相對於比特幣,智慧合約平臺有個優勢是它允許使用更高階的交易型別。可以編寫這樣的智慧合約:它為傳送到其中的所有資產提供“消失在人群中”的隱私。它甚至還可以編寫能夠實現完全隱私的智慧合約。如今,有好幾個支援隱私的智慧合約案例正在主網上執行,且還有更多的在開發中。
以太坊的“混幣器”如Argent的Hopper、Heiswap以及Tornado,它們呈現“在人群中消失”型別的隱私,其效果堪比比特幣CoinJoins的隱私。其中,使用者可以將固定金額的特定資產(如0.1ETH或10DAI等)存進智慧合約,並等待其他大量使用者存入相似大小的代幣,從而構建一個大型的匿名組,然後將他們原來金額的代幣提取到新地址,而新地址跟原來地址不產生連結。因為面額必須是剛好的,這些解決方案很難吸引大量的儲存,這限制了它們擴充套件為可持續獨立業務的能力。
Aztec協議已經開發出一組智慧合約模組,它支援機密資產、隱藏地址、零值輸出,特別是旨在以太坊上構建“在人群中消失”的隱私資產池。使用者需要將其公開資產傳送到智慧合約,合約會將這些資產的隱私版本注入隱私池,並分配給使用者新的交易用隱私地址。隱私池中的資產越多,人群越大,提供給所有參與者的保護就越強。
為現有區塊鏈提供隱私的競爭不僅僅是透過layer-2方式增加。在不久的將來,像Decred和Tezos這樣具有強大治理能力的較小型公鏈將新增協議原生的隱私功能。像比特幣和以太坊一樣,這些社羣看到了隱私交易的價值主張,他們正在努力為社羣提供隱私功能,但不是啟動原生的財務隱私作為其核心產品。此外,Tezos社羣正在直接複製Zcash的Sapling工作。
所有這些在公鏈上的工作都在試圖最佳化當前“在人群中消失”的黃金標準:門羅。儘管只有5%的ZEC是隱蔽交易的,而在預設情況下,100%的XMR是根據一組透過混淆建立安全的規則來進行轉移的。
門羅交易使用三種原語來混淆傳送者、接收者以及金額:環簽名、隱蔽地址、環機密交易(RingCT)。環簽名支援傳送者用11個使用者的金鑰來簽名交易,從而掩蓋其金鑰。隱身地址支援接收者的每筆交易使用一次性的地址,從而隱藏其真正的公鑰。RingCT允許對其交易金額進行隱蔽處理,但可以驗證不會造成通脹。
由於所有交易被迫使用這些功能,因此,所有XMR都屬於同一匿名集,並在相同的人群中消失。儘管如此,門羅在2018年熊市中的表現並沒有比Zcash好多少。
儘管門羅交易的靈活性比Zcash稍微好些,但有狀態的智慧合約仍然是不可能的。儘管可能還需要大量的工程開發,但最近的研究突破使得HTLCs(支援像閃電網路這樣的layer-2解決方案)成為可能。對於門羅來說,遺憾的是,他們的開發者社羣不大,資金不充足,這意味著新功能開發是相對靜止的。
無論底層鏈如何,“在人群中消失”的隱私只能提供可行的可否認性。人群越大,可否認性就越可行。
原來的問題是:多少隱私才算足夠隱私?現在變成:如果對手想對使用者的交易進行匿名處理,如果交易是在Wasabi錢包的比特幣匿名集vs.Aztec的以太坊匿名集vs.門羅的匿名集中進行,人們不得不花費多少?
去匿名化的成本
今年早些時候,研究者提出了針對門羅的FloodXMR攻擊,該攻擊利用它環簽名選擇過程的某些方面,僅僅花了1700美元,就對它超過一年的交易的50%進行了去匿名化。門羅社羣質疑該成本,稱其成本太低了。他們同樣也質疑其方法,說分析過於簡化,沒有考慮到任何現實世界的情況,如多次攻擊同時發生,或價格的波動。
本節的目的不是複製FloodXMR攻擊,而是利用其原理來構建通用的思考框架:如何考慮非私有鏈上的隱私池。攻擊的基本結構如下:每天在門羅上進行特定金額的交易。
這些交易全部都混在一起,因此沒有一方可以知道誰給誰傳送了多少,除了他們自己之外。然而,由於所有交易是公開的,且在環簽名模式中地址被重複使用,因此攻擊者自身可能大量參與這些交易。
透過這樣做,攻擊者已經極大降低了匿名集,且將更容易來確定每個交易的實際傳送者和接收者,從而有效地對交易進行去匿名處理。具體來說,根據上述的報告,“控制一年內生成的交易輸出金鑰的75%的惡意行為者能追蹤到同一時期內建立的所有交易輸入的47.63%。”
如果做出某些假設,那麼,這種攻擊可以延展到比特幣的CoinJoin隱私池以及以太坊的Aztec協議隱私池。在過去12個月的大部分時間中,CoinJoins在比特幣交易量中比例已經佔到5-10%。
假定給定隱私池中的平均交易費用、尋求隱私交易的次數、主鏈市值的百分比保持不變,那麼進行去匿名處理的成本是:
成本=(平均交易費用)*(平均每天新交易數)*1.25*(隱私池中的市值佔比)*365
表2顯示了BTC的Washabi錢包池、ETH的Aztec池(假定它佔有5%的以太坊市值)、XMR的攻擊成本,使用的從2018年10月19日到現在的平均值。
另外一種檢視去匿名處理所需成本的方法如表3所示。在這裡,我們確定在以太坊或比特幣的隱私池中需要持有多少市值比例,才能達到與門羅類似的去匿名處理成本。
當然,這種高層級的分析忽略了攻擊者如何接近每條鏈的很多細微差別。它不在於提供完全確切的數字,但可以給出基本的感受:這些“在人群中消失”的隱私方案實際上是什麼樣的級別。市場應該對這些數字有所關注,但要理解,鑑於它們更大的市值、交易量以及交易費,在比特幣和以太坊中的隱私池將很快會比攻擊整個門羅匿名集的成本更高。
不用推測未來,其中量化市場是如何看待當今隱私的一種方法是那些最需要隱私交易的使用者(暗網使用者)最常使用哪種加密貨幣。門羅被認為是當前最具有隱私的加密貨幣,因此大家可能會認為它依然佔據統治地位;然而,CipherTrace發現,只有不到5%的暗網交易使用的是門羅,而使用最多是比特幣。
結論
加密貨幣存在的理由是提供一種無須依賴可信第三方即可實現的價值交易的數字方法。加密貨幣要成為全球的無國界的貨幣必須可抗審查。而其前提是財務隱私。加密貨幣的隱私之戰就像是跟那些尋求去匿名化的加密使用者之間發生的軍備競賽,但它必須贏,因為只有這樣加密貨幣才能成功。
遺憾的是,正如我們上面描述的,預設情況下,實現完全隱私交易的成本太高了,如Zcash。它去掉了加密貨幣的另一個核心價值主張:無須許可地驗證整個交易歷史中沒有發生雙花和沒有增發的能力。沒有這種驗證的屬性,沒有加密貨幣能在社會層面實現擴充套件,以成為全球無國界的貨幣。
因此,獲勝的加密貨幣必須實現某種版本的“在人群中消失”的不完全隱私,且它是構建在可公開驗證的賬本之上。如表2和表3所展示的那樣,比特幣和以太坊社羣能將隱私池附加到其原生公鏈上,並且能很快讓它們的去匿名處理攻擊成本高於整個門羅鏈,這是因為它們有更高的交易量和交易費用。顯然,隱私是無國界貨幣的特性,而不必是核心產品。
隱私命題必須以此為前提進行理解。不是投資那些最佳化匿名交易的底層加密貨幣,而是開始資助那些基於比特幣或其他智慧合約平臺上提供隱私即服務的公司。Layer-2解決方案將預設為其交易者提供隱私,這可能驅動那些重視匿名交易的人離開主鏈。
從根本上講,在底層鏈上實現完全隱私過於昂貴,而這就是像Wasabi錢包、Samourai錢包、Argent、Heiswap、Tornado以及Aztec協議這些業務的機會。