This article has been translated from English to Traditional Chinese.
在深入探讨比特币挖矿之前,我们需要先绕个弯,了解一下加密货币的基础概念。
为了真正理解比特币和其他加密货币的工作原理,首先必须了解“哈希”的概念。
当您看到“哈希”这个词时,有些人可能会想到哈希饼,一种流行的美式早餐食品,而像史努比狗狗(Snoop Dogg)这样的人可能会想到大麻浓缩产品。 🌿

在本课中,我将介绍另一种哈希!
这是一个技术概念,但您必须熟悉它,所以我将为您轻松地分解它。
要理解比特币挖矿的工作原理(这是下一课的内容),也需要熟悉哈希的概念,所以请不要跳过这些课程。 👁️
什么是哈希?
哈希是一种加密方法,可将任何形式的数据转换为固定长度的唯一文本字符串。
密码学是研究如何从外部观察者那里进行安全通信的技术。在互联网时代,密码学被用来保护计算机信息或“数据”。
如果还不够明显的话,加密货币中的“加密”一词就是指密码学。
散列是密码学的基本组成部分。在加密货币中,它对“加密”起着重要作用。
简单来说,散列是指通过散列函数 将任意长度的文本输入,并产生固定长度的输出。

任何数据都可以“哈希化”,无论其大小、类型或长度如何。
产生的散列总是具有相同的长度。
在下面的例子中,使用SHA-1散列函数,无论“输入”的长度如何,“输出”总是40个字符长。



下面是对这三个示例的快速比较:
| 输入 | 哈希值 |
|---|---|
| 你好 | f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0 |
| BabyPips.com | 8c8780d0b70c5ef42a534846cc042629cf07a440 |
| 我 | ca73ab65568cd125c2d27a22bbd9e863c10b675d |
请注意,尽管“输入”不同,但三个哈希值的长度仍为40个字符。
在这个特定示例中,固定长度为40个字符,由所使用的特定哈希函数(“SHA-1”)决定,稍后我们将对此进行解释。
目前,您只需知道其他散列函数可能会输出不同的固定长度。大多数散列函数的固定长度都超过40个字符。
散列值相当于数字指纹。
唯一的数据总是会产生相同的散列值。
例如,如果您通过哈希函数运行“Hello”一百万次,上述哈希值将出现一百万次。
对于“Hello”这个词,它的SHA-1散列值始终是:
f7ff9e8b7bb2e09b70935a5d785e0cc5d9d0abf0
只有“Hello”才会产生这个哈希值。
对“Hello”的任何改动,哪怕只是将其改为“hello”,散列函数都会产生完全不同的散列值。
这就是为什么哈希值被称为数字“指纹”。
就像您的指纹独一无二一样,哈希值对于特定的输入数据也是独一无二的。

散列值无法逆转。
哈希函数的输入被称为“预像”,但为了简单起见,我仅使用“输入”一词。
散列函数的输出称为“散列值”或“摘要”,或简称为“散列”。
哈希函数的设计初衷是单向的。

由于哈希函数是单向函数,因此输出(即“哈希”)不能用于揭示输入(即“预像”)。
这意味着,如果只看到散列,就无法解密散列所代表的原始数据(“前像”)。
哈希函数会产生不可逆的哈希值。
不可逆意味着,如果只有散列,就无法用它来推断原始数据是什么。这样,原始数据就能保持安全和未知。
什么是哈希函数?
哈希函数 是一种数学运算,它使用特定的算法将任意长度的输入数据转换为固定长度的输出。
算法只是用于执行计算的一组逐步指令,由软件程序完成。
输入的内容是单个字母、单词、完整句子、书页还是整本书,这并不重要。
每个输入都会产生一个固定长度的字母数字字符串作为输出。
字母数字的意思是,输入的内容由字母和数字组成。
一个有用的散列函数可以隐藏输入可能是什么样子的任何线索。
例如,它必须无法确定输入是长是短,或者包含数字还是字母。此外,只要改变输入中的一个字符,就会产生完全不同的输出。
流行的哈希函数
所有散列函数的工作方式都类似。您输入数据,散列函数对数据进行“打乱”,并输出散列值。
常见的散列函数包括:
- MD-5:消息摘要5 (MD5)是一种常见的散列函数。过去,它被认为很安全,但如今,黑客已经发现了如何解码算法,并且能够在几秒钟内完成。
- SHA:安全散列算法 (SHA)是另一种散列函数。SHA有多种变体,分为四个系列:SHA-0、SHA-1、SHA-2和SHA-3:一般来说,数字越高,发布时间越近,算法越安全。
就我们的目的而言,目前唯一需要了解的哈希函数是安全哈希算法(SHA)。更具体地说,SHA-2系列包含一个名为SHA-256的特殊成员。
SHA-256是一种散列函数,可将一串文本转换为另一串长度始终相同的文本:64个字母数字字符。这相当于256位,这也是其名称中“256”的由来。
它之所以特殊,是因为它是比特币系统中多个部分使用的哈希函数,我们将在后面的课程中学习。目前,重要的是要知道SHA-256是一种哈希函数,也是比特币使用的哈希函数。
无论输入是《哈利·波特》一书的某页还是整部系列丛书,SHA-256散列函数的输出结果总是相同的,即64个字母数字字符。
现在让我们来看看散列在加密中的工作原理。