哈希在币世界中的力量

哈希是加密货币领域中的一个基本过程,它将任何大小的数据转换为固定长度的结果。这个过程是通过称为哈希函数的数学公式来实现的,这些公式被实现为算法。

虽然并非所有的哈希函数都涉及密码学,但所谓的密码哈希函数在加密货币生态系统中至关重要。正因如此,区块链和其他去中心化系统才能实现数据完整性和安全性的重要水平。

哈希函数,无论是常规的还是加密的,都是确定性的。这意味着,只要输入数据不变,哈希算法就会始终产生相同的结果,也称为摘要或哈希。

在加密货币中使用的哈希算法通常被设计为单向函数,这意味着在没有大量时间和计算资源的情况下无法逆转。换句话说,从输入生成输出相对简单,但反过来却极其困难。通常,找到输入的难度越大,哈希算法被认为就越安全。

哈希函数的工作原理

不同的哈希函数产生不同长度的结果,但每个哈希算法的输出大小始终是固定的。例如,SHA-256算法只能生成256位的结果,而SHA-1始终会产生160位的摘要。

为了说明这一点,让我们将单词 "Gate" 和 "Gate" 通过 Bitcoin( 中使用的 SHA-256 哈希算法进行处理)。

SHA-256

入口

输出 (256 位)

Gate

7f98b5c76e1f90c0e51e5947eae545f3b6f4b4736c774c504d7e6741f5070861

e77b9a9ae9e30b0dbdb6f510a264ef9de781501d7b6b92ae89eb059c5ab743a0

请注意,一个小的变化(首字母大写)导致了一个完全不同的哈希值。然而,由于我们使用的是SHA-256,输出总是会有固定的256位(或64个字符),无论输入的大小。此外,无论我们将这两个词通过算法执行多少次,两个输出将保持不变。

如果我们通过SHA-1哈希算法传递相同的输入,我们会得到以下结果:

SHA-1的

入口

出发(160 bits)

Gate

96a296d224f285c67bee93c30f8a309157f0daa7

Gate

5f42c325eef7e85610308428b407748b77d8c98e

有趣的是,SHA 的意思是安全哈希算法 (安全哈希算法)。它是一组加密哈希函数,包括 SHA-0 和 SHA-1 算法,以及 SHA-2 和 SHA-3 系列。SHA-256 是 SHA-2 系列的一部分,与 SHA-512 及其他变种一起。目前,只有 SHA-2 和 SHA-3 系列被认为是安全的。

这项技术的重要性

常规哈希函数有广泛的应用,包括数据库查询、大文件分析和信息管理。另一方面,密码哈希函数在信息安全应用中被广泛使用,如消息认证和生成数字指纹。在比特币的背景下,密码哈希函数是挖矿过程的一个 integral 部分,并且在新地址和密钥的生成中也扮演着至关重要的角色。

哈希的真正潜力在于处理大量信息时显现出来。例如,可以通过哈希函数运行一个大型文件或数据集,然后利用其结果快速验证数据的准确性和完整性。这是可行的,因为哈希函数的确定性特性:输入总是产生一个压缩和简化的输出(哈希)。此方法消除了存储和“记住”大量数据的需求。

哈希在区块链技术的背景下特别有用。比特币的区块链涉及与哈希相关的多项操作,其中大多数在挖矿过程中进行。实际上,几乎所有的加密货币协议都依赖哈希来将交易链接和分组到区块中,并在每个区块之间创建加密链接,从而形成一条区块链。

密码学哈希函数

一个使用密码技术的哈希函数可以定义为加密哈希函数。一般来说,破解一个加密哈希函数需要大量的暴力破解尝试。要“逆转”一个加密哈希函数,必须通过反复试错选择输入,直到获得合适的输出。然而,也有可能不同的输入产生相同的结果,在这种情况下会发生“冲突”.

从技术上讲,密码哈希函数必须满足三个属性才能被认为是安全的。我们可以将其描述为:抗碰撞性、抗原像性和抗第二原像性。

在描述每个属性之前,我们先用三句话简要总结其逻辑:

  • 抵抗碰撞:无法找到两个不同的输入生成相同的哈希。

  • 抵抗预映像:无法 "反转" 哈希函数 ( 从给定的输出中找到输入 )。

  • 对第二前映像的抵抗:无法找到一个具有与第一个相同哈希值的第二输入。

