加载中 ...

科普:如何验证Filecoin上的存储?

2020-07-14 19:55 编辑:币牛牛 来源:币牛牛

在像IPFS这样的分散式对等网络上,我们可以使用加密散列来确认任何数量的对等点都在存储我们数据的精确副本。但是,我们依赖于各方的慷慨解囊,并不能保证我们的数据将随着时间的推移继续被复制。所以添加了一个Filecoin激励层,以促进分布网络上的长期可验证存储。

1 激励性存储

当我们在集中式系统中向存储提供商付款时,我们将明确信任特定的实体(AWS等)以保护我们的数据安全并将其存储在规定的期限内。而通过分布式的Filecoin网络,我们可以访问各种竞争我们业务的存储提供商(称为存储矿工)。我们使用Filecoin通证(FIL)(一种加密货币)为这些存储交易付费。

虽然我们可能不熟悉这些知名的集中存储提供商,但我们可以信任Filecoin协议和实现的设计,这反过来使我们能够验证存储矿工遵守他们的协议,可以在一段特定的时间内存储我们的数据。正是基于Filecoin的区块链协议,网络中的所有参与者共同努力来验证每笔交易。这些共识机制使得分布式网络中的用户无需中央授权即可达成协议的方式。

2 密码证明

Filecoin如何验证存储的关键是内容寻址和内容标识符(CID)。所有区块链使用的证明系统是密码协议,证明者向验证者证明某些东西。对于Filecoin,存储矿工负责证明他们随着时间的推移正在存储正确的数据,验证者的职责由网络中的所有参与者共同承担。

在本教程中,我们将探讨Filecoin用于验证存储的加密证明,称为复制证明(PoRep)和时空证明(PoSt)。

重要的是要注意,加密证明不同于加密证明。Filecoin协议不提供加密,尽管您可以使用它来存储加密的数据。

区块链通常使用工作量证明(即计算或处理能力),而Filecoin的证明则是有用存储的证明(一种权益证明)。由于这些证明不必连续运行,因此它们在计算效率上更高,并且对环境的危害也较小。

3 准备要存储的数据

在系统文件(例如puppy.gif)可以存储在Filecoin网络上之前,必须首先将其转换为Filecoin Piece。

在此转换的第一阶段,将系统文件与UnixFS一起分块以创建IPLD DAG(有向无环图)。该IPLD DAG的有效载荷CID与IPFS CID相同,代表了DAG的根。

然后将IPLD DAG序列化为CAR文件并进行位填充以制作Filecoin Piece。该作品具有唯一的作品CID,也称为CommP(作品承诺)。

由于有效负载CID和分段CID是数据本身的加密哈希,因此它们是唯一的,具有相同的CID可以保证内容相同。相同的IPLD DAG将产生相同的有效载荷CID,相同的片段将产生相同的片段CID,无论是谁存储或检索它们。

4 谈判存储交易并传输数据

当客户协商的存储处理矿工,他们雇用他们来存储块的数据,这可能是一个整体或部分文件。矿工将来自一个或多个客户的这些碎片存储在扇区中,这是Filecoin使用的基本存储单元。部门的大小各不相同,并且客户可以存储每笔交易最大规模的数据。

一份CID与其他交易参数一起包装以创建交易建议。该交易CID包含有关数据本身,在一块CID,矿工和客户端,以及其他重要的交易细节的身份形式的信息。

客户将此交易建议发送给同意存储其数据的矿工。矿工确认后,客户端会将其数据传输给矿工。一旦矿工获得了数据并验证它与交易建议中记录的CID相匹配,他们便在Filecoin的区块链上发布交易建议,并承诺交易双方。

复制证明(PoRep)

在复制证明中,存储矿工证明他们正在存储数据的物理唯一副本或副本。在矿工首次存储数据时,复制证明仅发生一次。

填充部门并生成CommD

当存储矿工收到每条客户数据时,他们会将其放入一个扇区中。部门是Filecoin中基本的存储单位,可以包含来自多个交易和客户的碎片。

扇区填满后,将生成一个CommD(数据提交,也称为UnsealedSectorCID),代表该扇区中包含的所有CID的根节点。

密封行业和生产CommR

接下来,发生称为密封的过程。

在密封期间,通过一系列图形和哈希处理对扇区数据(由CommD标识)进行编码,以创建唯一的副本。所得副本的Merkle树的根哈希是CommRLast。

然后,将CommRLast与CommC(来自复制证明的另一个merkle根输出)一起哈希处理。这将生成CommR(复制承诺,也称为SealedSectorCID),并记录到公共区块链中。CommRLast由矿工私下保存,以备将来在时空证明中使用,但未保存到链中。

编码过程被设计为缓慢且计算繁重,因此难以欺骗。(请注意,编码与加密不同。如果要存储私有数据,则必须先对其进行加密,然后再将其添加到Filecoin网络中。)

