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 與 commitment 樹,但無法判斷該 nullifier 對應哪一筆舊 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 不會抹除原本就公開的線索:透明輸入輸出、金額與時間即使沒有金鑰也能分析。相反地,不支援相關池的瀏覽器或錢包,也可能無法顯示已寫入區塊鏈的屏蔽交易。「App 沒顯示」不代表「鏈上不存在」。
屏蔽交易不會隱藏所有關聯
可見資訊取決於池與接收端類型。完全透明的資金流會揭露地址、金額與 UTXO 關聯。屏蔽付款會加密 note 的收款人與價值,但 commitment、nullifier、時間與協定資料仍會出現在鏈上。跨池邊界、錢包支援的池、已知付款時間、交易所紀錄與共用的 viewing key 都可能提供不同線索。
統一地址不會強制每筆付款都使用 Orchard。實際接收端可能受到錢包版本、設定、實作方式和交易路徑影響。不要只因貼上地址就判斷隱私程度,應查看付款預覽或交易結果。[Monero 隱私指南](/tw/learn/monero-private-transactions-stealth-addresses-ring-signatures-ringct-explained)介紹另一種設計;[Bitcoin 地址重複使用指南](/tw/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 和透明接收端的 Revision 0 Unified Address 傳送 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 寫入鏈上時,一般觀察者會看到什麼?
選擇答案即可查看解釋