全部文章

阅读约 7 分钟

什么是接收地址?

接收地址是别人用来向你发送封存 Label 309 记录的公开地址。它可以放心分享——这一点与你的私密身份种子不同,接收地址永远无法泄露身份种子。

接收地址是别人用来给你发送封存 Label 309 记录的公开地址。

你可以把它交给某个人、某家公司,或者某个自动化系统。他们用它来加密一份封存证明,让只有你能打开。但他们做不到的是:读取你的其他封存记录、以你的身份签名,或还原你的身份种子。接收地址是一把公钥,不是秘密。

规则一句话就能讲清:分享你的接收地址,守护你的身份种子。

接收地址是做什么用的?

接收地址告诉发送方,该如何加密一份封存记录,让只有你能解密。

在 CardanoWall 中,封存记录就是一份内容已加密的存在性证明(Proof of Existence)。Cardano 区块链仍然证明这条记录在某个具体的区块时间已经存在,并对明文的哈希做出承诺,而文件本身保持加密状态,存放在链下的内容寻址位置。

如果发送方希望你——而且只有你——日后能打开那个文件,他们会在发布之前把你的一个接收地址添加为接收方。他们的软件会把文件的加密密钥封装到你的接收密钥上。之后,你自己的客户端会识别出这条记录属于你,在本地完成解密,并把它呈现给你。

所以接收地址并不是一个由 CardanoWall 代你托管的邮箱。它是一个公开的加密地址,让任何人都能把内容封存给你,而无需经过我们。

接收地址是秘密吗?

不是。它本就是用来分享的。

你可以把接收地址放在名片上、粘贴进消息里、打印出来、发布在个人资料页上,或者只交给某一个特定的发送方。任何拿到它的人都能为你加密一份封存记录——而这正是它的意义所在。

他们做不到什么,同样重要。持有你接收地址的人无法读取发给你的封存记录,无法从中推导出你的私钥,也无法以你的身份给记录签名。这个地址只是密钥对的一半;能打开内容的那一半永远不会离开你的设备。

你要守护的秘密是你的身份种子,而不是你的接收地址。(关于种子为何是一切的根,参见你的身份就是一颗种子。)

接收地址长什么样?

Label 309 复用了 age 加密生态中的接收地址格式,编码为小写的 Bech32 字符串。

经典接收地址以 age1 开头:

age1...

混合后量子接收地址以 age1pqc 开头:

age1pqc1...

真实字符串远比这些示例片段长——混合地址尤其如此,因为它的公钥携带的材料多得多。前缀的作用,是告诉软件它正在处理的是哪一种接收方密钥。

最关键的视觉区别在于大小写:

  • 公开接收地址是小写的,例如 age1...age1pqc1...
  • 你的私有身份种子使用大写的 L309-SEED-1... 显示形式。

这是从 age 借用的一项刻意约定:秘密以大写显示,公开地址以小写显示。如果这一页你只能记住一件事,就记住它:小写的 age1... 字符串可以分享;大写的 L309-SEED-1... 字符串则是掌控你整个身份的秘密。绝不要把后者粘贴到本该放前者的地方。

为什么会有经典地址和后量子地址?

因为有些封存记录需要在很长的时间里保持私密,而「长」恰恰是未来计算机会带来隐患的地方。

age1... 地址是经典的 X25519 接收路径。它紧凑、与 age 工具链广泛兼容,非常适合日常使用。

age1pqc1... 地址是混合后量子接收路径。它把 X25519 与一种基于格的方案(ML-KEM-768,这一组合称为 X-Wing)结合起来。它更长,是因为公钥更大;它的用途,是为封存载荷提供一个更强的选项,以应对这样一类未来的攻击者——他们今天就记录下密文,寄望日后用量子计算机将其破解。

这并不意味着谁可以宣称永久安全——密码学一直在演进,没有哪个诚实的服务会做出相反的承诺。准确的说法是,封存载荷拥有算法敏捷性,外加一个混合后量子选项:Label 309 通过可扩展的注册表按名称引用其算法,因此可以加入新算法而不破坏旧记录。对于普通内容,经典路径已经足够。对于敏感或长期留存的数据,在产品提供更强接收模式时优先选用它。

别人如何给我发送一份封存记录?

整个流程很短,而且你只需提供公开的那一半。

  1. 你把自己的一个接收地址交给发送方。
  2. 他们撰写一份封存的 CardanoWall 记录,并把你的地址添加为接收方。
  3. 他们的软件加密文件,并把加密密钥封装到你的接收密钥上。
  4. 密文存放在链下的内容寻址位置。
  5. 一条 Label 309 记录发布到 Cardano 上,携带明文哈希和被封装的密钥——绝不携带文件,也绝不携带你的地址。
  6. 之后,你的客户端通过在本地用你的密钥逐一测试来发现这条记录。
  7. 如果你的密钥能打开它,你就可以解密文件。

整个过程中,发送方不需要你的身份种子,网关不需要你的私钥,区块链也不需要展示一个可读的「接收方」字段。(关于接收方端到端的完整流程,参见如何接收封存记录。)

我如何找到发给我的记录?

你的客户端通过在本地逐一尝试你的密钥来找到它们——这种技术称为试解密。

这是封存 Label 309 记录最强的隐私特性之一。不存在把接收方映射到记录的服务端数据库,也不存在点名你的链上字段。没有谁需要把一条记录「投递到你的账户」,你才能收到它。

实际上,你的客户端会从公开的记录源中读取封存记录,并对每一条记录,悄悄地用你的接收密钥去试解那些被封装的密钥槽。如果某条记录包含一个你的密钥能打开的槽,它就会出现在你的收件箱里。如果没有,你的客户端什么也不会知道,径直略过。

