Zcash 屏蔽池、統一地址及查看密鑰解說
了解透明池與 Sapling、Orchard 的分別、發送錢包如何在統一地址中選擇接收端,以及查看密鑰可以披露甚麼資料。
本指南內容池是帳本狀態,不是託管機構
簡短摘要
Zcash 不會自動隱藏每一筆轉帳。透明池中的地址及價值流向都是公開資料;Sapling 及 Orchard 屏蔽池會加密 note 資料,並以公開 commitment 和 nullifier 作共識檢查。統一地址可以打包多種接收端;一筆付款的私隱程度,取決於發送錢包選擇哪個接收端,以及價值經過哪些池。
池是帳本狀態,不是託管機構
Zcash 的池不是交易所,也不是替用戶保管存款的公司,而是受特定共識規則約束的價值狀態。透明池使用公開 UTXO。查看區塊鏈的人可以看到建立了哪個輸出、其後哪筆交易花費該輸出,以及公開金額。單憑地址未必能確認法律身份,但公開紀錄仍會顯示地址使用情況和價值流向之間的關係。
屏蔽池以 note 表示價值,而非公開 UTXO。網絡會記錄加密 note 資料、commitment 樹,並檢查各池的餘額。密碼學證明讓共識檢查交易有效性、價值守恆及防止雙重花費,同時一般觀察者不會像讀取透明輸出般看到接收人和 note 金額。Zcash 協議規格說明這兩種表示方式。
分清現行 Sapling、Orchard 與不能再加入新價值的 Sprout
Sapling 和 Orchard 是兩個獨立的屏蔽池,採用不同協議和 note commitment 樹;兩者餘額不是同一個可以互換的狀態。Sprout 是 Zcash 第一代屏蔽協議。ZIP 211 啟用後,Sprout 池不再可以加入新價值,但過往的 Sprout 交易仍會保留在區塊鏈紀錄中。
網絡狀態需要註明日期。官方 ZIP 索引指出,NU6.2 是最近一次已完成的 Mainnet 升級,於 2026 年 6 月 3 日在區塊高度 3,364,600 啟用。臨時漏洞緩解措施之後,NU6.2 以修正後的 circuit 規則重新啟用 Orchard 操作。NU6.3 及 Ironwood 池仍屬草案提案,並非現行 Mainnet 規則。參閱 ZIP 257、ZIP 索引及草案 ZIP 258。
加密 note 資料與公開 commitment 各有不同用途
屏蔽 note 將池內價值與接收人的花費權限連繫起來。價值、接收人資料和 memo 都會加密,讓持有相應收款資料的錢包可以解讀。區塊鏈儲存加密資料及對 note 的 commitment,而不是 note 明文。Commitment 讓網絡可以核實資料,同時毋須公開內容。
花費 note 時,交易會公開相應的 nullifier。花費人證明自己知道該 note 並公布 nullifier;網絡檢查這個 nullifier 是否曾經使用。觀察者會看到 nullifier 和 commitment 樹,但理應無法找出它對應哪個舊 commitment。這能防止雙重花費,但不代表所有共識資料都被隱藏。Sapling 和 Orchard 採用相同大方向,但密碼學元件和證明方式不同;花費仍須有相應的私密權限。
統一地址可以打包多種接收端
統一地址(Unified Address,簡稱 UA)是一串編碼地址,可包含 Orchard、Sapling、透明 P2SH 和透明 P2PKH 接收端。現行 Revision 0 UA 必須至少有一個屏蔽接收端。這串字元刻意設計成不透明格式,不能單靠外觀判斷內含哪些接收端。ZIP 316 區分已啟用的 Revision 0 和仍在提議中的 Revision 2。
發送錢包不會同時付款到所有接收端。Revision 0 的優先次序是 Orchard、Sapling、透明 P2SH,然後是透明 P2PKH。發送方必須使用錢包支援的最高優先次序接收端。錢包支援 Orchard 就會選 Orchard;如不支援 Orchard 但支援 Sapling,則可選 Sapling。因此實際使用哪個池,要看發送錢包支援哪些協議,不只取決於螢幕顯示的地址字串。
Revision 2 草案建議以 zu 作純屏蔽地址前綴,以 tu 作可包含透明接收端的格式前綴。官方 ZIP 索引仍將 Revision 2 標示為草案,不應當作現行 Mainnet 常用 UA 格式。發送前,請在錢包確認畫面核對地址類型、網絡及實際選用的接收端。
跨越池邊界可能令價值流向再次可見
由透明池轉入屏蔽池(t→z)可以花費公開 UTXO,並建立 Sapling 或 Orchard note。鏈上觀察者會看到透明輸入、透明池的變化,以及進入屏蔽池的淨價值;但看不到一般屏蔽接收地址,也無法像透明 UTXO 般讀取每張 note 的金額。因此,把價值轉入屏蔽池仍會在池邊界留下資料。
反向轉帳(z→t)會公開透明輸出的地址和金額,屏蔽池價值的相應變化亦可能被觀察到。在同一個池內建立 note 的屏蔽付款,或可隱藏接收人和金額;Sapling 與 Orchard 之間的轉帳則可能令分池餘額變化成為線索。公開的邊界金額本身不能確定某個人或舊 note,但可以配合金額、時間和外部紀錄分析。
所以不要只問地址是否屏蔽,也要查價值從哪裏開始、經過哪些池。交易所提款、商戶付款,或時間和金額已知的個人轉帳,可能與公開池邊界資料互相對照。這不會自動揭露每張 note 的持有人或內部路徑,但可能收窄範圍。

