1. 主页 > 币圈资讯

区块链中的哈希值是什么(区块链中的哈希到底是做什么)


欧易(OKX)交易所 - 全球顶尖数字货币交易平台

注册立即 领取价值高达 6,0000 元的数字货币盲盒,邀请码:vip1234,享受 20%手续费减免。

欧易注册 APP下载

区块链中的哈希值是什么(区块链中的哈希到底是做什么)

              

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-学硕创新义务站 ”独一获准的“区块链技术专业”试点义务站。专业站立足为学生提供多样化生长路途,促进专业学位研讨消耗学研区分培育方式革新,建立使用型、复合型人才培育体系。

小白如何秒懂区块链中的哈希计算

当我在区块链的进修过程中,发觉有一个词像幽灵一样重复出现,“哈希”,英文写作“HASH”。

那位说“拉稀”同窗你给我进来!!

这个“哈希”听说是根源于密码学的一个函数,尝试搜一搜,论文进去一堆一堆的,不是横式就是竖式,不是表格就是图片,还有一堆看不懂得xyzabc。大哥,我就是想了解一下区块链的基础知识,给我弄那么难干啥呀?!我最长的密码就是123456,繁杂一点的就是654321,最繁杂的时分在最后加个a,你给我写的那么复杂清楚觉得体力被榨干,仅有的脑细胞成批成批的死亡!为了让和我一样的小白同窗了解这点,我就勉为其难,勤劳用傻瓜式的言语解说一下哈希计算,不求最准确但求最简单最易懂。下面我们末尾:

# 一、什么是哈希算法

## 1、定义:哈希算法是将恣意长度的字符串变换为流动长度的字符串。

从这里可以看出,可以了解为给**“哈希运算”输入一串数字,它会输出一串数字**。

假设我们自己定义 “增一算法”,那么输出1,就输出2;输出100就输出101。

假设我我们自己定义“变大写算法”,那么输出“abc”输出“ABC”。

呵呵,先别打我啊!这确实就只是一个函数的概念。

## 2、特性:

这个哈希算法和我的“增一算法”和“变大写算法”相比有什么特性呢?

1)**肯定性,算得快**:咋算结果都一样,算起来效率高。

2)**不可逆**:就是知道输出推不出输入的值。

3)**结果不可测**:就是输入变一点,后果天翻地覆毫无规律。

总之,这个哈希运算就是个黑箱,是加密的好帮手!你说“11111”,它给你加密成“b0baee9d279d34fa1dfd71aadb908c3f”,你说“11112”它给你弄成“afcb7a2f1c158286b48062cd885a9866”。反正输入和输出一个公开一个公开,即使输入相关但两个输出毫不相关。

# 二、哈希运算在区块链中的使用

## 1、数据加密

**交易数据是通过哈希运算进行加密,并把相应的哈希值写入区块头**。如下图所示,一个区块头包括了上一个区块的hash值,还包括下一个区块的hash值。

1)、**识别区块数据能否被窜改**:区块链的哈希值能够独一而精准地标识一个区块,区块链中恣意节点通过简单的哈希计算都可以取得这个区块的哈希值,计算出的哈希值没有变化也就意味着区块链中的信息没有被篡改。

2)、**把各个区块串联成区块链**:每个区块都包含上一个区块的哈希值和下一个区块的值,就相当于通过上一个区块的哈希值挂钩到上一个区块尾,通过下一个区块的哈希值挂钩到下一个区块链的头,就自但是然形成一个链式结构的区块链。

## 2、加密交易地址及哈希

在上图的区块头中,有一个Merkle root(默克尔根)的哈希值,它是用来做什么的呢?

首先理解啥叫Merkle root? 它就是个二叉树结构的根。啥叫二叉树?啥叫根?看看下面的图就知道了。一分二,二分四,四分八可以一直分下去就叫二叉树。根就是最上面的节点就叫 根。

