屏蔽支付证明与支付披露
TL;DR
- 交易 ID 可识别一笔交易,但不会揭示屏蔽收款方、金额或备注。
- 支付披露旨在让发送方证明单笔支付的选定细节,而无需暴露其余钱包历史记录。
- 查看密钥会授予对某个地址或账户的持续读取权限。应将其用于持续审计,而非单笔支付争议。
- 支付披露无法证明商品已交付、仅凭自身识别个人、撤销付款或替代确认检查。
- ZIP 311仍处于草案阶段。其当前文本尚未完成对Orchard的支持、透明输入支持、编码、版本控制和用户界面规则。
为什么交易 ID 不够
任何人都可以查看透明Zcash支付的公开细节。区块浏览器可显示其地址、金额和确认状态。
屏蔽支付的运作方式不同。链会证明该交易遵循了Zcash的规则,但不会公开屏蔽发送方、收款方、金额或备注。分享交易 ID 可以表明交易已被挖出,但无法向商户或第三方证明其中包含的是哪笔私密支付。
这带来了实际问题。客户可能需要解决与商户的争议,交易所可能需要证明其已处理提款,或捐赠者可能希望证明一笔捐款。分享完整查看密钥会暴露远超这些情况所需的信息。
ZIP 311:Zcash支付披露提出了更狭窄的解决方案:披露并验证单笔交易中的选定信息。

支付披露如何运作
基本流程如下:
- 当交互式证明适用时,验证方会向发送方提供一个唯一挑战值或参考编号。
- 发送方选择交易以及要披露的屏蔽输出。
- 兼容的钱包软件会创建与该交易及(可选的)挑战值绑定的支付披露。
- 发送方向验证方提供该披露。
- 验证方从受信任的Zcash节点获取真实交易,检查其是否已被挖出,并据此验证披露。
- 有效结果仅确认该披露中包含的声明。
ZIP的Sapling设计使用传出密文密钥来恢复每个选定输出。这可以揭示输出的收款方、金额和备注。它还要求证明对至少一个交易输入拥有支出授权,因此仅看到交易的人无法像发送方那样创建有效披露。
Sapling支付披露不必揭示发送方地址。支出授权可控制多个多样化地址,因此证明对支出的控制权并不会自动识别某个地址。ZIP 311 包含可选的地址证明,适用于必须将证明关联到已知发送方地址的情形。
支付披露还是查看密钥?
| 方法 | 最佳用途 | 揭示的信息 | 持续访问? | 是否在密码学上与支付绑定? |
|---|
| Transaction ID | 检查交易是否已被挖出 | 公开交易数据和确认信息 | 否 | 是,但屏蔽支付细节仍保持隐藏 |
| Screenshot or receipt | 非正式记录保存 | 发送方选择显示的任何内容 | 否 | 否;图像可被编辑 |
| Payment disclosure | 证明单笔支付的选定细节 | 选定交易输出以及任何包含的发送方或挑战证明 | 否,但共享的证明可被复制 | 是 |
| Incoming Viewing Key | 监控账户收到的付款 | 密钥涵盖的传入活动 | 是 | 它会解密匹配的传入付款 |
| Full Viewing Key | 账户记账或审计 | 密钥涵盖的传入和传出活动、金额、备注及余额 | 是 | 它会解密匹配的账户活动 |
应使用能够回答问题的最小范围披露。有关单笔付款的商户争议通常不足以证明有必要访问账户中的每笔付款。必须审查完整报告期的会计人员则可能需要查看密钥。
两种方法均不授予支出权限。切勿将助记词、支出密钥、私钥或钱包备份作为付款证明分享。