查看密鑰給予讀取權限,不給予花費權限
ZIP 316 將 viewing key 定義為查看付款至某地址所需的資料。Full Viewing Key(FVK)亦可查看由該地址發出的付款資料。可由 FVK 推導 Incoming Viewing Key(IVK),再由 IVK 推導地址。Unified Viewing Key 可合併多個協議的 viewing-key 項目。
單靠 viewing key 不能簽署花費交易;花費需要另一把 spending key 或簽署系統。不過 viewing key 並非無害的公開資料。密鑰類型和錢包實作會決定可查看哪些交易;帳戶層級的密鑰可能披露多於一個收款地址。與核數師或服務分享前,先了解查看範圍、保留期限、刪除方法,以及會否與其他地址資料合併。
Viewing key 不會抹去原本已公開的線索:透明輸入輸出、金額和時間即使沒有密鑰也可分析。反過來說,不支援相關池的瀏覽器或錢包,也可能無法顯示已記錄在鏈上的屏蔽交易。「應用程式看不到」不等於「鏈上不存在」。
屏蔽交易不會隱藏所有關聯
可見資料視乎池和接收端類型而定。完全透明的資金流會顯示地址、金額和 UTXO 關聯。屏蔽付款會加密 note 接收人和價值,但 commitment、nullifier、時間及協議資料仍會記錄在鏈上。跨池邊界、錢包支援的池、已知付款時間、交易所紀錄,以及共用的 viewing key 都可能留下不同線索。
統一地址不會強制每筆付款都使用 Orchard。實際接收端可能受錢包版本、設定、實作方式和交易路徑影響。不要只因貼上地址就判斷私隱程度,應查看付款預覽或交易結果。[Monero 私隱指南](/hk/learn/monero-private-transactions-stealth-addresses-ring-signatures-ringct-explained)介紹另一種設計;[Bitcoin 地址重用指南](/hk/learn/bitcoin-address-reuse-privacy-transaction-linkability-explained)則與透明帳本作比較。
網絡私隱是另一層問題。RPC 供應商、light-wallet 伺服器、交易所或付款服務可能看到建立或轉發交易的要求,並在鏈外保存 IP、帳戶或時間資料。密碼學證明不會自動刪除服務紀錄。與其聲稱絕對匿名,不如查明誰收集了 metadata、如何保存。
一併核對地址和交易結果
先確認錢包連接到預期的 Mainnet 或 Testnet。付款確認時,核實收款人提供的是 Unified Address,並查看錢包將使用哪個接收端。UA 字串無法直接顯示接收端清單,應在錢包查看池、金額、memo 和費用。如果收款人要求屏蔽付款,但預覽顯示透明輸出,發送前先核對雙方錢包的協議支援。
檢查現有交易時,先核對交易 ID 和網絡,再查看輸入和輸出涉及哪些池。透明地址和金額可在公開瀏覽器中看到;不支援相關功能的工具可能不會顯示 note 詳情。如需 viewing key,先確認用途和可見資料範圍;不要把 spending key 或 viewing key 貼到陌生網站。託管與非託管錢包指南亦說明簽署責任。
不要斷言「我用了屏蔽地址,所以付款完全私隱」,亦不要因「瀏覽器沒有金額」就認定轉帳沒有發生。錢包歷史、網絡、交易 ID、鏈上狀態、確認數目和查看權限都是不同事實。若收款人要確認收款,亦應確認其錢包支援相關池並已完成同步。
用假設付款追蹤接收端選擇和可見資料
假設 Lee 從透明 UTXO 向包含 Orchard、Sapling 和透明接收端的 Unified Address Revision 0 轉帳 1.25 ZEC。這個金額只作說明,並非費率或錢包預設值。如果 Lee 的錢包支援 Orchard,ZIP 316 的優先次序會選擇 Orchard。公開鏈上會顯示透明輸入和池邊界資料,例如進入屏蔽池的淨值;但不會像一般公開輸出般顯示收款人的屏蔽 note 地址和金額。
如果 Lee 的錢包不支援 Orchard 但支援 Sapling,就可以選 Sapling。完全不支援屏蔽池的錢包,如地址和付款格式允許,可能會使用透明接收端。Revision 0 UA 必須包含屏蔽接收端,但發送方只會選擇錢包支援的一個。同一個 UA 因此可能因錢包能力不同而使用不同池,並留下不同的公開邊界資料。
最後,如果收款人另行向會計服務分享 viewing key,該服務可能會看到密鑰範圍內的屏蔽活動。錢包顯示已收款、瀏覽器沒有 note 詳情、區塊鏈按共識規則記錄交易,是三回事。統一地址方便不同協議世代互通,但不保證完全私隱,也不會取代接收端選擇、密鑰管理或網絡資料保護。
協議一手資料
常見問題
Q1每一筆 Zcash 交易都會隱藏地址和金額嗎?
不會。透明池交易會公開 UTXO、地址和金額。統一地址可能包含多個接收端,因此要查看發送錢包實際選了哪一個。
Q2統一地址含有 Orchard,就一定會透過 Orchard 收款嗎?
如果發送錢包支援 Orchard,並處理包含該接收端的 Revision 0 UA,ZIP 316 的優先次序會要求選 Orchard。不同錢包支援的接收端可能不同,請核對付款預覽。
Q3我可以用 Viewing Key 轉走資金嗎?
不可以。Viewing Key 用來讀取其範圍內的交易資料。花費需要另一把 spending key 或簽署權限;但 viewing key 亦應妥善保管,因為它可能披露私人資料。
資料來源與延伸閱讀
回報問題
我們會準備一封包含本文連結的電郵。寄出後,Mark 才會收到你的回報
快速檢查
讀完指南後,用 3 道題檢查一下
問題 01
屏蔽 note 記錄到鏈上時,一般觀察者會看到甚麼?
選擇答案即可查看解釋