科普|“CID”使IPFS和Filecoin在存储方面的作用

萤火虫区块链
2021-08-04 16:53 来自浙江省

当我们将数据导入IPFS节点时,我们将获得所谓的内容标识符或CID。CID使IPFS在存储方面独一无二,因为CID寻址内容,而不是典型https://的基于位置的寻址。

当我们在去中心化网络上与对等方交换数据时,我们依靠内容寻址(而不是集中式网络的位置寻址)来安全地定位和识别数据。

起源于IPFS的CID规范现在存在于 Multiformats 中,并支持广泛的项目,包括 IPFS、IPLD、libp2p 和星际文件系统。

本文是关于 CID 本身的剖析,这些分布式信息系统中的每一个都将其用作参考内容的核心标识符。

什么是CID?

内容标识符或 CID 是自描述的内容寻址标识符。它不指示内容存储在哪里,而是根据内容本身形成一种地址。CID 中的字符数取决于基础内容的加密哈希,而不是内容本身的大小。

由于 IPFS 中的大多数内容使用 sha2-256 进行哈希处理,因此您遇到的大多数 CID 的大小都相同(256 位,相当于 32 字节)。这使它们更易于管理,尤其是在处理多个内容时。

例如,如果我们在 IPFS 网络上存储 aardvark 的图像,它的CID将如下所示:QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF

创建 CID 的第一步是转换输入数据,使用加密算法将任意大小的输入(数据或文件)映射到固定大小的输出。这种转换称为加密散列摘要或简称为散列。

使用的加密算法必须生成具有以下特征的散列:

确定性:相同的输入应该总是产生相同的哈希值。

不相关:输入的微小变化应该会生成完全不同的哈希值。

一种方式:从散列中重建数据应该是不可行的。

唯一性:只有一个文件可以产生一个特定的哈希值。

请注意,如果我们更改 aardvark 图像中的单个像素,我们的加密算法将为图像生成完全不同的哈希值。当我们使用内容地址获取数据时,我们可以保证看到该数据的预期版本。

这与集中式 Web 上的位置寻址完全不同,其中给定地址 (URL) 的内容可以随时间变化。

加密散列不是 IPFS 独有的,有许多散列算法,如 sha2-256、blake2b、sha3-256 和 sha3-512、不再安全的 sha1 和 md5 等。IPFS 默认使用 sha2-256 ,尽管 CID 几乎支持任何强大的加密哈希算法。

加密散列可以从数据本身的内容派生而来,这意味着对同一数据使用相同算法的任何人都将到达同一哈希值。

加密哈希是唯一的,这与典型https://的基于位置的寻址完全不同,其给定地址 (URL) 的内容可以随时间变化。

热点新闻