返回 Zcash Hub
安全更新

Zcash 地址变了,还是你的吗?用 Keystone 验证统一地址

再次打开 Zcash 软件钱包的收款页面,你可能会发现:今天显示的 u1... 地址,和上一次看到的不一样。

没有更换钱包,也没有新建账户,为什么收款地址变了?这串陌生的新地址,还能放心用来收款吗?

地址变化,并不一定意味着出了问题。 同一个 Zcash 账户可以生成多个不同的收款地址。但“地址可以变化”和“眼前这个地址确实属于我”,是两回事。

Keystone 的 Verify Unified Address(验证统一地址) 功能,就是帮助你确认后者:扫描软件钱包展示的地址二维码,让硬件设备独立核对它与当前钱包的关系。

一个地址“有效”,不代表这个地址“属于你”。

地址为什么会变?

我们很容易把一个钱包和一个固定地址画上等号。但在 Zcash 中,同一个账户可以拥有多个接收地址,不需要每生成一个地址,就创建一个新钱包。

支持地址轮换的软件钱包,可以在不同的收款场景中展示新的地址。这有助于减少重复使用同一地址带来的关联,保护用户的隐私。

所以,两个看起来完全不同的统一地址,仍然可能属于同一个账户。

你不需要记住每一串地址,但需要确认正在使用的这一个,确实属于自己的钱包。

一个统一地址,可以包含不同的收款方式

本文讨论的 u1... 地址,是 Zcash 的 Unified Address(统一地址,简称 UA)。

它看起来是一串地址,里面却可以包含不同的收款方式。这些收款信息在技术上叫作 Receiver,可以简单理解为地址里的“收款入口”。

其中,Transparent 是透明收款方式,相关交易信息公开可见;Sapling 和 Orchard 则是两种不同的隐私收款方式,用来保护交易信息。

因此,“这个统一地址包含 Sapling”,简单来说就是:这个地址里也有一个通过 Sapling 接收 ZEC 的入口。 你不需要另外创建一个钱包,也不需要先理解它背后的技术原理。

一个统一地址不一定同时包含这三种入口。付款方的钱包需要支持统一地址,并能使用其中兼容的收款方式,才能按照协议规则选择入口完成付款。

统一地址的价值就在这里:把不同的收款方式放在一起,减少用户在不同地址类型之间做选择的麻烦。

不过,这也意味着,验证一个统一地址,不能只检查其中某一部分,就认定整个地址都属于你。

Keystone 验证的,不只是地址格式

软件钱包可以告诉你“这是一个有效的 Zcash 地址”,但这还不足以回答“这是我的地址吗”。

Keystone 提供的是一个来自硬件设备的独立核对结果。本文介绍的验证流程,核对的是地址是否属于当前 Keystone 钱包的 Account 0,也就是编号为 0 的 Zcash 账户。

这个过程不是拿新地址和某一条旧地址做比较。Keystone 会根据设备中的钱包信息,重新计算并核对地址里的收款信息。

在这套流程中,设备先检查 Orchard 部分,确认它与当前账户的关系及对应的地址位置;如果地址中还包含受支持的 Transparent 部分,也会继续核对。

这就是为什么,一个从未在设备上显示过的新地址,仍然可能通过验证。

Keystone 确认的是“这个地址是否来自当前账户”,而不是“这个地址以前有没有出现过”。

四种验证结果,一眼看懂

因为一个统一地址可能包含多个收款入口,而设备对不同部分的验证能力并不完全相同,所以结果不只有“成功”和“失败”。

设备提示 它代表什么
Zcash Address Verified 验证通过。地址中的收款信息全部与当前 Account 0 匹配,没有尚未验证的部分。
Zcash Address Not Fully Verified 未完全验证。已检查的部分都匹配,但 Sapling 部分尚未得到确认。
Zcash Address Not Verified 验证不通过。设备已经发现至少一部分收款信息与当前 Account 0 不匹配。
Invalid QR Code 当前扫描内容不符合这个功能的输入要求,无法进入相应的验证流程。

最容易混淆的,是中间两种状态。它们并不是“程度不同的失败”,而是两个不同的结论。

未完全验证,不等于验证不通过

Not Fully Verified:还有一部分没有确认

