当我们在分散的Web上与对等体交换数据时,我们依靠内容寻址来安全地定位和识别数据。本文中,了解重要的分散Web概念的基础知识,如内容寻址、加密哈希、内容标识符和与对等方共享。
1、什么是CID?
CID规范起源于IPFS,现在采用多格式,支持广泛的项目,包括IPFS、IPLD、libp2p和Filecoin。本部分将介绍CID本身的解剖,这些分布式信息系统都用作引用内容的核心标识符。
内容标识符是自描述内容寻址标识符。它不指示内容的存储位置,但它基于内容本身形成一种地址。CID中的字符数取决于基础内容的加密哈希,而不是内容本身的大小。由于IPFS中的大多数内容都是使用进行哈希处理的,因此您遇到的大多数CID大小相同。这使得它们更易于管理,尤其是在处理多个内容时。sha2-256
例如,如果我们在IPFS网络上存储了aardvark的图像,其CID将看起来像这样:
Qmcrd4wkppi6dig81r5slj9zm1gdcl4zgpej9cfurrgbzf
创建CID的第一步是使用加密算法转换输入数据,该算法将任意大小的输入映射到固定大小的输出。此转换称为加密哈希摘要或只是哈希。
使用的加密算法必须生成具有以下特征的哈希:
1、确定性:相同的输入应始终生成相同的哈希。
2、不相关:输入中的小变化应生成完全不同的哈希。
暴雪娱乐总裁:暴雪没有探索NFT的计划:金色财经报道,暴雪娱乐总裁 Mike Ybarra 在最近的一条推文中证实,该公司没有探索NFT的计划。上周,多家媒体报道称,这家以《守望先锋》和《魔兽世界》等热门游戏而闻名的美国视频游戏公司要求游戏玩家完成一项调查,以了解他们对游戏内新兴趋势的看法。游戏行业,包括加密货币和 NFT。一些人认为调查表明这家游戏巨头对加密货币产生了积极的兴趣。(U.today)[2022/4/19 14:32:08]
3、单向:从哈希中重建数据应该是不可行的。
4、唯一:只有一个文件可以生成一个特定的哈希。
请注意,如果我们在aardvark图像中更改单个像素,我们的加密算法将为图像生成完全不同的哈希值。当我们使用内容地址获取数据时,我们保证会看到该数据的预期版本。这与集中式Web上的位置寻址大不相同,其中给定地址上的内容可能会随着时间而变化。
加密哈希不是IPFS所独有的,而且有许多散列算法,如、和、不再安全等。IPFS默认情况下使用sha2-256,但CID几乎支持任何强加密哈希算法。sha2-256blake2bsha3-256sha3-512sha1md5
2、多哈希
有时,散列算法可能被证明是不安全的,这意味着它不再符合我们前面定义的特征。这种情况已经发生了。随着时间的推移,其他算法可能不足以用于IPFS和其他分布式信息系统中的内容寻址。因此,为了支持多个加密算法,我们需要能够知道使用哪种算法来生成特定内容的哈希。
四川:探索建立基于区块链技术的数字资产交易平台:9月10日消息,《四川省加快推进新型基础设施建设行动方案(2020—2022年)》正式发布,方案基本思路中提到加快建设区块链等信息基础设施,主要目标在三年内建设区块链技术应用示范场景20个以上。在区块链和数字货币方面,《方案》指出:抢先布局区块链。加快推进区块链隐私保护、跨链控制、网络安全等核心技术攻关、集成创新和融合应用,建设区块链产业创新中心等创新平台,提升区块链核心创新能力。推动区块链在政务服务、金融服务、物流仓储、数字版权、农产品溯源等领域创新应用,打造政府数据开放共享区块链试点平台、“蜀信链”等区块链基础设施,建设基于区块链技术的知识产权融资服务平台,探索建立基于区块链技术的数字资产交易平台。打造区块链高端合作交流平台,提升我省区块链技术产业的全国影响力。(四川省人民政府办公厅)[2020/9/10]
那么,我们该怎么做呢?为了支持多哈希算法,我们使用多哈希。
多哈希格式
多哈希是一种自描述的哈希,它本身包含元数据,描述其长度和生成它的加密算法。多格式CID是面向未来的,因为它们使用多哈希来支持多个哈希算法,而不是依赖于特定的哈希算法。
多哈什遵循模式。从本质上讲,"原始哈希"的前缀是应用的哈希算法和哈希的。TLVtype-length-valuetypelength
1、type:用于生成哈希的加密算法的标识符-请参阅所有标识符的多代码表sha2-256180x12
声音 | 杨沣江:探索采用区块链技术的人力资本服务的济南模式:据齐鲁网报道,山东省标准化研究院标准信息中心主任杨沣江表示,目前正探索人力资本服务的济南模式,该模式采用大数据以及区块链技术,给人才定价提供一个比较权威的数据来源。[2020/1/12]
2、length:哈希的实际长度sha2-256256
3、value:实际哈希值
为了将CID表示为压缩字符串而不是普通二进制,我们可以使用基础编码。
首次创建IPFS时,它使用编码创建看起来像这样1的CIP:10base58btc
QmY7Yh4UquoXHLPFo2XbhXkhBvFoPwmQUSa92pxnxjQuPU
多哈希格式和编码启用了CID的第一个版本,其初始字符仍然很容易发现。base58btcCIDv0Qm...
然而,随着时间的推移,人们开始怀疑这种多哈希格式是否足够:
1、我们怎么知道使用什么方法来编码数据?
2、我们怎么知道使用什么方法来创建CID的字符串表示形式?我们会一直使用吗?base58btc
为了解决这些顾虑,有必要对下一个版本的CID进行演化。
3、CIDv1:多代码前缀
CIDv0使用多哈希支持多个哈希函数。这意味着我们可以使用不同的哈希算法成功生成特定内容的哈希,以后能够使用此哈希识别内容。
动态 | 贵阳市运用区块链等技术探索建立社会信用体系:近日,贵阳在对企业全面推行“双随机、一公开”监管的基础上,出台实施《贵阳市深化改革运用大数据推进社会信用体系建设工作的意见》,运用大数据、区块链技术探索建立了“一笼、一库、一网、一平台、N应用”的社会信用体系,建立企业诚信“红黑榜”失信惩戒长效机制,规范市场秩序。[2018/8/3]
但是,当我们试图读取数据本身时,我们怎么知道使用的编码方法?它可以编码与CBOR,原型,普通JSON等。若要解决此问题,请引入另一个唯一标识所用编码方法的前缀。
多代码前缀指示对数据使用哪种编码。
多码c支持许多不同类型的编码,每个编码都有自己的短编解码器标识符,如完整表所示。
在上面的示例中,我们可以看到使用编解码器编码的数据如何在我们的CID中表示。是许多不同类型的IPLD编解码器之一。由于IPFS始终对数据使用这些IPLD格式之一,因此IPFSCID中的多代码前缀将始终是IPLD编解码器。dag-pbdag-pb
但是,需要注意的是,多代码不仅由IPFS和IPLD使用。除了多哈希和其他一些自描述协议一样,它是多格式项目的一部分,该项目从IPFS中剥离出来,现在支持各种各样的其他项目和协议,包括我们在这里学习的CID规范。
CIDv1:版本前缀
现在,我们添加了多代码,我们的版本1CID包含以下字段:
游戏巨头育碧正在探索区块链应用,用于数字产品与创意保护:实验室的趋势和监察主管Lidwine Sauer在受访时称,Ubisoft(育碧)对区块链技术能够对数字产品提供独特的所有权特别感兴趣,Sauer称,区块链还为人们提供了更多的保护,这项技术可以使人们最终拥有真正的数字收藏品,在区块链上偷东西比偷毕加索的东西要难得多,任何人都无法复制,且可以100%所有。[2018/2/24]
但是,如果您还记得前面的课程,版本0CID仅包含部件,那么我们如何区分不同版本的CID?你猜对了,更多的前缀!
现在我们的CID如下所示:
表示CID的版本。
4、CIDv1:多基前缀
因此,现在我们的CIDv1在二进制给我们的信息:
由于二进制CIP不是很人性化,我们可以以字符串形式表示这些二进制CID。例子:
bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
在二进制格式和字符串格式之间转换数据需要基本编码,因此在使用字符串CD时,我们了解应用于二进制数据的基本编码类型非常重要。但是,我们如何识别这一点呢?
哈希始终使用进行编码。这意味着我们可以安全地解释哈希值,假设它们正在使用。但是,由于环境限制,我们还需要支持其他基本编码的能力。为此,我们可以再加一个前缀!
CIDv0base58btcCIDv0base58btc
5、多基前缀
多基前缀表示在字符串格式和二进制格式之间转换CID时使用的基本编码,仅在CID的字符串形式中使用:
让我们以字符串形式检查两个CID示例:
我们知道第一个是,因为它以开头。从0开始的所有哈希都可以安全地解释为版本0的CID。
CIDv0Qm...Qmbase58btc
第二个示例以开头的base编码前缀标识符,默认情况下,大多数IPFS实现都使用该标识符。bbase32
有关标识符的完整列表,请参考下图。
6、一个哈希,多个CID版本
您可以将任何IPFSCID粘贴到方便的CID检查器中,以可视化其所有前缀及其表示内容。
我们将使用CIDv0和CIDv1格式查看此工具的一些结果。
示例1:CIDv1
bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
第一个示例是版本1CID。
查看CID检查器工具的结果,我们可以看到该工具能够为我们分析的几个部分:
1、HumanReadableCID:分解Cid的每个部分,以便我们人类易于阅读
2、Multibase:是基的标识符,在这种情况下,对于。codebbase32
3、Multicodec:是编解码器的标识符,在这种情况下,IPLD格式code0x70dag-pb
4、Multihash:将多哈希分解为使用的哈希算法的代码,哈希的长度,以及内容哈希本身。18sha2-256
从"人类可读CID"细分中,我们可以看到在添加适当的CIDv1前缀之前,内容的原始哈希是。C3C4733EC8AFFD06CF9E9FF50FFC6BCD2EC85A6170004BB709669C31DE94391A
示例2:CIDv0
QmbWqxBEKC3P8tqsKc98xmWNzrzDtRLMiMPL8wBuTGsMnR
此版本0CID显示了一些不同的结果:和都被列为"隐式"。由于版本02D没有这些前缀,因此它们始终假定为和分别。
multibasemulticodecbase58btcdag-pb
在标签下,我们看到:这是相同的CID从第一个示例!CID检查器为我们提供了从CIDv0转换为CIDv1的转换。
Base32CIDV1bafybeigdyrzt5sfp7udm7hu76uh7y26nf3efuylqabf3oclgtqy55fbzdi
另请注意,"人类可读CID"的末尾在此CIDv0示例中与CIDv1示例中完全相同:。C3C4733EC8AFFD06CF9E9FF50FFC6BCD2EC85A6170004BB709669C31DE94391A
为什么?这两个CID指向相同的内容。基本上,它是在CID规范的两个不同版本中表示的相同哈希。C3C4733EC8AFFD06CF9E9FF50FFC6BCD2EC85A6170004BB709669C31DE94391A
转换CID版本
您可以将任何前缀转换为,因为隐式前缀在变为显式。但是,由于支持多个编解码器和多个基,并且不支持,因此并非所有代码都可以转换为。实际上,只有具有以下属性的才能转换为:
CIDv0CIDv1v0v1CIDv1CIDv0CIDv1CIDv0CIDv1CIDv0
1、multibase=base58btc
2、multicodec=dag-pb
3、multihash-algorithm=sha2-256
4、multihash-length=32
为了验证这一理论,您可以在此处查看我们心爱的aardvark图像,该映像托管在IPFS网络上:https://ipfs.io/ipfs/QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF
1、打开浏览器中的链接,从URL的末尾复制CID(QmcRD4wkPPi6dig81r5sLj9Zm1gDCL4zgpEj9CfuRrGbzF)
2、在新的浏览器窗口中,将其粘贴到CID检查器工具中,并查找屏幕底部显示的等效CIDv1值
3、回到aardvark选项卡中,将CID替换为原始URL中转换后的CID并刷新页面v0v1
你应该看到我们的阿尔德瓦尔克相同的图像。
编辑:星际视界IPFSNEWSSue
标签:IDV区块链BASEBASidv币有投资价值吗有人靠区块链4天就挣了30万吗FLOKIBASEDAIbasic-attention-token
作者:照生 报告摘要:1、至2020年12月,全国共有64062家企业在企业名称/曾用名、经营范围或产品资料等工商信息中含有“区块链”字样,较2019年年末总数上涨52.88%.
1900/1/1 0:00:00来源:清华大学2020年12月31日,由清华大学经济管理学院数字金融资产研究中心主办的“数字金融:创新、发展与监管”高端研讨会在清华大学成功举办,会上《数字金融:未来已来》新书重磅发布.
1900/1/1 0:00:00本文来源:中国金融信息网,原题《利用区块链等技术解决公共资源高效合理配置》作者:陈晓华,北京邮电大学国家大学科技园金融科技研究所所长、中国移动通信联合会区块链专业委员会主任委员公共资源是指自然生.
1900/1/1 0:00:001月27日,mStableDAO和mStableprotocolDAOSnapshot联合发布六个新提案.
1900/1/1 0:00:00在即将过去的2020年,比特币已经出现了大量机构涌入的场面,他们的资金在购买端口引发了需求危机,因为所有卖方的流动性都被吸收了.
1900/1/1 0:00:00铭记20202020年的进度条已经滑满。这一年,我们的生活被迫调整,我们的行业在时代的风浪中一路逐浪前行;这一年,区块链行业发生了太多大事,注定会以特殊的方式被历史铭记.
1900/1/1 0:00:00