正因如此,收件箱模型更接近「我的软件能打开这条记录」,而非「服务器把这条记录交给了我」。识别发生在你的设备上,用的是你的密钥,永远不会向旁观者暴露哪些记录是你的。

发送方知道这个地址真的是我的吗?

只有当他们是从你那里、或从一个他们已经信任的来源拿到它时,才知道。

接收地址本身只是一串公钥字符串。它并不证明任何现实世界的身份。如果你从某个网站、个人资料、印刷的名片或一条消息里复制了一个地址,你仍然得自行判断:这个地址是否真的属于你以为的那个人或组织。

对于任何敏感的事情,在依赖一个接收地址之前,先通过带外方式验证它。这可能意味着在通话中把密钥的指纹念出来核对、当面确认、检查该组织确实掌控的页面,或者在你自己维护的通讯录里查一下。印在密钥旁边的名字,只是印它的人的一句断言——它不是密码学保证,而且两个使用相同显示名的人,产生的仍是不同的密钥字节。

不要仅仅因为有人把一个地址发在了你无法担保的频道里,就把一份高度敏感的封存文件发往那里。配套指南在封存文件之前先验证接收方会逐步讲解这一步。

我可以拥有多个接收地址吗?

可以——而且有两种方式。

每个 Label 309 身份都会提供由其接收密钥派生出的接收地址:一个经典的 age1...,以及可选的一个混合的 age1pqc1...。此外,一个人或一家公司可以持有多个身份,每个身份都有自己的种子和自己的地址。

这让你能够干净利落地把不同场景分开——例如:

  • 个人记录与工作记录;
  • 法律证据收集;
  • 记者的机密线索通道;
  • CI/CD 自动化;
  • 面向特定合作伙伴的专属通道。

这样的分隔能防止各个工作流相互渗透,也让运营安全更容易理清。如果某个身份被停用,其他身份不受影响。

如果我更换身份会怎样?

一颗身份种子就是一个身份。创建一个新身份,你就得到一颗新种子和一批新接收地址;至于在单个身份背后对种子做「原地轮换」这回事,是不存在的。

这对旧邮件很重要。一份发给你旧身份的封存记录,仍然只能用那个身份的种子和接收密钥打开。新身份并不会继承解密那些封存给旧身份的记录的能力。

正因如此,理解身份的生命周期是值得的。如果某个身份已不再适合用来签名或发布,你可以把它停用:它将不再可用于新的签名和发布,但它仍留在你的保险库中,并且仍能解密封存内容——既包括你此前收到的记录,也包括之后到达的记录。但如果你选择删除这个身份,且没有保留其种子的任何备份,那么封存给它的内容就会变得无法读取,因为种子是唯一能打开它的东西。你已发布的证明无论如何仍然可以验证——丢失种子并不会让时间戳失效——但你会失去解密任何封存给那个身份的内容的能力。

接收地址是公开的;而种子,才是让你能够持续接收和解密的东西。

接收地址能给记录签名吗?

不能。接收地址只用于加密。

在 Label 309 的密钥模型中,一颗 32 字节的种子会确定性地派生出若干把用途各异的密钥:一把给记录签名的 Ed25519 密钥,以及用于接收封存内容的 X25519(和可选的 X-Wing)密钥。签名密钥为记录背书;接收密钥则打开封存内容。它们出自同一颗种子,却从不互换角色。

这种分离正是种子模型方便之处的原因之一:一份备份就能恢复整个身份,而每一把派生出来的密钥都保持清晰、固定的用途。顺便一提,在 Label 309 中签名始终是可选的——一份封存记录既可以携带作者签名,也可以完全不带签名。

旁观者能从区块链上了解到什么?

任何人都能读取 Cardano 上公开的 Label 309 记录。对于一份封存记录,旁观者能看到:它是封存的、它发布时的区块时间、公开的明文哈希、加密信封字段,以及接收方密钥槽的数量

他们不应能看到的内容同样明确:看不到你的明文、看不到点名你为接收方的可读字段,也看不到你的私钥——这是接收地址永远无法暴露的。

但封存记录并不是一套完备的匿名系统,坦白说出这一点才算诚实。槽的数量本身泄露的是「有多少个接收方」,绝不会泄露「是谁」。而记录之外的因素——发布时机、支付流向、网络元数据、网关活动、浏览器行为,以及寻常的操作失误——仍可能泄露密码学根本触及不到的信息。接收地址让接收方的发现过程保持在本地且加密;它并不会抹去每一道外部痕迹。

我该分享哪个地址?

分享与你想接收的封存记录类型相匹配的那个接收地址。

对于日常或追求最大兼容性的用途,通常是经典的 age1... 地址。对于敏感、长期留存的数据,在提供该选项的场合优先选用混合的 age1pqc1... 地址,并把封装细节交给产品去处理。

还有一条绝对铁律:**绝不要把你的 L309-SEED-1... 身份种子当作接收地址分享出去。**它不是接收地址。它是掌控这个身份的秘密——签名、解密,一切都靠它。小写的 age1... 字符串是你拿去公开的;大写的种子是你要守护的。

一句话版本

接收地址是公开的。你的身份种子是私密的。

当你希望别人给你发送封存记录时,把你的接收地址给他们。当数据敏感时,通过带外方式验证那个地址。把你的种子备份好、保护好,因为种子是唯一一份能让任何兼容软件——无论是网站、命令行工具还是桌面应用——还原你签名密钥和解密密钥的凭据。

延伸阅读

identitysealed-poelabel-309