这个根的数据是怎样来的呢?是把一个区块中的每笔交易的哈希值得出后,再两两哈希值再哈希,再哈希,再哈希,直到最顶层的数值。

这么哈希了半天,搞什么事情?有啥作用呢?

1)、**快速定位每笔交易**:由于交易在存储上是线性存储,定位到某笔交易会需要遍历,效率低时间慢,通过这样的二叉树可以快速定位到想要找的交易。

举个不妥当的例子:怎样找到0-100之间的一个任意整数?(假定答案是88)那比拟好的一个方法就是问:1、比50大还是小?2、比75大还是小?3、比88大还是小? 仅仅通过几个效果就可以快速定位到答案。

2)、**核实交易数据能否被篡改**:从交易到每个二叉树的哈希值,有任何一个数字有变化都会招致Merkle root值的变化。同时,假设有过失发生的状况,也可以快速定位过失的中央。

## 3、挖矿

?在我们的区块头中有个参数叫**随机数Nonce,寻觅这个随机数的过程就叫做“挖矿”**!网络就职何一台机器只需找到一个适宜的数字填到自己的这个区块的Nonce地位,使得区块头这6个字段(80个字节)的数据的哈希值的哈希值以18个上述文章内容的0扫尾,谁就找到了“挖到了那个金子”!既然我们没有方法事前写好一个满意18个0的数字然后反推Nounce,独一的做法就是从0末尾一个一个的尝试,看后果是不是满意央求,满意足就再试下一个,直到找到。

找这个数字是弄啥呢?做这个有什么作用呢?

1)、**公允的找到计算才干最强的计算机**:这个有点像我这里有个沙子,再通知你它也那一个沙滩的中的一粒相同,你把相反的那粒找进去一样。那可行的方法就是把每一粒都拿起来都比较一下!那么比较速度最快的那团体是最有能够先早到那个沙子。这就是所谓的“任务量证明pow”,你先找到这个沙子,我就以为你比较的次数最多,干的任务最多。

2)、**静态调整难度**:比特币为了保证10分钟出一个区块,就会每2016个块(2周)的时间计算一下找到这个nonce数字的难度,假设这2016个块平均时间低于10分钟则调高难度,如高于十分钟则调低难度。这样,不论全网的挖矿算力是怎样变化,都可以保证10分钟的算出这个随机数nonce。

# 三、哈希运算有哪些?

说了这么多哈希运算,似乎哈希运算就是一种似的,其实不是!作为密码学中的哈希运算在不时的展开中衍生出很多流派。我看了”满头包”还是觉得内在机理也太复杂了,暂时罗列如下,小白们有印象晓得是怎样回事就好。

从下表中也可以看得出,哈希运算也在不时的开展中,有着各种各样的算法,各种不同的使用也在灵敏应用着单个大约多个算法。比特币系统中,哈希运算基本都是使用的SHA256算法,而莱特币是使用SCRYPT算法,夸克币(Quark)达世币(DASH)是把很多算法一层层串联上使用,Heavycoin(HAV)却又是把一下算法并联起来,各取局部混起来使用。以太坊的POW阶段使用ETHASH算法,ZCASH使用EQUIHASH。

需要说明的是,哈希运算的各种算法都是在不时升级完美中,而各种币种使用的算法也并非一成不变,也在不时地优化中。

**总结**:哈希运算在区块链的各个项目中都有着普遍的应用,我们以比特币为例就能看到在**数据加密、交易数据定位、挖矿等等各个方面都有着极端主要的作用**。而哈希运算作为加密学的一门方向不时的开展和延伸,身为普通小白的我们,想理解区块链的一些基础概念,了解到这个层面也曾经足够。

              

本文来自网络,不代表币圈之家立场,如有侵权请联系我们删除,转载请注明出处:https://www.110btc.com/zixun/43672.html

联系我们

在线咨询:点击这里给我发消息

微信号:AB100082

工作日:9:30-18:30,节假日休息