2021-08-04 07:02

科普 | 什么是 CID ?

当我们将数据导入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) 的内容可以随时间变化。

本文链接:https://www.8btc.com/media/6669671
转载请注明文章出处

评论
登录 账号发表你的看法,还没有账号?立即免费 注册
下载
阅读
分享
评论
点赞
上一篇
下一篇