今天可以使用什么?
目前没有任何钱包被列为实现ZIP 311 支付披露创建或验证功能。ZIP仍为草案,其参考实现列为“TBD”。以下持续维护的工具仍可帮助发送方、收款方或经授权的审计人员检查当前可用记录:
| 应用 | 当前可用于 | 重要限制 |
|---|
| Zkool | 查看详细交易元数据、金额、资金池输入和输出以及备注;将 Unified 或Sapling查看密钥导入仅查看账户 | 未宣称支持ZIP 311 披露创建或验证 |
| Zingo PC | 审查屏蔽交易历史记录和备注;以只读模式导入 Unified Full Viewing Key | 钱包记录或只读账户并非选择性限定范围的支付披露 |
| Zallet | 使用z_viewtransaction、z_exportviewingkey和z_importviewingkey的运营者工作流程 | Beta 软件;其查看密钥和交易 RPC 涵盖范围更广或仅限本地记录,并非ZIP 311 证明 |
首先使用发送或接收付款的钱包。检查其交易详情、备注、交易 ID 和确认信息,然后请另一方将这些细节与其自身记录进行比较。不要为了生成证据而安装新钱包并输入助记词。如果审计人员需要持续可见性,可考虑兼容的仅查看账户,并在分享前了解查看密钥的范围。
这些应用是用于检查记录的实用替代方案,并不证明标准化支付披露已经可用。截图可以帮助人们比较记录,但可编辑,且并非密码学证明。
支付披露的适用场景
商户争议
客户可以证明已向商户的屏蔽地址发送特定金额。该证明无法证明商品已交付、应当退款,或出示证明的人具有特定法律身份。这些问题仍取决于订单记录和双方协议。
屏蔽提款
ZIP 311 将屏蔽提款列为目标用例:交易所可证明收款方和金额,而无需在链上公开这些细节。其透明输入证明尚未完成,因此这还不是完整的标准化工作流程。客户也必须独立检查交易的确认状态。
捐赠
捐赠者或活动方可以证明某笔特定捐款,同时让无关付款保持私密。发布披露会使其选定细节对收到副本的所有人公开,因此在不需要公开证明时,私密验证渠道更安全。
会计
当会计人员需要单笔交易的证据时,使用支付披露。当会计人员需要持续访问多笔交易或完整报告期时,使用范围最窄的合适查看密钥。
保护隐私的工作流程
ZIP 311 尚不是一个完成且可广泛部署的钱包标准。当兼容的发送方和验证方工具可用时,请使用以下清单:
- 先确认兼容性。 两种工具必须支持相同的披露格式以及付款所用的屏蔽资金池。
- 先解决常规问题。 在揭示私密细节前,检查钱包同步、交易 ID、确认数量、过期状态和收款方记录。
- 请求挑战值。 对于争议,验证方应提供新的订单号或随机挑战值,以便将披露绑定到该请求。
- 仅选择所需输出。 不要包含同一交易中无关的输出。
- 预览每个披露字段。 导出前检查收款方、金额、备注、发送方地址证明和挑战值。
- 通过私密渠道分享。 披露不是秘密支出密钥,但收到它的任何人都可能保留或重新分发其揭示的信息。
- 依据链进行验证。 验证方必须从受信任节点获取确切交易,确认其位于预期网络和区块中,然后验证披露。
- 记录结果,而非额外秘密。 仅保留争议、提款、捐赠或会计流程所需的信息。
如果钱包无法生成披露,在不了解其更广泛且永久范围的情况下,不要以完整查看密钥替代。询问收款方能否从其自身钱包记录确认付款,或能否接受敏感性较低的记录。
有效披露无法证明什么
验证成功并不能证明:
- 该交易拥有足以符合验证方风险政策的确认数量
- 链重组不会移除最近的交易
- 商品或服务已交付
- 必须退款或拒付
- 发送方控制某个特定地址,除非包含适当的地址证明
- 出示披露的人拥有其所声称的现实世界身份
- 未披露输出、其他交易或钱包余额具有任何特定价值
- 披露在分享后仍保持私密
验证方必须单独检查链包含情况和确认状态。ZIP 311 的验证流程假定调用方已获得被挖出的交易及其区块高度。
当前限制
应将ZIP 311 视为拟议标准,而非承诺当前钱包拥有可用的证明付款按钮。
该草案当前规定了Sapling支出和输出,但对于Orchard、透明输入、披露编码、版本控制以及钱包应如何显示不同有效性级别,仍包含未完成项目。其参考实现也列为“TBD”。按当前写法,它未定义适用于Orchard或 Ironwood 支付的支付披露。
如果交易在创建时刻意未为该输出创建传出查看密钥,发送方也可能无法披露输出。ZIP 311 保留了这一隐私选择,而非创建新的恢复路径。
较早的文档描述了zcashd中的实验性z_getpaymentdisclosure和z_validatepaymentdisclosure命令。这些命令仅支持Sprout JoinSplit 输出,而非ZIP 311 中的Sapling设计,并且已被弃用。zcashd于 2026 年 7 月完成最终的停止支持。请勿将该旧版说明作为当前资金的操作指引。
这些缺口并不意味着这一理念没有价值。它们解释了为何谨慎的指南必须区分隐私模型和使用场景,与可供普通用户使用的软件。
常见问题
我能否只用交易 ID 证明一笔屏蔽支付?
不能。该 ID 可以识别交易及其确认状态,但屏蔽收款方、金额和备注并不公开。
支付披露是否等同于查看密钥?
不是。披露限定于单笔交易的选定细节。查看密钥可随时间揭示某个地址或账户的匹配活动。
收款方可以创建发送方的证明吗?
不能,至少不符合ZIP 311 的设计。有效披露必须证明对至少一个输入拥有支出授权。收款方可以使用自己的钱包记录确认付款,但那是不同的声明。
分享后我能撤销披露吗?
不能。它不像查看密钥那样授予未来的账户访问权限,但已揭示的数据和证明可被复制。应像对待任何私人财务记录一样谨慎分享。
验证会移动或锁定任何ZEC吗?
不会。创建或验证披露不会支出、退款、冻结或撤销资金。
如果我的钱包没有披露功能,今天应使用什么?
从收款方的钱包记录、交易 ID 和确认状态、加密备注中的发票参考编号,或其他双方认可的收据开始。仅当确实需要并了解查看密钥更广范围时才使用它。
资源
相关页面