全部文章

阅读约 8 分钟

存在性证明不能证明什么

存在性证明能表明特定字节在某个公开时间之前就已存在。但它本身并不能证明所有权、真实性、作者身份、谁更早、合法性,也不能保证被法庭采纳。

存在性证明(Proof of Existence)只证明一件很窄的事:这一段确切的字节,不晚于某个公开时间就已存在。这确实很有用,但这也就是它的全部主张。

一份有效的证明,并不会自动表明某个文件是真实的、原创的、归发布者所有的、可合法使用的、完整的,或者能被法庭采纳。上面每一项都是独立的主张,各自需要自己的证据支撑。要用好一份证明、又不至于过度宣称,最快的办法就是搞清楚它的保证到底止于何处。

本文逐一梳理人们常误以为时间戳能覆盖的那些主张,明确说出它能证明哪些、不能证明哪些,并说明当你需要更多时,如何补上缺失的那一层。

存在性证明到底证明了什么?

它证明的是:在字节层面,对某一时刻做出了承诺。

有人拿一个文件、消息、数据集、图片、视频、归档或清单,计算出它的密码学哈希。这个哈希被写入一条公开、带时间戳的记录。之后,任何持有原始字节的人重新计算哈希,再与记录比对。如果两者吻合,验证方就可以有把握地陈述这一件事:

这一段确切的字节序列,不晚于这条公开记录的时间就已存在。

借助 CardanoWall 和开放的 Label 309 标准,这条公开记录就是在元数据 label 309 下发布的 Cardano 交易元数据。要核查它,验证方从公开的 Cardano 浏览器读取该交易,重新组装出 Label 309 记录,校验其结构,再比对哈希(对批处理记录则比对 Merkle 包含证明)。这次核查里没有任何 CardanoWall 的服务器、域名或账户参与。证明仅凭公链本身就能成立。

这份承诺是基础。接下来要谈的每一件事,都是另一个问题。

证明能证明文件是真实的吗?

不能。一句假话和一句真话一样,都能轻易地被打上时间戳。一张伪造的发票、一份错误的报告、一张被篡改的图片——它们都会哈希出某个值,也都能被锚定到链上。

存在性证明不评判内容。它证明的是某段特定内容在某个时间之前就已存在,而不是这段内容正确无误。

即便如此,它的价值依然很大。如果一份报告后来被更正,原始报告的证明就能表明更正之前存在过什么。如果一张图片有争议,证明就能表明某个特定文件在争议开始之前就已存在。但文件「里面」的那个主张是否属实,则完全来自别处:周边的证据、评审流程、数据来源、证人、上下文。

证明锁定的是「何时」和「哪段字节」。它从不裁定「真还是假」。

证明能证明所有权吗?

不能。如果一个文件是公开的,任何人都能对它做哈希。给一份公开的 PDF、照片、视频、源文件或数据集打时间戳,并不会让你成为它的所有者——它只记录了你在那个时间之前持有过那些字节。

当时间戳与其他事实并列在一起时,它可以「支撑」一个关于所有权的说法:

  • 草稿和编辑历史;
  • 已签名记录;
  • 原始源文件;
  • 合同与许可;
  • 雇佣或委托记录;
  • 仓库历史;
  • 与协作者的往来通信。

证明是关于时间的证据。它不是产权证书,也不确立排他性权利。

证明能证明文件是谁创建的吗?

单凭它本身不能。仅含哈希的证明只说明字节曾经存在;它对是谁制作的只字未提。如果两个人持有同一个文件,任何一方都能发布同样的哈希。

Label 309 记录可以携带一个可选的签名。一份已签名记录能证明某个特定的密码学密钥对记录主体做了签名,这比单纯的哈希明显更有力,因为它把证明绑定到一把密钥上,而不是绑定到恰好提交了交易的那个人身上。在该标准中签名始终是可选的——想保持签发方无关的发布者,直接略去签名即可。

即便有了签名,措辞也很重要。签名证明的是「那把密钥」对记录做了签名。单凭它本身,并不能证明那把密钥背后的现实中的人。这层关联来自密钥是如何建立的:入驻流程、一份公布的公钥、组织政策、合同、设备保管,或证明本身之外的其他流程。

