
IPFS与区块链分别解决什么问题
IPFS即星际文件系统,是用于存储和访问文件、网站及应用数据的分布式系统。区块链则把记录组织为相互关联的区块,由节点依据共同规则验证。两者可以配合使用,也可以独立应用。
以太坊开发者文档的存储章节介绍了分布式存储、数据持久化及保留机制,并指出大量数据直接存入以太坊会受到成本与节点负担的限制。比特币开发者指南则解释了区块链接、交易验证和工作量证明。这两个角度分别对应“文件如何保存”和“记录如何得到共同确认”。
节点、点对点网络与去中心化
节点是参与网络运行的计算机或软件实例。点对点网络允许节点相互交换数据;不同系统中的节点职责不同,存储节点与区块链验证节点不能直接画等号。
去中心化存储不意味着每个节点都保存全部文件,也不意味着文件自动获得永久备份。判断其可靠性,需要关注副本由谁保存、节点退出后的影响,以及访问是否依赖少数服务。
哈希、区块与默克尔树
哈希把数据映射为摘要,可用于检查内容是否发生变化。摘要不能还原原始文件,因此只有哈希而没有文件副本时,无法凭摘要恢复内容。
在比特币中,区块头包含前一区块头的哈希,形成前后关联。默克尔树将交易哈希逐层汇总为根哈希,允许使用相关中间哈希核验某笔交易是否被包含。此类校验确认的是数据关联或包含关系,不能证明记录描述的现实事件一定真实。
共识、工作量证明与分叉
共识涉及节点按共同规则验证记录,并确定接受的链历史。比特币的工作量证明要求区块头哈希满足目标条件,节点仍需检查区块和交易是否有效。
同时产生的有效区块可能造成临时分叉。比特币节点在有效候选链中依据累计工作量选择链,因此区块高度只是位置,不能充当全局唯一标识。这些机制适用于比特币语境,不能直接套用于IPFS文件保存。
持久化、固定与链上链下的适用条件
持久化关注数据能否持续保留。IPFS本身没有内置存储激励机制,可以通过自行维护节点或固定服务保留数据。固定即pinning,表达保留内容的安排;持续可访问还取决于保存节点、服务运行及网络状况。
链上与链下组合适合需要共同验证记录、同时保存较大文件的应用:文件由存储系统保存,链上记录相关哈希或引用。常见疑问是“哈希上链后文件是否永久存在”。答案是否定的:链上记录负责提供核验依据,文件保留仍需要独立维护。