主页 > imtoken2022官网版 > 比特币加密哈希函数是什么意思?如何计算

比特币加密哈希函数是什么意思?如何计算

imtoken2022官网版 2023-05-11 05:19:52

比特币加密哈希函数是什么意思?如何计算?随着对比特币和区块链的了解,很多投资者对比特币的深度挖掘非常感兴趣。了解比特币的人应该都听说过“密码哈希函数”)”这个名词。但是比特币密码哈希函数是什么意思呢?如何计算呢?

比特币加密哈希函数什么意思?怎么计算1

哈希函数不仅是比特币协议的重要组成部分,也是整个信息安全的重要组成部分。我们将通过一些简单的示例展示哈希函数的工作原理。

什么是哈希函数?

从理论上讲,哈希函数是一个数学过程,它将任意大小的输入数据带入过程并返回固定大小的输出数据。

更具体地说,将任意长度的字母序列作为输入——我们称之为字符串——并返回一个固定长度的字母序列。无论输入字符串是单个字母、单词、句子还是整部小说比特币哈希由谁产生,输出的长度(称为摘要)始终相同。

比特币哈希由谁产生

这种散列函数的一个常见用例是存储密码。

当您使用任何类型的 Web 服务创建需要密码的用户帐户时。这个密码是通过一个散列函数运行的比特币哈希由谁产生,存储的是密码信息的散列摘要。当您输入密码登录帐户时,相同的哈希函数将运行您输入的密码,服务器将检查结果是否与存储的摘要匹配。

这意味着,即使黑客获得了对用于存储哈希值的数据库的访问权限,他们也无法同时破坏所有用户帐户,因为无法轻易找到生成特定哈希值的密码.

Python 简单哈希函数

比特币哈希由谁产生

您可以使用 Python(Mac 和 Linux 操作系统上默认安装的编程语言)来试验哈希值。 (本教程假设正在使用某些版本的 OSX 或 Linux,因为 Python 在 Windows 上更复杂)

首先,打开一个终端,输入 python 并回车。

然后您将进入 Python REPL,这是一个您可以直接尝试 Python 命令而不是在单独的文件中编写程序的环境。

然后输入以下值,在每一行后按回车,在标签处输入TAB:

比特币哈希由谁产生

import hashlib
def hash(mystring):
[TAB] hash_object = hashlib.md5(mystring.encode())
[TAB] print(hash_object.hexdigest())
[ENTER]

这会创建一个函数——hash(),它将使用MD5哈希算法计算特定字符串的哈希值。该函数通过将字符串插入上面的括号 ( ) 来运行。例如:

hash("CoinDesk 岩石")

按 Enter 并查看该字符串的哈希摘要。

比特币哈希由谁产生

你会看到在同一个字符串上调用这个哈希函数总是会产生相同的哈希值,但是添加或更改其中一个字符会产生完全不同的哈希值:

hash("CoinDesk rocks") => 7ae26e64679abd1e66cfe1e9b93a9e85
hash("CoinDesk rocks!") => 6b1f6fde5ae60b2fe1bfe50677434c88

比特币哈希函数

在比特币协议中,哈希函数是区块哈希算法的一部分,区块哈希算法可用于通过挖矿过程将新的交易写入区块链。

比特币哈希由谁产生

在比特币挖掘中,函数的输入是最近的未确认交易(以及与前一个区块相关的一些时间戳和一些引用的额外输入)

在上面的代码示例中,我们已经看到,更改哈希函数的一小部分会导致完全不同的输出。该属性对挖矿过程中的“工作量证明(POW)”算法至关重要:为了成功“解决”一个区块,矿工需要以这种方式将所有输入与自己的输入数据结合起来,从而导致将开始于一些 0。

作为基本演示,我们可以通过在“CoinDesk Rocks!”之后手动添加感叹号 (!) 来尝试使用 Python 哈希函数“挖掘”。我们发现哈希以单个 0 开头。

>>> hash("CoinDesk rocks!!")
66925f1da83c54354da73d81e013974d
>>> hash("CoinDesk rocks!!!")
c8de96b4cf781a6373766c668ceac0f0
>>> hash("CoinDesk rocks!!!!")
9ea367cea6a2cc4a6f5a1d9a334d0d9e
>>> hash("CoinDesk rocks!!!!!")
b8d43387d98f035e2f0ac49740a5af38
>>> hash("CoinDesk rocks!!!!!!")
0fe46518541f4739613b9ce29ecea6b6 => SOLVED!

当然,解决比特币区块的哈希值——在撰写本文时,必须以 18 个零开始——需要非常大的计算量(比特币网络的所有计算机处理能力加起来仍然需要将近 10 分钟才能解决一个块)。

对大量处理能力的需求意味着新比特币的挖掘需要一个漫长的过程才能完成,不可能一次挖掘所有比特币。

以上内容是什么意思?关于如何计算的信息,了解计算公式,如果你想能够通过挖矿赚取比特币,你需要投入大量的工作来解决区块 - 通过获得这个奖励,你将所有新交易锁定在一个区块中,也就是所有先前交易的永久记录:区块链。更多比特币知识可以在网上贷款资料中了解。