CommR提供了我们所需要的证明,表明矿工正在存储客户数据的物理唯一副本。如果您将相同的数据存储在多个存储矿工中,或者使用一个矿工对同一数据进行多个存储交易,则每个交易将具有不同的CommR。

密封过程还使用zk-SNARKs压缩了复制证明,以使链条保持较小,以便Filecoin网络的所有成员都可以存储该链条以进行验证。在以后的课程中,我们将学习有关zk-SNARK的更多信息。

5 时空证明(PoSt)

曾经运行一次复制证明来证明矿工在密封该扇区时存储了物理上唯一的数据副本,而时空证明(PoSt)则反复运行以证明他们继续将存储空间专用于该副本。数据随时间推移。

PoSt建立在复制证明期间创建的几个元素的基础上:副本,私有保存的CommRLast和公共已知的CommR。

首先,PoSt随机选择编码副本的某些叶节点,并对它们运行Merkle包含证明,以证明矿工具有应在其中的特定字节。然后,矿工使用私有存储的CommRLast证明(不透露其价值),他们知道复制品的根,这既与包含证明相符,又可以用于导出公知的CommR。

PoSt的最后阶段将这些证明压缩为单个zk-SNARK。

当矿工同意为客户存储数据时,他们需要放下抵押物。如果他们在合同期间的任何时候均未通过时空证明,将受到处罚。这是鼓励在Filecoin网络中所有参与者之间表现良好的激励措施的关键部分。

6 zk-SNARKs

Filecoin中的复制证明和时空证明过程均使用zk-SNARK进行压缩。

zk-SNARKs代表“零知识简洁的非交互式知识争论”。您可以将它们视为计算的哈希。他们让我们证明了证明已经正确完成,而不必透露证明本身或它所基于的基础数据的细节。

创建Filecoin的zk-SNARK的过程在计算上很昂贵(很慢),但是最终产品很小,验证过程非常快。与原始证明相比,zk-SNARKs很小,可以有效地存储在区块链中。例如,使用zk-SNARK可以将在Filecoin链上占用数百千字节的证明压缩为仅192字节。

如前所述,运行Filecoin节点的每个人都维护链的最新版本以进行验证。在zk-SNARK的帮助下,使每个证明都保持较小,可以最大程度地减少对Filecoin网络中每个节点的存储需求,以及验证交易所需的时间。

7 验证交易

压缩后,验证存储所需的关键数据存储在Filecoin链中,每个运行节点的用户都将维护其副本。这使得时空证明可以随着时间的推移定期运行。

作为存储客户端,您可以运行lotus client list-deals命令以列出该节点建议的所有存储交易。例如,以下是仅提出一项交易的节点的结果:

$ lotus client list-deals

DealCid:bafyreiefvrrv5j7omqzfersogg4nqzctyzj66rcmkwkbxxx5prvd5sklci

DealId: ?????2

Provider: ???t01000

State:? ? ? ?StorageDealActive

On Chain?:? ?Y (epoch 59)

Slashed?: ???N

PieceCID:bafk4chzazx6u4luj34azuit37rlylgrcbgkaakqsjt5avsbolxale2igii3q

Size: ?????1016

Price: ????1000000

Duration:? 2744

此命令提供以下关键数据:

  • DealCid:交易建议的内容标识符(CID)。

  • DealId:交易的唯一ID。

  • 提供商:与交易进行交易的存储提供商的唯一标识符,也称为存储矿工。

  • 状态:交易状态。这通常是StorageDealActive一旦数据被存储和密封。(请注意,StorageDealActive即使在交易持续时间到期或矿工未能通过时空证明后,当前情况仍将保持这种状态,因此,slashed对于后一种情况,请务必参考该字段。)

  • 上链:一个布尔值,指示交易是否已存储在链中。如果为正,则该字段还将指示存储数据的时期。纪元是链上的特定点。数量越少,链条历史又越久,而数量越多,链条历史越近。

  • 处罚:一个布尔值,指示存储提供商是否未通过时空证明。(如果该矿工停止存储您的数据,该值将更改为Y并且该矿工将受到处罚。)

  • PieceCID:代表存储数据的CID(内容标识符),也称为CommP(件承诺)

  • 大小:要存储的数据字节。

  • 价格:存储交易的Filecoin令牌(FIL)中每个时期的价格。

  • 持续时间:达成协议的交易的总持续时间,以纪元为单位(区块链的一次迭代,目前相当于25秒)。

关键词:比特币新闻 币牛牛

转载自比特币新闻网(www.btc268.com),提供比特币行情走势分析与数字货币投资炒币最新消息。

原文标题:科普:如何验证Filecoin上的存储?

原文地址:http://www.btc268.com/news/qkl/24080.html

本文来源:币牛牛编辑:币牛牛

本文仅代表作者个人观点,与本网站立场无关。

本网站转载信息目的在于传递更多信息。请读者仅作参考,投资有风险,入市须谨慎!

'); })();