抗碰撞

如前所述,当不同的输入产生相同的哈希时,就会发生冲突。哈希函数被认为是抗冲突的,直到有人发现这种冲突。重要的是要注意,由于无限的输入数量和有限的输出数量,任何哈希函数总会存在冲突。

因此,当检测到碰撞的概率低到需要数百万年的计算时,哈希函数被认为是抗碰撞的。因此,虽然不存在完全无碰撞的哈希函数,但有些函数是如此强大,以至于可以被视为稳定的,例如,SHA-256。(

在不同的SHA算法中,SHA-0和SHA-1家族已不再被认为是安全的,因为已发现碰撞。目前,仅SHA-2和SHA-3家族被认为是抗碰撞的。

) 预映像抗性

此属性与单向函数的概念密切相关。哈希函数被认为是抗预映像的,只要存在极低的概率,某人能够利用生成的输出找到输入。

请注意,这个特性不同于前一个特性,因为攻击者需要根据特定的输出来猜测输入。碰撞则发生在某人找到两个不同的输入,产生相同的输出,而不管使用了哪个特定的输入。

抗原像的属性对数据安全非常重要,因为消息的简单哈希可以在不需要透露额外信息的情况下证明其真实性。在实践中,许多服务提供商和网络应用程序存储并使用从密码生成的哈希,而不是以明文格式使用它们。

第二预映抵抗

这种类型的抗性位于前两种属性之间。第二前像攻击是指找到一个特定的输入,从而能够生成一个已经使用另一个已知输入产生的输出。

换句话说,第二前像攻击涉及到碰撞的检测,但其目标不是找到两个随机输入生成相同的哈希,而是寻找一个可以重现已经由其他输入生成的哈希的输入。

因此,任何抗碰撞的哈希函数也抵御第二前像攻击,因为后者总是需要一个碰撞。然而,在抗碰撞的函数上仍然可能进行前像攻击,因为这涉及到为给定的输出寻找一个输入。

矿业

在比特币挖矿中,有许多步骤是通过哈希函数来完成的。这些步骤包括验证余额、连接交易的输入和输出,以及将所有交易组合成一个块以形成梅克尔树。但比特币区块链安全的主要原因之一是矿工必须尽可能多地进行哈希操作,以最终找到下一个区块的正确解决方案。

矿工在生成候选区块的哈希时必须使用各种输入。只有当正确生成的哈希输出以一定数量的零开头时,区块才能被验证。零的数量决定了挖矿的难度,并根据网络的哈希率变化。

在此背景下,哈希率是指用于比特币挖矿的计算能力的度量。如果哈希率开始上升,比特币协议将自动调整挖矿难度,以使挖掘一个区块所需的平均时间约为10分钟。如果多个矿工决定停止挖矿,导致哈希率显著下降,挖矿难度将调整以暂时简化计算###,直到区块生成的平均时间再次回到10分钟(。

重要的是要强调,矿工不需要寻找碰撞,因为有多个哈希可以生成有效输出),前面有一定数量的零(。因此,对于特定区块存在多个可能的解决方案,矿工只需根据矿业难度设定的阈值找到其中一个。

由于比特币的挖矿是一项成本高昂的任务,矿工们没有动力去欺骗系统,因为这将导致重大财务损失。因此,加入区块链的矿工越多,区块链就会变得越大越强大。

结论

哈希函数无疑是计算机科学中基本工具之一,特别是在处理大量数据时。当与密码学结合时,哈希算法极其有用,因为它们以多种方式提供安全性和认证。因此,密码学哈希函数对几乎所有加密货币网络至关重要,理解它们的属性和工作机制对于任何对区块链技术感兴趣的人来说都是非常有价值的。

EL0.14%
查看原文
此页面可能包含第三方内容,仅供参考(非陈述/保证),不应被视为 Gate 认可其观点表述,也不得被视为财务或专业建议。详见声明
  • 赞赏
  • 评论
  • 转发
  • 分享
评论
0/400
暂无评论
交易,随时随地
qrCode
扫码下载 Gate App
社群列表
简体中文
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)