时间:2023-06-16|浏览:174
用戶喜愛的交易所
已有账号登陆后会弹出下载
在传统的集中式云存储服务商处,我们已经习惯了信任特定大型服务商,支付存储费用,对方承诺会在规定期间内安全存储数据,而这个承诺他们建立在长久以来累积的信誉上。
但在去中心化存储上,我们依靠的不是对某个存储提供商或开发者的信赖,而是对链上技术的信赖。
Filecoin 具体是如何进行安全存储的呢?我们一步一步来了解。
01 在文件存储到 Filecoin 网络之前,必须先将它转换为 FilecoinPiece,这个步骤需要分几步。
第一阶段,需要存储的文件与 UnixFS 分块(是一种基于协议缓冲区的格式,用于描述 IPFS 中的文件、目录和符号链接)以创建 IPLDDAG,此 IPLDDAG 有一个有效负载 CID,与 IPFS CID 相同,它表示 DAG 的根。
第二阶段,需要将 IPLDDAG 序列化为 CAR 文件(可以将内容可寻址对象以 IPLD 块数据的形式存储为字节序列,扩展名一般为 .car)并进行位填充以制作 FilecoinPiece(位填充添加额外的位以使该片段符合标准尺寸)。该片段具有唯一的片段 CID,也称为 CommP。
有效负载 CID 和片段 CID 是数据本身的加密哈希,相同的 IPLDDAG 将产生相同的有效载荷 CID,并且相同的片段将产生相同的片段 CID。由于它们是唯一的,只要 CID 相同,就能保证存储的是相同的内容。这样一来,无论谁将存储或检索它们。
02 准备工作完成,就是开始存储交易的过程。当客户与存储提供商协商存储交易时,一般会让他们存储一段数据(即一个 FilecoinPiece),这可能是部分文件,也可能是整个文件。
存储提供商将用户提供的片段存储在 Filecoin 基本存储单元扇区中。通常,一个 CID 会与其他交易参数一起打包以创建交易。交易 CID 包含有关数据本身的信息:片段 CID 的形式,存储提供商和客户的身份,以及其他重要的交易细节。
同意存储提案后,客户将这些交易数据发送给存储提供商,后者确认后,客户将数据传输过去,一旦存储提供商获得数据,并验证它与交易提案中记录的 CID 匹配,他们就会在 Filecoin 链上发布交易提案,让双方都参与交易。
03 当存储提供商收到客户数据后,他们会将其放入一个扇区中,一旦扇区已满,就会生成一个 CommD(数据提交,又名 UnsealedSectorCID),代表扇区中包含的所有片段 CID 的根节点。
接下来,就会开始大家都熟悉的密封过程。
在密封期间,扇区数据(由 CommD 识别)通过一系列图形和散列过程进行编码,以创建唯一的副本。结果副本的默克尔树(一种典型的二叉树结构,由一个根节点、一组中间节点和一组叶节点组成)的根哈希是 CommRLast。
CommRLast 与 CommC(来自复制证明的另一个默克尔根输出)一起散列,生成记录到公共区块链的 CommR(复制承诺,又名 SealedSectorCID)。CommRLast 由存储提供商私下保存,以供将来在时空证明中使用,它不会保存到链中。
密封是耗时最久的一个过程,这一步专门被设计为缓慢且计算量巨大,目的是为了保证其安全性。
CommR 提供了我们需要的证明,证明存储提供商正在存储客户数据的物理唯一副本。如果你使用多个存储矿工存储相同的数据,或者使用单个矿工为相同的数据进行多个存储交易,则每个交易都有不同的 CommR。
04 复制证明只需运行一次以证明存储提供商在扇区密封时存储了数据的物理唯一副本,而时空证明(PoSt)会重复运行,以证明他们继续将存储空间专用于相同随着时间的推移数据。
PoSt 建立在复制证明期间创建的几个元素之上:副本、私人保存的 CommRLast 和公开的 CommR。
首先,PoSt 随机选择编码副本的一些叶节点,并在它们上运行默克尔包含证明,以表明存储提供商具有应该存在的特定字节。然后,存储提供商使用私人存储的 CommRLast 在不透露其价值的前提下证明他们知道副本的根,该