本篇文章给大家谈谈通过哈希构建区块链的什么,以及哈希运算是区块链发展的里程碑对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
1.1. 简介
计算机行业从业者对哈希这个词应该非常熟悉通过哈希构建区块链的什么,哈希能够实现数据从一个维度向另一个维度的映射通过哈希构建区块链的什么,通常使用哈希函数实现这种映射。通常业界使用y = hash(x)的方式进行表示,该哈希函数实现对x进行运算计算出一个哈希值y。
区块链中哈希函数特性:
函数参数为string类型通过哈希构建区块链的什么;
固定大小输出;
计算高效;
collision-free 即冲突概率小:x != y = hash(x) != hash(y)
隐藏原始信息:例如区块链中各个节点之间对交易的验证只需要验证交易的信息熵,而不需要对原始信息进行比对,节点间不需要传输交易的原始数据只传输交易的哈希即可,常见算法有SHA系列和MD5等算法
1.2. 哈希的用法
哈希在区块链中用处广泛,其一我们称之为哈希指针(Hash Pointer)
哈希指针是指该变量的值是通过实际数据计算出来的且指向实际的数据所在位置,即其既可以表示实际数据内容又可以表示实际数据的存储位置。下图为Hash Pointer的示意图
HashPointer在区块链中主要有两处使用,第一个就是构建区块链数据结构。通过哈希构建区块链的什么了解区块链的读者应该知道区块链数据结构由创世区块向后通过区块之间的指针进行连接,这个指针使用的就是图示的HashPointer.每个区块中都存储了前一个区块的HashPointer。这样的数据结构的好处在于后面区块可以查找前面所有区块中的信息且区块的HashPointer的计算包含了前面区块的信息从而一定程度上保证了区块链的不易篡改的特性。第二个用处在于构建Merkle Tree. Merkle Tree的各个节点使用HashPointer进行构建,关于区块链数据结构以及MerkleTree的内容我们在后续文章中进行进一步介绍。
哈希还在其他技术中有所应用例如:交易验证以及数字签名等等。
2.加密算法
2.1简述
加密简单而言就是通过一种算法手段将对原始信息进行转换,信息的接收者能够通过秘钥对密文进行解密从而得到原文的过程。按照加密方和解密方秘钥相同与否可以将加密算法大致分为三种子类型:
对称加密
对称加密的加密解密方使用相同的秘钥,这种方式的好处在于加解密的速度快但是秘钥的安全分发比较困难,常见对称加密算法有DES,AES,...
非对称加密
非对称加密体系也称为公钥体系,加解密时加密方拥有公钥和私钥,加密方可以将公钥发送给其他相关方,私钥严格自己保留。例如银行的颁发给个人用户的私钥就存储在个人的U盾里;非对称加密中可以通过私钥加密,他人能够使用公钥进行解密,反之亦然;非对称加密算法一般比较复杂执行时间相对对称加密较长;好处在于无秘钥分发问题。常见的其他非对称加密算法有RSA,ECC,区块链中主要使用ECC椭圆曲线算法。
对称加密与非对称加密的结合
这种方式将加密过程分为两个阶段,阶段一使用非对称加密进行秘钥的分发使得对方安全地得到对称加密的秘钥,阶段二使用对称加密对原文进行加解密。
2.2 数字签名
数字签名又称之为公钥数字签名,是一种类似于写在纸上的物理签名。数字签名主要用于数据更改的签名者身份识别以及抗抵赖。数字签名包含三个重要特性:
只有自己可以签署自己的数字签名,但是他人可以验证签名是否是你签发;
数字签名需要和具体的数字文档绑定,就好比现实中你的签名应该和纸质媒介绑定;
数字签名不可伪造;
依赖非对称加密机制可以较容易实现上述三种特性。
首先,需要生成个人的公私钥对:
(sk, pk) := generateKeys(keysize),sk私钥用户自己保留,pk公钥可以分发给其他人
其次,可以通过sk对一个具体的message进行签名:
sig := sign(sk, message) 这样就得到了具体的签名sig
最后,拥有该签名公钥的一方能够进行签名的验证:
isValid := verify(pk, message, sig)
在区块链体系中每一条数据交易都需要签名,在比特币的设计过程中直接将用户的公钥来表征用户的比特币地址。这样在用户发起转账等比特币交易时可以方便的进行用户交易的合法性验证。
2.3 数字证书和认证中心
2.3.1 数字证书(Digital Certificate)
数字证书又称“数字身份证”、“网络身份证”是经认证中心授权颁发并经认证中心数字签名的包含公开秘钥拥有者及公开秘钥相关信息的电子文件,可以用来判别数字证书拥有者身份。
数字证书包含:公钥、证书名称信息、签发机构对证书的数字签名以及匹配的私钥
证书可以存储在网络中的数据库中。用户可以利用网络彼此交换证书。当证书撤销后,签发此证书的CA仍保留此证书的副本,以备日后解 决可能引起的纠纷。
2.3.2 认证中心(Certificate Authority)
认证中心 一般简称CA, CA一般是一个公认可信的第三方机构,其作用主要是为每个用户颁发一个独一无二的包含名称和公钥的数字证书。
2.4 常见加密算法的对比
区块链通过哈希算法对一个交易区块中的交易信息进行加密,并把信息压缩成由一串数字和字母组成的散列字符串。
金窝窝集团分析其哈希算法的作用如下:
区块链的哈希值能够唯一而精准地标识一个区块,区块链中任意节点通过简单的哈希计算都接获得这个区块的哈希值,计算出的哈希值没有变化也就意味着区块链中的信息没有被篡改。
哈希函数,又叫散列函数、散列算法,是一种从任何一种数据中创建小的数字“指纹”(也叫做摘要)的方法。什么意思呢?就是说,你输入任何长度、任何内容的数据,哈希函数输出固定长度、固定格式的结果,这个结果类似于你输入数据的指纹。只要输入发生变化,那么指纹一定会发生变化。不同的内容,通过哈希函数得到的指纹不一样。这就是哈希函数。
在分布式账本里,为了保证数据完整性,会采用哈希值进行校验。如,一笔交易、一页账本(也就是区块的概念),用了哈希之后生成摘要,意味着整个区块交易信息无法进行篡改(即无法在篡改数据之后保持摘要不变)。
区块链原始的定义或狭义的理解就是区块+链的形式,这个链是通过哈希链接起来,每一个区块可能都有很多交易,整个区块又可以通过哈希函数产生摘要信息,然后规定每一个区块都需要记录上一个区块的摘要信息,这样一来所有区块都可以连成一条链。
如果改了历史中某一个区块的数据,意味着这个区块摘要值(即哈希值)会改变,那么下一个区块中记录的上一个区块的哈希也得做相应的修改,以此类推,也就是说如果要修改历史记录的话,要从那一个点开始往后所有记录都要修改才能保证账本的合法性,哈希函数就提高了账本篡改的难度。
链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。
关于通过哈希构建区块链的什么和哈希运算是区块链发展的里程碑的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
评论