1. 主页 > 币圈百科

区块链哈希(哈希算法和区块链)


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

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

欧易注册 APP下载

声明:本文旨在传递更多市场信息,不构成任何投资建议。文章仅代表作者观点,不代表火星财经官方立场。

边肖:记得要集中注意力。

来源:区块链大本营

编译:张涛

01什么是哈希?

哈希是对任意长输入进行编程以加密固定长度输出的过程。哈希与加密方法不一样,因为哈希值不能被解密以获得原始数据。实际上,hash是一个单一的加密函数。

利用哈希函数,互联网上的数据可以以固定长度的字符串形式保存。其中一种方法是SHA-256(安全哈希算法-256位),它是SHA-1的继任者,SHA-1的输出是160位。

02哈希在区块链是如何应用的?

在区块链中,每个块都有前一个块的哈希值,称为当前块的父块。因为每个块都有前一个块的哈希值,当当前块的任何数据被修改时,该块的哈希值都会发生变化,这会影响到前一个块,因为它包含了前一个块的地址。

例如,当前有两个块,一个是当前块,另一个是父块。当前块中有父块的地址。如果你需要修改当前块的数据,你需要修改父区块链。如果只有两个块,最好修改数据,但实际上区块链中有许多块。

截至2020年1月24日12: 32,共有614272个块,这614272个块的哈希值为00000000000007 a6be 3101560 E3 Abe 8 f 125 e 356 a 31db 6051753334 e。如果要修改614272块的数据,614271块的hash地址会改变,但是不可能修改所有614271块的hash值,所以区块链中的数以太坊据是不可篡改和不可信的。区块链的第一个区块被称为创世区块。

研究人员将这一过程形象化了:

如果输入被小幅度地修改,输出可能会大幅度地改变。

哈希是区块链技术的核心基础和最重要的方面,具有不可篡改性和潜在性。哈希维护记录和查看数据的真实性,区块链的完整性也是如此。

这也是区块链技术最重要的技术特征之一。只有了解hash,才能理解区块链的不可篡改性的潜力和价值。

什么是0Merkle树(马尔可夫树)?

当需要验证大量数据时,需要消耗大量内存来存储和保证安全。这个过程很艰难。但是有了Merkle树的加入,这些问题就可以迎刃而解了。

马尔可夫树是区块链技术的基础。在这种结构下,很容易在大量的数据中发现哪些数据发生了变化,整个数据验证的过程非常高效。马尔可夫树用于比特币和以太坊。

从上图可以看出,所有的事务都在最下面,最上面的哈希值叫做Root hash或者Merkle root(马尔可夫根)。

如上图,有4个事务A、B、C、D,A和B被哈希形成一个哈希值,C和D形成另一个哈希值,AB的哈希结果和CD的哈希结果合并形成一个新的哈希值——root hash或Merkle RootABCD。

根哈希包含所有事务的信息。马尔可夫树会反复计算节点对的哈希值,直到只剩下一个哈希值,就是根哈希值。

Merkle树是二叉树,所以它需要偶数个叶节点。如果事务的数量是奇数,最后一个哈希值将被复制一次以创建偶数叶节点。

如上图所示,可以看出已经被哈希的具有惊人值的事务数中存在重复事务,说明Merkle tree会计算奇数叶子树。

所有事务数据将被汇总为根哈希并存储在块头中。如果数据有任何改变,整个哈希值都会改变,哈希值改变,Merkle root也会改变。Merkle树可以帮助维护数据的完整性。

Merkle树的另一个优点是,如果你想知道一个特定事务的状态,你不需要下载整个区块链,而只需要请求一个垂直证明和树的一个特定分支来验证一个特定的事务分支。

04如何使用哈希来保证数据安全?

哈希还增加了数据的安全性。因为数据没有加密,所以没有必要也无法解密。因为散列函数是单向加密函数,所以加密散列函数需要满足一些关键特征才是有用的,包括:

每个哈希值是不同的;

相同的消息将生成相同的哈希值;

无法根据哈希值确定输入值;

输入值的微小变化也会导致整个哈希值的变化。

哈希有助于确定数据是否被修改。比如之前已经下载了一些重要的资料。为了确定数据是否已经被修改,可以对数据进行散列,并且可以将数据的散列值与接收到的数据的散列值进行比较。

如果哈希值相同,说明数据没有被修改;如果哈希值不匹配,则意味着数据在被接收之前已经被修改。

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

联系我们

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

微信号:AB100082

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