区块链中的哈希函数(区块链系列第三部分)

文章详细介绍了密码学中的哈希函数,强调了其在区块链技术中的重要性,如颠覆效应、计算效率和单向性等特性。通过示例阐述哈希如何在数据验证中发挥作用,同时明确区分哈希和加密的不同。文章结构清晰,涵盖了多个方面的讨论,适合对区块链技术有一定兴趣的读者。

欢迎来到区块链100部分系列的第三部分。

第1部分:什么是区块链技术?

第2部分:区块链中的区块组成

哈希函数是最广泛使用的加密算法之一,它为任何输入数据生成固定长度的输出,无论输入数据的大小和长度如何。输入数据可以是一个单词、一句话、一段更长的文本,或者整个文件。为输入数据生成的固定长度输出称为哈希。许多类型的加密哈希函数/算法可用,如MD5、BLAKE2、SHA-1、SHA-256等。安全哈希算法256,通常称为SHA-256,是在区块链技术中广泛使用的最著名的加密哈希函数之一。它由国家安全局(NSA)于2001年开发。

任何输入数据的哈希或固定长度输出

当我们将某条消息通过哈希算法处理时,它会针对该输入生成一个哈希。无论你输入的字母或数字的大小如何,哈希算法始终生成固定长度的输出。生成的固定长度输出可以是32位、64位、128位或256位,具体取决于使用的哈希算法。例如,SHA-256生成256位的哈希值,相当于64个字符的大小。

使用固定长度的输出提高了安全性,因为任何尝试解密哈希的人都无法仅凭输出的长度判断输入的长短。确定原始字符串与其哈希之间唯一的方法是使用“暴力破解”。暴力破解基本上意味着需要随机输入,进行哈希并与目标哈希比较。例如,如果使用SHA-256哈希算法,暴力攻击需要进行2^256次尝试来生成初始数据。

现在,让我们讨论在区块链中使用的加密哈希函数的重要属性:

输入值的微小变化显著改变哈希值

加密哈希函数的一个独特属性是,即使输入值的微小变化也会导致输出值的剧烈变化。这被称为雪崩效应。例如,当第一个输入“区块链是未来”通过哈希函数时,会生成一个特定的输出或哈希。但是,当对输入进行小的更改时,例如添加一个额外的感叹号——“区块链是未来!”你会看到生成的新哈希与之前哈希完全不同。加密哈希函数的这一属性使其对黑客攻击具有抗性,因为仅通过查看哈希无法推导出输入数据的相关性。

输入数据进行小改动时生成不同的哈希

计算效率高

用于区块链的加密哈希函数的另一个重要属性是其计算快速。哈希函数要求区块链网络上的计算机执行某些复杂的数学任务,以从输入数据生成哈希。因此,当我们说哈希函数应具有计算效率时,这意味着计算机应能够在短时间内完成所需的数学任务。

确定性

用于区块链的加密哈希函数必须是确定性的。简单来说,如果相同的输入通过哈希函数进行处理,哈希函数被称为确定性。如果我们将输入“区块链是未来”传递给哈希函数,无论多少次,它都应该每次生成完全相同的输出或哈希。

如果哈希函数为相同输入生成不同的输出,那么哈希函数将变得无用,并且将无法验证特定输入。

抗原像性

加密哈希函数的输入可以是任何类型的数据。此数据可以是一个数字、一个单词、一句话、一个密码、一首歌、一本文本,或一部完整的电影。但是,哈希算法为任何类型的输入数据生成的哈希都是一个字母数字代码,并且是固定长度的。

加密哈希函数具有抗原像性是非常关键的。抗原像性意味着加密哈希函数生成的输出不得透露任何关于输入数据的信息。例如,当输入X通过哈希函数时,生成的哈希表示为H(X)。抗原像性简单地意味着,即使你知道H(X),也必须不可行去确定对应的输入X。

抗原像性的哈希函数

抗碰撞性

抗碰撞性是加密哈希函数的另一个重要属性。具有抗碰撞性意味着对两个不同的输入生成相同的输出或哈希是极不可能的。

抗碰撞性的哈希函数

如前所述,哈希函数的输入可以是任何类型、大小和长度。因此,对于可以输入到哈希函数的数据,存在无限的可能性。但是,生成的相应哈希或输出将具有固定长度。这意味着使用哈希算法生成的输出将有有限的数量。如果输入可以是无限的,输出的数量是有限的,那么多于一个输入可能生成相同的输出是非常有可能的。

因此,抗碰撞性的目标是使找到任何两个具有相同输出的输入的概率极小。因此,如果一个哈希函数是抗碰撞的,这种可能性不会对数据构成任何安全风险。

单向函数

哈希函数通常被称为单向函数,因为它们是不可逆的。虽然哈希函数是一种加密功能,但它并不是加密。加密是通过加密算法和加密密钥对相关数据进行加密。这会产生一种只有在用正确的密钥解密后才能以原始形式查看的密文。与加密相反,哈希函数作为单向函数工作;简单来说,如果你有一个哈希,则无法解密以寻找相应的输入。因此,在现实场景中,即使黑客访问了哈希输出,它完全没有用处,因为他无法解密以获得输入。

单向哈希函数

因此,区块链中使用的加密技术需要单向哈希函数,从而使其安全、可靠。尽管哈希函数可用于跟踪和验证输入数据,但不能用它们来解密并找回输入数据。

为了帮助你更好地理解,让我们举一个例子——假设A先生持有一块土地的权属信息。该信息存储在相关政府机构的数据库中。现在,这块土地的记录数据使用哈希函数生成一个唯一的哈希。由于该记录是中心化记录,因此某些腐败官员可以因个人利益而篡改记录,进行修改。假设某些腐败官员篡改了数据,改变了A先生所拥有的土地面积。在这种情况下,当被修改的土地记录数据通过哈希函数处理时,生成的哈希将与之前的哈希不同。这样就表明土地数据已被篡改。因此,这就是哈希可用于跟踪和验证数据的方式。

另一方面,无法解密此哈希并确定其代表的是A先生所拥有的土地记录数据。因此,我们可以说,哈希可用于跟踪和验证信息,但不能解密和找到原始数据。

如果你喜欢这篇文章并想了解更多关于区块链、NFT、元宇宙及其应用的信息,请点击以下链接。

50多个区块链的实际应用:区块链基础知识初学者的完整指南…… \ \ 50多个区块链的实际应用:区块链基础知识初学者的完整指南、共识……\ \ www.amazon.com

快乐学习!

  • 原文链接: medium.com/techskill-bre...
  • 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
techskillbrew
techskillbrew
江湖只有他的大名,没有他的介绍。