首页 > 资讯 > Filecoin与IPFS中的CID到底代表什么?它们如何保证数据安全?
路安  

Filecoin与IPFS中的CID到底代表什么?它们如何保证数据安全?

摘要:在Filecoin网络中,运用了许多去中心化的基础概念,星际云存也在之前的文章为你科普过一部分,如内容寻址、加密哈希等,当然,CID也是其中非常重要的一环,今天让我们来深入了解下它。 CID(content identifier,内容标识符)是一种用于在分布式信息系统(如IPFS或Filecoin

Filecoin网络中,运用了许多去中心化的基础概念,星际云存也在之前的文章为你科普过一部分,如内容寻址、加密哈希等,当然,CID也是其中非常重要的一环,今天让我们来深入了解下它。

CID(content identifier,内容标识符)是一种用于在分布式信息系统(如IPFS或Filecoin)中引用内容的格式。在IPFS中,它是长这样的:

QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF

这串字符并不是表示内容存储的位置,而是根据内容本身形成的一种地址。CID 中的字符数取决于底层内容的加密哈希,而不是内容本身的大小。

如果要创建一个CID,第一步就是转换输入数据,即使用加密算法将任何大小的输入(数据与文件)映射到固定大小的输出,这种转换称为密码哈希摘要,简称哈希。它的存在是为你创建出一个数字“指纹”。

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

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

不相关:输入中的一个小变化应该会产生一个完全不同的散列。

单向:从哈希中重建数据应该是不可行的。

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

并不是所有的哈希算法都是非常安全的,而不同系统使用的加密算法也有所区别。为了支持多种哈希算法,IPFS与Filecoin使用multihash,即多重哈希。

之前的文章中,星际云存曾简单介绍过多重哈希,它是一种自描述的哈希,本身包含描述其长度和生成它加密算法的元数据,支持多种哈希算法,而非依赖于某种特定的哈希算法,是一种面向未来的哈希。

多重哈希遵循TLV模式 ( type-length-value)。用于生成哈希的加密算法sha2-256的标识符为type,哈希的实际长度为length,实际的哈希值为value。在IPFS中首次创建文件时,系统会使用base58btc编码来创建CID。

base58btc与多重哈希开启了CID的第一个版本,即CIDv0,它的前缀仍然有被发现的风险。为了解决这些问题,一个新版本CID出现了,即CIDv1。

但是当我们试图读取数据本身时,我们怎么知道使用的编码方法呢?该数据可能是使用CBOR、Protobuf、JSON进行了编码,哪个才是正确的呢?

CIDv1引入了另一个前缀,即唯一标识所使用的编码方法,叫做多编解码器前缀(multicodec prefix),它指示了对数据使用的编码。

多编解码器支持不同类型的编码,每种编码都有自己的短编解码器标识符,使用编解码器编码的数据前缀(以dag-pb为例)表示为红色的部分。其他部分则分别代表了如下含义:

为了区分不同版本的CID,CIDv1还在这个基础上添加了更多前缀,以表示自己目前使用的版本。

现在的CID是这样的:

为了让这串CID变得人类更方便阅读,需要将上述这些二进制通过基本编码转换为字符串。上文提到过,CIDv0中,哈希编码使用的是base58btc,通过它可以安全地解释CIDv0哈希。但有时由于一些限制,还需要一些能支持更多基本编码的方式,也就意味着还需要加上新的前缀——Multibase前缀。

Multibase前缀用于表示在字符串和二进制格式之间转换CID时使用的基本编码,它仅用于CID的字符串形式:

上文为二进制,下文为字符串

上文以Qm开头的为base58btc编码的CIDv0,下文以b开头的则为使用base32编码,是大部分IPFS默认使用的标识符

任何CIDv0都可以转换为CIDv1,但由于CIDv1支持multibase而CIDv0不支持,因此大部分时候都不能逆向转换。在具有以下属性的CIDv1才可转化为CIDv0:

multibase = base58btc

multicodec = dag-pb

multihash-algorithm = sha2-256

multihash-length = 32(32 字节,相当于 256 位)

现在,你应该了解一个CID具体包含了什么,不同CID之间的区别又是什么,在去中心化网络中,这些都是非常基础且重要的部分。CID代表着掌控数据的“钥匙”, 由Multiformats项目定义的各种自描述值构成。希望你能在这篇中有所收获。

Tags:
免责声明
世链财经作为开放的信息发布平台,所有资讯仅代表作者个人观点,与世链财经无关。如文章、图片、音频或视频出现侵权、违规及其他不当言论,请提供相关材料,发送到:2785592653@qq.com。
风险提示:本站所提供的资讯不代表任何投资暗示。投资有风险,入市须谨慎。
世链粉丝群:提供最新热点新闻,空投糖果、红包等福利,微信:juu3644。