完整性:Hashing 如何检测变化
输入数据发生变化时,以压倒性的密码学概率会产生不同的 SHA-256 digest。SHA-256 的设计使得寻找 collision 在计算上不可行。如果字节发生变化,数字指纹也会完全改变。
文件可以被复制。文件可以被修改。数据库可以被更改。服务器可能消失。
如何证明某个数字化对象在特定时间点究竟是什么样子?
Bob 说这是原始合同。
Alice 说 Bob 多加了一个零。我们能证明谁说得对吗?
交互式体验密码学中的 SHA-256 avalanche effect。数字指纹对变化极其敏感。试着修改下面 Bob 的奖金。
输入数据发生变化时,以压倒性的密码学概率会产生不同的 SHA-256 digest。SHA-256 的设计使得寻找 collision 在计算上不可行。如果字节发生变化,数字指纹也会完全改变。
观察 交互式 RFC 6962 proof path 是如何构建的。如果我们有 1,000,000 份合同呢?我们将它们的 hash 两两配对并再次进行 hash,直到只剩下一个 Root Hash。
修改一个文件,只有它通往 root 的路径会发生变化。
Merkle proof 可以证明某个特定 leaf 属于一个已提交的 Merkle Tree。验证者无需获取完整数据集,只需要 leaf hash、路径上的 sibling hashes 以及预期的 root。对于包含 N 个 leaves 的平衡 Tree,proof 只需要 O(log N) 个 hashes。
这种架构不会将原始文档或其内容放到 on-chain,从而降低数据留存和隐私风险。
证据被提交到一笔 blockchain transaction 中,该交易被包含在具有记录时间戳的区块中。Blockchain 提供公开且可独立验证的 timestamped commitment。我们并不证明文件是什么时候创建的;我们证明的是,在 anchor 时刻之前,这份确切内容已经被提交到 blockchain。
我们在 TON Blockchain 上准备了一份真实且数学上有效的 P2P agreement。你可以通过 API 获取 cryptographic manifest,或下载 ZIP 进行 100% offline verification。