首页 > 世链号 > 【IPFS课堂】你靠独特的指纹打卡,可知IPFS如此强大?
区块风云榜  

【IPFS课堂】你靠独特的指纹打卡,可知IPFS如此强大?

摘要:IPFS使用加密哈希来识别数据,加密哈希本质上是为数据创建唯一特征的数学公式,内容标识符CID就是这个专属的指纹,独一无二。

指纹人人皆有,却各不相同,故其称为“人体身份证”。

IPFS使用加密哈希来识别数据,加密哈希本质上是为数据创建唯一特征的数学公式,内容标识符CID就是这个专属的指纹,独一无二。

IPFS

IPFS上的每个数据都可以通过其CID进行引用,该CID表示Content IDentifier。在浏览IPFS网上内容时,你可能已经发现了一些不同之处,它们看起来像这样:

Qmd286K6pohQcTKYqnS1YhWrCiS4gz7Xi34sdwMe9USZ7u

这样:

QmYf4sT9KbtW3ZCKoX8DdgJy9tDKVAUjbPTBi525RNR29V

还有这样:

bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi

它们是由什么组成的?如何理解?

重点来了,CID被称为多哈希、多编解码器和多数据库。在本篇文章中,我们将为您详细介绍。

 

CID多哈希Multihash

生成此类哈希的流行密码算法是SHA2-256。SHA2-256创建长度为256位的哈希。它非常实用,但是当计算设备变得更加强大,并且量子计算大量运用后,这种特定算法将会受到严重挑战。

由于某些哈希函数(例如MD5和SHA-1)最终变得无用,那么,IPFS既知道最终会有破坏该算法的情况,应该使用哪种算法呢?

解决方案是使用多重哈希。

IPFS

多重哈希非常容易理解,它由所使用的哈希函数的标识符、哈希函数的长度以及哈希本身组成。

使用的哈希函数是由每个人都同意的一个表决定的,在这个表中,我们为所有可能的哈希函数分配一个数字。

因此,多哈希最终看起来像这样:<哈希函数标识符> <哈希的长度> <哈希>

在SHA2-256哈希的情况下,就是<SHA2-256> <长度的256位> <001010101010… >。

这是一个非常棒的运用!现在,我们的内容标识符可满足未来需求!如果我们要更改哈希函数,可以做到。

但是,如果我们想从CID中获得更多信息怎么办?数据代表什么?

请看下文……

 

CID是多编解码器Multicodec

我们希望向CID添加更多信息,以便我们对数据类型有更好的了解。它是JSON数据吗?CBOR?还是别的呢?

因此,我们要做的事情非常简单,只需在多哈希前面添加更多数据即可,多哈希将根据一个表描述编解码器,这与用于多哈希的哈希函数标识符的工作方式相同。

IPFS

所以现在,我们的CID如下所示:

<codec identifier><multihash>

CID只是一连串的自描述字节,首先,描述数据类型的多编解码器,然后,如前所述,使用多哈希。

但是还有更多……

 

CID是多数据库Multibase

最初,IPFS CID在base58中进行了描述,base58是编码比特币地址相同的库。

但是,当然,我们可以使用所有类型的基数,例如基数32,因此,再次,我们需要在CID前面添加更多数据。现在,我们添加了多库,它仅告诉我们将对CID进行编码的库。

<multibase>base(<multicodex><multihash>)

好的,就这样加上前缀数据,大功告成?

不,我们还需要先了解一些有关CID的历史记录,然后才能了解要添加的最后信息。

IPFS

V1和V0

IPFS最开始,并没有多库或多编解码器,所有CID仅是多哈希。

我们将这些CID称为版本0。随后,IPFS项目决定改进CID,并同时添加多编解码器和多库。因此,版本1(v0)取代了版本0(v0)。

那么我们如何区分CID的版本0和版本1?我们如何确定CID是否即将发布的预设版本2,甚至是版本3?

这就是为什么从版本1起决定将这个版本添加到所有CID的原因。现在,我们将其放在多库之后。

因此,现在的CID如下所示:

<multibase>base(<CID version><multicodec><multihash>)

BAFY vs Qm

为了帮助您综合这些信息,这是一个很棒的工具(网址如下),可让您分析CID及其每个组成部分:

https : //cid.ipfs.io/

您要做的是把版本0的CID写入该工具中:

Qmd286K6pohQcTKYqnS1YhWrCiS4gz7Xi34sdwMe9USZ7u

IPFS

您可能会注意到,多编解码器和多库是隐藏的(implicit)。这是因为对于版本0的CID,它们不存在!因此,我们只是假设它们是什么。

在页面底部,您将看到一个以bafy...开头的哈希,这是版本1的等效CID。

区分版本0和版本1 CID的一个巧妙技巧是查看首字母。如果以Qm开头,则会是版本0 CID;如果以bafy开头,则会是版本1 CID。

最后,将此版本1 CID写入工具:

bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi

IPFS

现在,该工具根据上述格式向我们展示了库和编解码器。

恭喜你学完了全文内容!了解IPFS CID的来龙去脉,并且可以描述每个组件,不妨动手体验一下吧!

                                                                                                             来源:引擎存储

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