如果你想要一份同时承载作者身份的证明,就要刻意地对它签名,并审慎地管理签名密钥。哈希、签名、封存、分享一文里的逐步讲解,谈到了上述每一步分别在什么时候值得加上。

证明能证明发布者是第一个吗?

通常单凭它本身不能。证明能表明发布者在某个时间之前持有过那些字节。但它无法表明在更早的时候没有别人持有过它们。

这一点在 AI 训练数据、数据集、创作作品和商业秘密上最为要紧。如果一家公司今天给一份数据集清单打了时间戳,它就有了很强的证据,表明该清单今天就已存在。但只要另一方拿出一份更早的证明、仓库历史或已签名记录,时间线就会朝着对方倾斜。

实务上的教训是:尽早且持续地发布。一份较晚的证明仍然有用,但更早的公开承诺永远是更有力的那个。你锚定得越早,你的时间线就越难被撼动。

证明能证明文件从未被改动过吗?

它证明的是更精确的一件事:你现在手上的文件,与当初被承诺的那段字节相吻合。

它并不证明世界上某处的任何一份副本从未被改动过。它保护不了你的本地磁盘,也阻止不了有人去编辑这个文件的另一个版本。它能回答的验证问题既窄又具体:

「这个」文件与公开记录里的哈希吻合吗?

如果吻合,你眼前的文件就是当初被承诺的那段确切字节序列。如果不吻合,那么要么文件变了,要么提供了错误的文件,要么核查了错误的哈希,要么这条记录对应的是另一段字节——光凭这次不吻合,并不能告诉你到底是哪一种。

对于任何你日后可能需要据理力争的东西,请把三样东西放在一起保管:原始文件、交易引用,以及任何清单或 Merkle 包含证明。如果原始文件本身就有可能丢失,那正是该用封存证明的场景。

证明会替你把文件保存下来吗?

仅含哈希的证明不会。如果你只发布了一个哈希,之后又丢失了原始字节,你或许仍有证据表明「某段」字节序列曾经存在——但你可能再也无法表明「那段」序列究竟是什么。

正因如此,Label 309 支持封存记录。一份封存证明对明文的哈希做出承诺,同时把加密后的密文存放在某个内容寻址位置,并以 ar://(Arweave)或 ipfs://(IPFS)URI 来寻址。持有正确密钥的人日后可以取回密文、解密、重新计算明文哈希,并确认它与链上承诺吻合——既找回了字节,也找回了把它们与某个时间相绑定的那份证明。

如果文件会由你自己留存,仅含哈希就足够了。如果计划里包含找回,或者要交付给别人,封存就是更好的选择。

证明能证明合法性或合规吗?

不能。一家公司可以给以不当方式收集来的数据打时间戳。一位创作者可以给自己无权分发的内容打时间戳。一个团队可以给一份并不完整的合规日志打时间戳。一家供应商可以给一份发布清单打时间戳,而对应的软件出厂时仍带着漏洞。

存在性证明可以让记录具备防篡改痕迹、并锚定到时间,从而「支撑」一项合规工作。但它替代不了合规计划本身。

真正的合规来自政策、控制措施、合法的数据收集、访问记录、留存规则、评审、审批,有时还包括外部审计。证明帮助表明「什么在何时存在」。它并不证明背后的流程是正确的。如果你正在锚定审计轨迹,无需信任供应商的合规日志谈的正是这条边界。

证明能确立保管链吗?

不能。保管链是一个关于「流程」的故事:谁采集了某项物品、它存放在哪里、谁访问过它、它如何流转、有哪些工具接触过它,以及一路上有哪些控制措施防止了篡改。

一份 Label 309 证明可以是这个故事里的一块拼图。它能表明某个文件、某次导出、某条日志或某份证据清单在某个公开时间之前就已存在,并且此后仍然吻合。但除非这些事实本身被记录下来——并且最好也被承诺到链上——否则它无法指明每一位保管人,也无法解释每一个经手环节。

对于证据类工作流,做法是给清单打时间戳,并保管好证明所指向的那些周边流程记录。

证明能保证隐私吗?

