7月6日,Filecoin官方推出Filecoin教程,解释了该协议如何使用复制证明(PoRep),存储证明(PoSt)和zkSNARK来激励存储提供商方面的良好行为。
一、什么是复制证明(PoRep)
“复制证明”是一个新型的存储证明,存储矿工需要向验证人证明自己把相应的数据存储在一个特定的存储空间中,而不是把多份数据存储在同一个存储空间中。
矿工将一部分可用的存储空间,称为“扇区”,用于存储客户的数据。填充该扇区后,将其密封。密封是一组将扇区逐渐转换为原始数据唯一副本的操作。该副本与Filecoin矿工的公钥关联。为了执行最终的PoRep,矿工将副本的加密哈希提交到公共Filecoin区块链。
通过PoRep,矿工可以提供公开证明,证明他们在执行证明时正在存储客户数据的唯一编码。只有拥有全部原始数据的矿工,才能向Filecoin区块链提交正确的CommR(对副本的链上承诺)。
二、复制证明(PoRep)如何运行?
1、填充部门并生成CommD
当存储矿工收到每条客户数据时,他们会将其放入一个扇区中。部门是Filecoin中基本的存储单位,可以包含来自多个交易和客户的碎片。
扇区填满后,将生成一个CommD(数据提交,也称为UnsealedSectorCID),代表该扇区中包含的所有CID的根节点。
2、密封行业和生产CommR
接下来,发生称为密封的过程。
在密封期间,通过一系列图形和哈希处理对扇区数据(由CommD标识)进行编码,以创建唯一的副本。所得副本的Merkle树的根哈希是CommRLast。
然后,将CommRLast与CommC(来自复制证明的另一个merkle根输出)一起哈希处理。这将生成CommR(复制承诺,也称为SealedSectorCID),并记录到公共区块链中。CommRLast由矿工私下保存,以备将来在时空证明中使用,但未保存到链中。
编码过程被设计为缓慢且计算繁重,因此难以欺骗。(请注意,编码与加密不同。如果要存储私有数据,则必须先对其进行加密,然后再将其添加到Filecoin网络中。)
CommR提供了我们所需要的证明,表明矿工正在存储客户数据的物理唯一副本。如果您将相同的数据存储在多个存储矿工中,或者使用一个矿工对同一数据进行多个存储交易,则每个交易将具有不同的CommR。
密封过程还使用zk-SNARKs压缩了复制证明,以使链条保持较小,以便Filecoin网络的所有成员都可以存储该链条以进行验证。
Filecoin所创新采用的混合共识机制——“复制证明(PoRep)+ 时空证明(PoSt)+ 预期共识(EC)”,即使放到整个区块链行业来讲,都具有前瞻性和突破性。
领取专属 10元无门槛券
私享最新 技术干货