
复制证明(PoRep)
在复制证明中,存储矿工证明他们正在存储数据的物理唯一副本或副本。在矿工首次存储数据时,复制证明仅发生一次。
填充部门并生成 CommD
当存储矿工收到每条客户数据时,他们会将其放入一个扇区。部门是 Filecoin 中基本的存储单位,可以包含来自多个交易和客户的碎片。扇区填满后,将生成一个 CommD (数据提交,也称为 UnsealedSectorCID),代表该扇区中所有 CID 的根节点。
密封行业和生产 CommR
接下来,发生称为密封的过程。
在密封期间,通过一系列图形和哈希处理对扇区数据(由 CommD 标识)进行编码,以创建唯一的副本。所得副本的 Merkle 树的根哈希是 CommRLast。(在我们的分散数据结构教程中了解有关 merkle 树的更多信息。)
然后,将 CommRLast 与 CommC (来自复制证明的另一个 merkle 根输出)一起哈希处理。这将生成 CommR (复制承诺,也称为 SealedSectorCID),并记录到公共区块链中。CommRLast 由矿工私下保存,以备将来在时空证明中使用,但未保存到链中。
编码过程被设计为缓慢且计算繁重,因此难以欺骗。(请注意,编码与加密不同。如果要存储私人数据,则必须先对其进行加密,然后再将其添加到 Filecoin 网络中。)
CommR 提供了我们所需要的证明,表明矿工正在存储客户数据的物理唯一副本。如果您将相同的数据存储在多个存储矿工中,或者使用一个矿工对同一数据进行多个存储交易,则每个交易将具有不同的 CommR。
密封过程还使用 zk-SNARKs 压缩了复制证明,以保持链条较小,以便 Filecoin 网络的所有成员都可以存储该链条以进行验证。在以后的课程中,我们将学习有关 zk-SNARK 的更多信息。