不能,而且其中的限制值得讲清楚。

一条仅含哈希的记录在正常情况下不会泄露原始文件,但它仍然透露出「有人在某个时间承诺了某样东西」。而且如果文件熵值很低,或者内容容易被猜中,攻击者可以对可能的候选内容逐一计算哈希,再拿每个结果去与记录比对,直到出现吻合为止。

封存记录更进一步:明文绝不会以明文形式上链——上链的只有它的哈希和一个不暴露接收方的封存信封,而密文存放在链下——并且 Label 309 经过刻意设计,使得接收方公钥根本不会出现在记录中。但隐私远比记录格式要大。时间规律、手续费支付、网关日志、IP 地址、浏览器行为、存储访问、留在加密载荷之外的文件名,以及寻常的操作失误,都各自可能泄露密码学根本触及不到的信息。

敏感的工作流需要的是围绕证明的运营安全,而不只是加密。如果目标是向某个特定方披露、又不在公开场合暴露任何东西,不公开文件的保密披露讲的就是这套做法。

证明能保证匿名吗?

不能。一条未签名的封存 Label 309 记录可以做到不把发送方身份或可读的接收方名单放进证明记录本身——那些承载被封装密钥的密钥槽只透露接收方「有几个」,而绝不透露「是谁」。这是一项真实且有用的特性。但它并不能让周边的发布流程也变得匿名。

那笔 Cardano 交易仍然有输入,并且要支付手续费。一个托管的网关可能会看到账户、支付、网络或时间方面的细节。从存储取回密文也可能留下痕迹。用户可能复用某个地址,或在别处暴露了上下文。

所以诚实的说法是窄的:「记录格式」可以省去可读的发送方与接收方字段。完整的匿名取决于整套运营配置,而不取决于字节本身——这层区别在举报人证据以及类似的高风险场景中最为要紧。

证明能保证被当作合法证据采纳吗?

不能。法庭、监管机构、仲裁员和交易对手,各自依据适用于自己的规则来决定接受什么证据。一份密码学证明在完整性和时间方面可以是很有说服力的证据,但它不是放之四海皆准的法律通行证。

在某些司法辖区或合同中,可能要求合格时间戳、公证人、受监管的信任服务,或某种特定的签名方式。在另一些情形下,一份公链证明在更大的证据包里可能确有分量。具体适用哪一种,取决于司法辖区和案件本身。

当证明会在法律上产生影响时,请咨询律师。证明可以「帮助确立」时间和完整性;它替代不了法律意见,本文也不构成法律意见。存在性证明在争议中通常扮演的实务角色,在法律证据与电子取证一文中有详细说明。

如何让一份证明更有力?

你要补上与你实际所需主张相匹配的那一层——而且只补那一层。

  • 需要时间。 发布一个哈希,或者一次性为多个文件发布一个 Merkle 根。
  • 需要作者身份或审批。 对 Label 309 记录签名,并妥善管理签名密钥。
  • 需要找回字节。 封存文件,并存放加密后的密文。
  • 需要保密交付。 加密到接收方的接收地址。
  • 需要承载大批量证据。 只承诺一个 Merkle 根,并保留叶子列表和包含证明;一个锚点就能代表成千上万个文件,这一点在一条记录覆盖成千上万个文件中有讲解。
  • 需要法律分量。 把证明与政策、合同、你所在司法辖区要求的合格服务,以及一份有文档记录的保管链结合起来。

每一层回答的是不同的问题。正是靠层层叠加,一个单纯的时间戳才会变成一份恰好承载你所要主张的证明。

一句话版本

当一份证明只说出它确实能证明的东西时,它最为有力。

Label 309 证明的是:在某个公开的 Cardano 时间之前,字节层面的存在。在此之上,它还能加上作者身份签名、封存式保全、保密交付,以及 Merkle 批处理。它替代不了真实性、所有权、法律、身份、运营安全或流程——它也不假装能做到。

这份诚实并不是设计上的弱点。恰恰是它让证明变得可靠:你始终清楚它支撑的究竟是什么,也始终清楚它把哪些东西留给了你证据体系的其余部分。

延伸阅读

proof-of-existencetrustlabel-309