隱私與機密交易

Zcash 協議

Zcash 是第一個廣泛部署、以零知識證明提供完全私密付款的加密貨幣。它於 2016 年 10 月推出,源自由 Eli Ben-Sasson、Alessandro Chiesa、Matthew Green、Ian Miers 與 Eran Tromer 等人撰寫的學術論文 Zerocash(2014)。其核心構想是雙地址系統:透明的 t 地址行為如同比特幣,而屏蔽的 z 地址活在一個池中,發送方、收款方與金額都藏在 zk-SNARK 之後。幣可在兩個世界之間自由移動,這給了使用者選擇,卻也使隱私變成可選而非預設。

此協定歷經三代屏蔽技術的演進,每一代都是重大升級。Sprout(2016)是最初版本,使用 BCTV14 證明系統;它正確但緩慢且耗記憶體,其可信設定需要一場精心安排的多方「儀式」來產生參數,使任何單一參與者都無法得知那個能偽造貨幣的有毒廢料秘密。Sapling(2018)以 BLS12-381 曲線上的 Groth16 證明取而代之,把證明時間從數分鐘削到遠低於一秒、記憶體削到數百 MB,使屏蔽交易在手機上可行;它也把金鑰拆成支出、完整檢視與收入檢視三種,以利選擇性揭露。Orchard(2022,於 NU5 升級啟用)引入 Halo 2 證明系統,透過在 Pallas/Vesta 曲線循環上的遞迴證明組合,完全免除每電路的可信設定。

在機制上,一筆屏蔽 Zcash 交易維護一棵票據承諾的 Merkle 樹與一組已花費的作廢符。花用時以零知識證明「你擁有某張承諾在樹中的票據」並公佈其作廢符以防雙重支付,同時為收款人建立新的票據承諾。相較之下,透明交易只是可稽核的比特幣式轉帳。Zcash 也有明確的貨幣政策,採 2,100 萬枚上限以對映比特幣;在早期,它有一份「創辦人獎勵」(後改為開發基金),把一部分區塊獎勵導向開發組織。

誠實的批評在於採用率。Zcash 歷史上大多數活動都是透明的,使屏蔽匿名集比密碼學所能支撐的更小,且許多交易所只支援 t 地址。統一地址、以及推動「預設屏蔽」錢包等升級正試圖修正此事,因為零知識隱私的強度終究受限於「實際使用屏蔽池的人數」。

一位注重隱私的使用者把 10 ZEC 從 t 地址屏蔽進池中,等待,接著在數週內進行 z 轉 z 付款,最後解屏蔽到一個全新的 t 地址。鏈上看得見屏蔽與解屏蔽,但內部的 z 轉 z 流動——誰付給誰、多少——被 SNARK 隱藏,前提是金額與時間沒有被輕易關聯。

屏蔽進、私密交易、解屏蔽出——隱私只在 z 轉 z 的中段成立。

一個常見誤解是持有 ZEC 就自動隱私。其實不然:放在 t 地址裡的價值與比特幣一樣透明。隱私只在資金處於屏蔽池內時適用,而進出往返可能透過時間與金額洩漏。