
文件上链:先明确记录的对象
讨论文件上链方案时,首先要明确链上记录的是文件原文、内容摘要,还是其他关联信息。这些对象承担不同作用:保存原文涉及内容获取,记录摘要主要支持内容比对。只有摘要进入链上记录时,原文件仍需要独立保存。
因此,“已上链”不足以说明文件能够下载或长期读取。理解方案应分别回答:链上记了什么、原文存在哪里,以及验证时需要取得哪些数据。
哈希与摘要:用于核对文件内容
MDN对SubtleCrypto.digest()的说明指出,摘要算法把不同长度的输入转换为固定长度的输出,密码学摘要应具备抗碰撞性。该接口支持SHA-256等算法,不支持流式输入,需要将完整输入读入内存。
对于文件比对,应使用相同算法处理原始字节,再比较摘要。界面显示相同的文字,不代表文件字节相同,编码或文件内部信息变化也可能影响结果。摘要不是可逆压缩包,无法据此恢复原文;摘要一致也不能单独证明作者身份或内容真实。
数据可用性:验证所需数据能否取得
Ethereum开发者文档将数据可用性解释为:参与者能够确信,验证区块所需的数据确实可获取。数据可用性采样借助随机抽样与纠删码提供概率性保障;数据可用性委员会则依赖成员保存数据或作出可用性声明,其保障取决于具体安排。
这一概念关注验证条件。文件摘要可以帮助判断拿到的文件是否匹配记录,却不能让已经丢失的文件重新出现。区块验证所需数据与业务文件也可能是不同对象,不能直接把网络的数据可用性保障理解为附件托管保障。
适用条件与常见问题
如果目标是核对文件是否与登记版本一致,摘要记录具有明确用途,前提是原文仍可取得、摘要算法与处理规则明确,并且能够定位对应记录。如果目标是长期查阅文件,还需要单独说明保存期限、访问方式与恢复安排。
“摘要是否等于加密?”摘要用于生成内容指纹,不提供解密恢复能力。“验证通过是否等于永久保存?”验证结果不能替代长期保存机制。“抽样成功是否意味着自己拥有完整文件?”抽样提供的是可用性信心,完整文件的取得仍需要相应下载与恢复过程。