
文件上链:先明确记录的对象
“文件上链”可能指把文件内容写入区块链,也可能仅登记文件摘要或引用信息。以太坊开发文档指出,大量数据直接存储在以太坊上受到成本与扩展性的限制;去中心化存储还需要考虑持久化、激励和数据保留机制。
阅读方案时,应分别确认原文存放在哪里、链上登记什么、通过什么信息取回文件。如果链上只有摘要,获取原文仍依赖存储系统,不能把登记成功理解为文件已经获得长期保存。

哈希与摘要:用于核对内容
MDN 对 digest() 的说明将摘要定义为由输入数据生成的固定长度值,并强调密码学摘要应具备抗碰撞性。该接口支持 SHA-256 等算法,但不支持流式输入,需要先将输入完整读入内存。

在文件校验中,可以对取得的文件重新计算摘要,再与登记值比较。比较时必须统一算法与输入字节;文本编码、换行或文件内部信息的变化,都可能影响结果。摘要用于校验一致性,不能还原原文,也不能单独证明内容真实或提交者拥有著作权。
链下存储与 IPFS:保存和寻址
链下存储指文件内容保存在区块链之外,具体可以采用集中式服务或分布式网络。IPFS 提供分布式文件存储与访问能力,本身没有内置的存储激励机制;固定保存,即 pinning,是持续保留数据的一种方式。
内容寻址关注通过内容标识引用数据。标识可以用于引用文件,却不等于随时能够下载;实际获取仍取决于是否有节点保存并提供相关数据。因此,方案需要明确保存责任、备份安排和访问条件。
持久化与数据保留:关注持续履约
持久化描述数据如何持续存在。基于存储协议的安排通常约定保存期限,到期后可能需要续约。数据保留机制则关注节点是否仍然保存数据,密码学挑战可用于检查节点能否提交符合协议要求的证明。
保存承诺、存储证明和实际下载体验对应不同问题。评估适用条件时,需要结合保存期限、续期责任及文件读取需求;不能仅凭存在证明机制,就认定所有用户都能随时读取完整文件。
常见问题:哪些能力不能混为一谈
摘要上链后原文丢失,能否恢复?摘要本身无法恢复文件,因此原文仍需独立保存。文件很大,能否直接在浏览器计算摘要?使用上述 digest() 接口时,应考虑完整读取文件带来的内存占用。
去中心化是否等于保密?存储分布方式与访问权限是不同问题,涉及敏感文件时仍需单独设计加密和授权。理解方案的关键,是分别核对内容完整性、文件可用性与保存期限。