假设一个统一地址同时包含 Orchard、Transparent 和 Sapling 三种收款信息。

Keystone 已经确认 Orchard 和 Transparent 都与当前账户匹配,但本文介绍的验证流程尚未核对 Sapling 部分。

这时,设备没有在已检查的内容中发现问题,但也不能替尚未检查的部分作出保证。因此,它会显示 Zcash Address Not Fully Verified。

你可以把它理解为:

“我能检查的部分都对得上,但还有一部分没有确认。”

这不代表设备已经确认地址有问题,也不代表整个地址已经验证通过。 不能因为其他部分匹配,就推断 Sapling 部分也一定属于当前账户。

这里的限制来自这项功能的验证范围,并不是说 Sapling 地址在技术上无法验证。

Not Verified:已经发现不匹配

另一种情况是,设备已经检查到了明确的不匹配。

例如,Orchard 部分属于当前账户,但 Transparent 部分不匹配;或者 Orchard 部分本身就无法与当前账户对应。这时,设备会显示 Zcash Address Not Verified。

它表达的是:

“这个地址里,已经有一部分与当前账户对不上。”

看到这个结果,建议先不要将该地址用于当前 Keystone 账户收款,检查软件钱包所选的钱包、账户及连接关系是否正确。

两种提示的区别,可以用一句话记住:未完全验证,是还有部分不知道;验证不通过,是已经发现不一致。

为什么透明地址会显示 Invalid QR Code?

你可能会问:既然 Keystone 能检查统一地址里的 Transparent 部分,为什么直接扫描一个 t1... 透明地址,却可能显示 Invalid QR Code?

因为这个功能验证的是统一地址,而不是所有类型的 Zcash 地址。

在统一地址里,设备可以先通过 Orchard 部分确认地址位置,再核对对应的透明收款信息。单独的透明地址不包含当前流程所使用的 Orchard 部分,也不属于这项功能的验证范围。

所以,这里的提示应该理解为:“这个内容不能用当前功能验证。” 而不是:“这个地址在 Zcash 网络上一定无效。”

一个透明地址本身完全可能合法可用,只是不能通过本文介绍的 Verify Unified Address 功能确认归属。这同样是功能范围的区别,不是说透明地址在技术上无法验证。

如何在 Keystone 上验证地址?

整个过程分为三步:

  1. 在软件钱包中打开收款页面。 找到需要确认的 Zcash 统一地址,并显示它的二维码。
  2. 在 Keystone 中选择 Verify Unified Address。 使用硬件设备扫描这个地址二维码。
  3. 查看设备上的验证结果。 根据提示,区分完整验证通过、尚未完全验证、发现不匹配,以及输入不受支持。

如果显示 Not Fully Verified,不要把它当作完整验证通过;建议先向钱包或 Keystone 官方支持确认尚未验证部分的归属与支持情况。

如果显示 Invalid QR Code,先检查扫描的是不是此功能支持的统一地址二维码,而不是仅凭这条提示判断钱包或地址出了问题。

本文介绍的验证范围为当前 Keystone 钱包的 Account 0。具体支持能力和界面表现,请以所使用的固件版本为准。

地址可以变化,确认不能省略

统一地址让 Zcash 的不同收款方式更容易使用;地址轮换则让同一个账户不必一直使用同一串地址。

Keystone 的地址验证功能,为这个过程增加了一次来自硬件设备的独立确认。

对用户来说,最重要的不是记住每一种底层协议,而是看懂设备已经确认了什么,还有什么没有确认。

地址变了,不必立即担心;但在把它当作自己的收款地址之前,先确认它的归属。

参考资料

以下官方资料用于解释 Zcash 的地址机制,不代表 Keystone 已实现其中的全部功能。

  1. ZIP 316:统一地址与统一查看密钥 — 统一地址的组成,以及钱包如何选择收款方式。
  2. ZIP 32:隐私钱包的分层确定性派生 — 同一个账户如何生成多个接收地址。
  3. ZIP 315:钱包实现最佳实践 — 地址轮换与相关隐私注意事项。
  4. Zcash 官方文档:地址与资金池 — 透明地址和 Sapling 隐私地址的基础说明。
  5. ZIP 224:Orchard 隐私转账协议 — Orchard 的设计与背景。
← 返回全部动态 打开永久页面 → English