主页 > imtoken安卓下载地址 > 什么是哈希值?

什么是哈希值?

imtoken安卓下载地址 2023-01-18 19:40:48

1. 什么是哈希值?

散列是将任意长度的输入字符串转换为具有固定输出的密码的过程。哈希值不是“密码”,我们无法通过解密哈希来检索原始数据,它是一种单向加密函数。

您知道吗,我们可以借助哈希算法以固定的字符串长度保存互联网上的所有数据。我们使用称为 SHA-256(安全哈希算法 - 256 位)的数学算法。SHA 256 是 SHA-1 的继承者,它有 160 位。

2. 区块链中如何使用哈希?

在区块链中,每个区块都有前一个区块的哈希值,前一个区块称为当前区块的父区块,如果父区块被认为有当前区块。它将具有作为父块的前一个块的哈希值。

在区块链中,每个区块都有前一个区块的哈希值。当我们更改当前块中的任何数据时,该块的哈希值将被更改,这将影响前一个块,因为它具有前一个块的地址。例如,如果我们只有两个块,一个是当前块,一个是父块。当前块将具有父块的地址。如果需要更改当前块中的数据,还需要更改父块。当只有两个数据块的时候,很容易改变数据,但是现在,当我们在区块链中实现的时候,2020-01-24 12:32已经挖了614272个块和第614272(th)个块的hash值为 00000000000000000007 a6be31011560f1e3abe8f125e356a31db6051753334e。如果我们要更改当前块 614272(th) 中的数据,614271块的hash地址是必须要改的,但是614271块的hash是不能改的,所以这就是区块链所说的不可变,数据可以改信。区块链的第一个区块数字货币哈希值是哪里,称为创世区块。你可以从这个创世块中看到到目前为止已经开采了多少块。

我已经创建了这个过程的可视化。

如果我们对输入的任何部分进行微小的更改,输出就会有很大的变化,请参阅下面的示例以获得更多理解。

哈希值是区块链技术不可改变和确定性潜力的核心基础和最重要的方面。它保留了记录和查看数据的真实性,以及整个区块链的完整性。这是一个更具技术性的方面,但是,了解区块链的工作原理以及它所拥有的不可估量的潜力和价值是更坚实的一步。

3. Merkle 树是如何工作的?

当数据量很大时,验证起来会很困难,需要大量的内存来存储和保护,但是借助默克尔树,我们可以轻松克服所有这些问题。

默克尔树是区块链技术的基础部分,我们可以很容易地发现大量数据中发生的任何变化,并能有效地验证数据。比特币和以太坊也在做同样的事情。

正如我们在上图中看到的,所有的碱基都在底部,顶部的单个哈希称为根哈希或 Merkle 根。

例如,有 4 个交易 A、B、C、D。现在 A 和 B 哈希将合并为一个哈希,而 C 和 D 将合并为另一个哈希,AB 哈希和 CD 哈希现在将合并为一个哈希单个哈希称为 genha Hire 或 Merkle root ABCD。

根哈希将包含所有交易的所有信息。Merkle 树会反复对值进行散列数字货币哈希值是哪里,直到只剩下一个散列值,称为根散列对节点。Merkle树是一棵二叉树,所以叶子节点的个数需要是偶数,如果事务数是奇数,则将最后一个hash值重复一次,创建偶数个叶子节点。

在上图中,当交易数量为奇数时,我们可以看到重复的交易哈希,这就是默克尔树复制奇数叶子的方式。

所有交易的数据汇总成一个单独的根哈希并存储在区块头中,因为我们当前的数据是不断变化的,我们会改变整个哈希函数,如果哈希改变,默克尔根也会改变。Merkle 树帮助我们维护数据的完整性。

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

4. 如何使用哈希来保护数据?

哈希值大大提高了数据的安全性。正如我已经提到的,它是一种单向加密功能。加密哈希函数需要具有以下关键属性才能被认为是有用的:

1. 每个哈希值都不同。

2. 始终为同一消息生成相同的哈希。

3.无法根据哈希值确定输入。

4. 即使对输入的整个散列进行很小的更改也会被更改。

哈希值帮助我们查看数据是否被篡改。

比如你下载了一条重要的信息,要查看数据是否有变化,可以通过哈希算法运行数据,将数据的哈希值与接收到的数据的哈希值进行比较。

如果两个哈希值相同,则不要更改数据,如果哈希值不匹配,请在接收之前更改数据。