你願意公開你的錢包地址並且讓所有人都知道你有多少錢嗎?你願意讓所有人知道你的投資偏好、每筆支出嗎?我想很多人是不願意的。要實現這些數據的隱私保護,就需要用隱私協議。
市場上一直有以隱私為賣點的數字貨幣,包括DASH、XMR、Zcash、Grin、Rose(Oasis Network)、FRA(Findora)、PHA(Phala network)、SCRT(Secret Network)等,加密行業發展的十幾年中,隱私板塊一直都佔有一席之地。
如果進一步將隱私賽道進行細分,可分為隱私計算網絡、隱私交易協議、隱私應用、隱私幣等四類。其中隱私幣發展最早,隱私應用中的Tornado目前被採用較廣,隱私交易協議和隱私計算網絡目前最受關注。
本文篇幅有限,只從技術發展和演變的角度漫談隱私交易相關的技術實現方案的發展情況。
加密貨幣發展至今,主要有以下四類實現隱私交易的技術方案:
一、CoinJion
CoinJoin:CoinJoin是一種混幣機制,從不同的發送方那裡獲取代幣,並將它們組合成一筆交易。第三方將代幣打包發送給接收方。在用戶端,每個接收方都會在一個從未使用過的地址中獲得他/她的代幣。以此來降低特定交易被追踪的可能性。
DASH幣是採用CoinJion技術實現隱私交易的典型案例。 DASH幣誕生於2014年,並非以隱私為唯一目的,而是將隱私交易作為提供給用戶的一種選擇,用戶可以選擇採用PrivateSend功能來進行隱私交易,也可以選擇正常交易。
在機制方面,DASH網絡通過更高的獎勵收益,鼓勵礦工充當主節點,每個主節點礦工都有1000個DASH幣作為緩衝資金。每個發起交易的用戶都可以使用這些緩衝資金,從而達到“混幣”的效果。由於混幣的存在,交易信息被打亂,難以追踪,從而達到隱私保護的效果。
二、隱匿地址+環簽名
隱匿地址:創建隱匿地址意味著每次接收加密貨幣時都會創建一個新地址。它確保外部各方無法將支付的地址與永久錢包地址聯繫起來。
環簽名:區塊鏈交易需要數字簽名來驗證簽名人是發送方,因為每個用戶的簽名都是唯一的,所以當用戶簽名時就不難追溯到與簽名人所進行的交易。環簽名策略是將簽名與其他環成員的簽名結合在一起:環成員簽名的數量越多,直接將簽名人與其交易聯繫起來就越困難。
門羅幣XMR是採用隱匿地址+環簽名的組合模式實現隱私保護。門羅幣並非選擇性隱私,而是完全隱私。門羅幣為每個錢包所有者提供一個新的私有視圖密鑰、收件人地址和一個私有消費密鑰。而且XMR挖礦用一般電腦CPU即可完成,不需要專業礦機,這一定程度上讓XMR更加去中心化。
門羅幣為了進一步提高隱私保護的有效性,發展過程中還進行了多次技術升級。為了將交易金額隱藏,RING-CT(環機密交易工具)應運而生;使用了RING-CT後,門羅區塊鏈的隱私性能獲得提高,但可擴展性方面有所犧牲,故而在後來又引入了Bulletproofs這種零知識證明協議,它提高了XMR的交易規模、減少了80%的驗證時間。
三、Mimblewimble
Mimblewimble這個詞來源於《哈利波特》中的咒語“混淆咒”,主要有Grin和Beam兩個項目使用了這個隱私協議。 Mimblewimble所用技術包括了Confidential Transaction、CoinJoin和Cut-through。
Mimblewimble協議是在匿名性和可擴展性之間找Tradeoff的方案,這是一個為基於output模型的公有賬本提供加密貨幣隱私性的設計方案,並不涉及共識層,所以可用在幾乎任何共識規則上。
最初提出Mimblewimble的目的是為了給比特幣提供隱私性。使用該技術後,可以讓賬戶歸屬、交易關聯和交易金額隱藏起來;還可以“洗幣”,在比特幣中有些幣會被標記為“贓款”,很多機構會拒絕接收這些幣,通過MimbleWimble技術可以實現洗幣效果。
四、零知識證明類
零知識證明(Zero-Knowledge Proof),是指證明者能夠在不向驗證者提供超過陳述本身有效性的信息的情況下,使驗證者相信某個論斷是正確/真實的。
零知識證明首先是由Goldwasser、Micali和Rackoff在1989年進行理論化。目前零知識證明在區塊鏈行業主要用於兩個方面:隱私保護、可擴展性。本文主要介紹零知識證明在保護隱私方面的應用。
零知識證明用於隱私保護,最早是在Zcash上進行實踐,後面逐漸有Aztec、Manta Network、StarkWare等諸多項目採用零知識證明機制,並演變了很多項新技術。
通過“阿里巴巴和四十大盜”的例子來介紹零知識證明機制:
阿里巴巴是證明者,大盜是驗證者。大盜抓住了阿里巴巴,要他說出打開藏著寶藏的山洞的咒語,否則就要殺他。如果阿里巴巴直接說出咒語,有可能會因失去利用價值而被殺死;如果阿里巴巴堅持不說,大盜就會認為他不知道咒語,也會殺他。阿里巴巴想了個辦法,要求大盜距離他一箭之地,如果阿里巴巴念咒語打不開山洞的石門或者逃跑,大盜就可以用弓箭射死他。
通過這種方式,阿里巴巴能夠在距離大盜足夠遠(大盜聽不到咒語是什麼)的位置,證明他確實掌握咒語。這個過程阿里巴巴(證明者)沒有直接透露咒語是什麼,但是能夠使大盜(驗證者)相信某個論斷(阿里巴巴掌握咒語)是真實的。
zk-SNARK
zk-SNARK的全稱是" Zero-Knowledge Succinct Non-Interactive Argument of Knowledge",中文名稱為“零知識簡潔的非交互知識論證”。 zk-SNARK是以色列理工學院的Ben-Sasson等人在2014年的Zerocash論文中提出的,是目前應用最廣泛的零知識證明類隱私技術,直接部署zk-SNARK算法的知名項目有Zcash、Loopring等。它允許人們證明自己擁有特定的信息,而無需透露信息的內容。
zk-SNARK是一個將零知識證明機制轉化成計算機程序語言的技術。基本邏輯如下圖:
zk-SNARK具體實現了怎樣的隱私呢? zk-SNARK實現了完全的隱私,不僅隱藏了交易雙方的地址和交易的金額,而且連節點都不知道交易的內容。但zk-SNARK的缺點是它需要可信初始設置(trusted setup),這個設置無論怎樣設置,終歸有些潛在安全隱患。在zk-SNARK的基礎上,為了提高隱私性的同時也兼顧交易容量和交易成本的優化,後面又衍生出了Bulletproofs、zk-STARK、Sonic、PLONK、Supersonic等新型零知識證明。 Bulletproofs相較於zk-SNARK,Bulletproofs 不需要可信初始設置,但驗證Bulletproofs 比驗證zk-SNARK 證明更耗時,Bulletproofs被應用在了XMR項目中,以提高XMR的交易規模並減少其80%驗證時間。 zk-STARKzk-STARK的英文全程為Zero-Knowledge Scalable Transparent Argument of Knowledge,“零知識可拓展的透明知識論證”。 zk-STARK是由StarkWare研發的,使用新穎的密碼學證明和現代帶書來強制區塊鏈上計算的完整性和隱私性,StarkEx採用了zk-STARK技術。 zk-STARK允許區塊鏈將計算轉移到單個鏈下STARK證明者,然後使用鏈上STARK驗證器驗證這些計算的完整性。相較於zk-SNARK,zk-STARK被認為是一種更快、成本更低的技術實現,因為其計算量增加,但證明者和驗證者之間的通信量保持不變,因此zk-STARK的整體數據量要遠遠小於zk-SNARK證明中的數據量。而且zk-STARK不需要初始可信設置,因為通過抗碰撞哈希函數,它們依賴於更簡潔的加密技術。總體而言,zk-SNARK在完善和採用方面取得了重大進展,而zk-STARK則填補了zk-SNARK證明的許多缺陷(更快、成本更低、不需要初始可信設置)而被認為是協議的改進版,但zk-STARK採取鏈下計算鏈上驗證的方式,在安全性方面似乎不如zk-SNARK。 Sonic倫敦大學的Sarah Meiklejohn、愛丁堡大學的Markulf Kohlweiss和Zcash的Sean Bowe提出了一種名為Sonic的零知識證明協議,Sonic是一種通用的SNARK,也就是說,只需要一個設置,它就可以驗證任何可能。 Sonic的出現,讓零知識證明的演變向前邁出了一大步。不過Sonic的速度降低了,因為與非通用SNARK相比,Sonic的證明構建時間增加了約2個數量級,所以目前並沒有知名隱私項目是採用Sonic技術方案。 PLONKPLONK是Aztec協議的CTO Zachary Williamson、首席科學家Ariel Gabizon(Protocol Labs及前Zcash)合作開發的高效通用zk-SNARK。 Ariel Gabizon和Zac Williamson在倫敦Binary District研討會上的一次偶然會面中研發了PLONK。這是一種全新的高效通用zk-SNARK,PLONK只需要一個可信設置,所有程序都可以重複使用這個設置,這項技術還獲得了Vitalik轉發。 PLONK有多快?在完全標準的硬件上,PLONK能夠在23秒內通過超過100萬個門的電路。這裡沒有服務器場或HPC集群——這些數據來自Microsoft Surface平板電腦。以Aztec為例,簡述基於PLONK的隱私協議Aztec的工作原理:首先,Aztec需要一個可信初始設置——Ignition CRS。最初的時候Aztec在全球隨機召集了200名參與者,分別獲得Ignition CRS。這200名參與者都會創造隨機性——這是Aztec證明安全性的基礎。 (這就相當於有200個人洗牌,只要不是200個人全部勾結了,只要其中有一個人是誠實參與者,就能夠保證牌的隨機性,也就是系統的安全性。)然後,Aztec常規的隱私交易可理解為一個UTXO(如下圖)。類似比特幣的運作方式,但Aztec的區別在於交易需要加密。所以,以太坊會驗證這個UTXO是否正確——即檢查60+40 =75+25。
具體怎麼檢查呢?先檢查input note = output note;為了防止環繞攻擊(例如:10 = 11+ -1),又設置了Range Proof(範圍證明),所以Aztec改為部署集合成員證明——交易要想獲得Aztec密碼引擎(ACE)的批准,用戶需要證明它們形成了來自Codex的輸出註釋。這一系列之後,才能成功驗證UTXO正確與否。 Aztec要實現的隱私,包括三個方面:一是數據隱私,Aztec可以將交易金額進行加密隱藏;二是用戶隱私,觀看網絡的人無法再確定發件人和收件人ID;三是代碼隱私,可以將使用了Aztec SDK的dApp的智能合約代碼也隱私化。其中第一項已經實現,後兩項尚未實現。 SuperSonicSuperSonic技術結合了Sonic和DARK證明,是個無需可信設置的短證明,100萬邏輯門的前提下可以將證明大小壓縮到10-20 KB,甚至還有優化空間,該技術首次被應用在金融公鏈Findora上。
零知識證明系列技術方案在驗證證明大小、驗證速度、是否需要可信設置和應用案例方面的對比如下表:
總體而言,這些高效通用SNARK的出現,允許通過最多一個MPC設置實現Web3的隱私和擴展,使得我們能夠在所有用戶設備(手機、平板電腦等)上生成隱私交易,也可以在公共網絡上有效地執行這些隱私交易。從而大大推動了隱私領域的發展步伐。
根據隱私交易領域的發展現狀,可能在不久的未來會呈現以下兩點趨勢:1、當前階段隱私交易使用率還較低,隨著技術更迭有望獲得提高。隱私交易使用率較低主要有三個原因:一是技術門檻過高,早期的隱私交易對大多數普通用戶而言使用體驗不友好,儘管Zcash、XMR之類的隱私幣已經存在多年,但絕大多數普通人都沒真正用過它們;二是隱私交易的需求還沒有被普及,以前談起隱私交易,大家潛意識裡都認為只有見不得光的一些交易才需要隱私交易,人們對於隱藏自己在鏈上的交易、轉賬/支付等行為及金額的意識還比較弱,隨著DeFi等鏈上交易的爆發,人們對鏈上交易的隱私保護的意識正在覺醒;三是早期的隱私協議並沒有提供用戶真正想要使用的貨幣,比如ETH、USDC、DAI主流鏈上資產等,普通用戶為了保持隱私而特意去選擇使用隱私幣的概率不高。 2、主流區塊鏈部署隱私功能,或許是隱私領域發展的最終趨勢。隱私幣作為一個獨立的存在,可能不會再受到追捧和歡迎,尤其是經過前面幾年各國監管的圍追堵截。例如,受FATF規則影響,2019年時Coinbase UK下架了Zcash,而OKEx韓國則下架了Monero、Dash、Zcash、ZCache、Horizon和SuperBitcoin等六種加密貨幣。但隱私交易這個需求是真實存在的,而且一直會有這個需求,有需求就有市場。根據近期行業內最受關注的隱私項目類型來看,在比特幣、以太坊、Polkadot等為代表的主流區塊鏈中納入隱私保護功能的方式可能會成為一種趨勢。在比特幣交易中使用Coinjion技術,這是目前使用較廣泛的用於隱藏交易信息的混幣器(Mixers)服務,Mixers是通過第三方將比特幣發幣方地址和收幣方地址的聯繫打亂從而隱藏交易信息的一種服務。在以太坊上關注度最高的隱私解決方案是零知識證明系列(zk-SNARK、zk-STARK等)。 Vitalik曾講過“零知識證明是最強大的隱私解決方案,儘管技術實現難度最高,但在保護在以太坊網絡的隱私性和安全性上,效果最佳。”而零知識證明類隱私解決方案中,較受推崇的當屬Aztec的PLONK技術。在Polkadot生態也有一個較受關注的隱私交易項目——Manta Network。它是由P0xeiden Labs構建的zk-SNARK類型(Plonk with Lookup)的隱私協議,Manta Network部署在Polkadot,其測試網Calamari則部署於Kusama,據該項目官網規劃,未來還計劃在Avalanche、Near等公鏈部署相應隱私協議。 Manta Network計劃推出一個多資產去中心化匿名支付協議MantaPay,以及一個由zk-SNARK提供支持的AMM機制的去中心化交易協議MantaSwap。總而言之,隱私交易是個真實存在的市場需求,這個賽道的發展值得持續關注。隨著鏈上交易的數量和資金量的增長,這部分市場需求也會相應增長。參考資料:1、https://vitalik.ca/general/2022/06/15/using_snarks.html2、https://developers.aztec.network/3、https://emphasized-seed-161.notion.site /PVM-P0xeidon-VM-primer-5bf16a3ef16e4a8696e99ede6d71ea95