哈希是什么?

哈希是指从可变大小的输入生成固定大小输出的过程。这是通过称为哈希函数的数学公式实现的,(作为哈希算法实现。)。

虽然并非所有哈希函数都涉及加密,但所谓的加密哈希函数在加密世界中是至关重要的。正是由于它们,区块链和其他分布式系统实现了显著的数据完整性和安全性,这一点我个人认为非常迷人。

常规哈希和加密哈希函数是确定性的。这意味着,只要输入不变,算法将始终生成相同的输出 (,也称为摘要或哈希 )。我觉得令人难以置信的是,像这样复杂的东西居然可以如此可预测。

加密货币中的哈希算法被设计为单向函数,这意味着在没有巨大的计算资源的情况下,无法轻易地反转它。 从输入生成输出相对简单,但几乎不可能做到相反。 通常,找到输入的难度越大,算法被认为就越安全。 相信我,这些算法中的一些几乎是无法攻破的。

哈希函数是如何工作的?

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

为了说明这一点,让我们通过比特币中使用的SHA-256算法执行单词"Binance"和"binance" (。

SHA-256 输入:币安 输出:f1624fcc63b615ac0e95daf9ab78434ec2e8ffe402144dc631b055f711225191

入口:币安 输出:59bba357145ca539dcd1ac957abc1ec5833319ddcae7f5e8b5da0c36624784b2

您看到一个小变化)首字母大写(如何导致完全不同的哈希吗?我对这种敏感性感到着迷。但是使用SHA-256,输出总是会有固定的256位大小)64个字符(,无论输入大小如何。

另一方面,如果我们通过 SHA-1 执行相同的输入,我们得到:

SHA-1的 输入:币安 输出:7f0dc9146570c608ac9d6e0d11f8d409a1ee6ed1

入口:币安 输出:e58605c14a76ff98679322cca0eae7b3c4e08936

SHA代表安全哈希算法,指的是一组加密哈希函数,包括SHA-0、SHA-1、SHA-2和SHA-3。SHA-256属于SHA-2组。目前,只有SHA-2和SHA-3被认为是安全的,这让我质疑为什么某些系统仍在使用较旧的算法。

他们为什么重要?

传统的哈希函数有多种用途:数据库搜索、大文件分析和数据管理。加密哈希函数广泛用于计算机安全、消息认证和数字身份识别。在比特币中,它们对于挖矿以及地址和密钥的生成至关重要。

哈希的真正力量在于处理大量信息。你可以通过哈希函数处理一个巨大的文件,并使用其输出快速验证数据的准确性和完整性。这消除了存储和“记住”大量信息的需要,这在其简单性上令人称奇。

哈希在区块链中尤其有用。比特币链有许多涉及哈希的操作,主要是在矿业中。几乎所有的加密协议都依赖哈希将交易链接到区块,并在它们之间创建加密链接,有效地形成一条区块链。

加密哈希函数

一个实现加密技术的哈希函数可以定义为加密哈希函数。破解这些函数需要无限的暴力测试。要“逆转”一个加密哈希函数,某人需要通过反复试验来猜测输入,直到产生相应的输出。然而,不同的输入有可能产生完全相同的输出,从而导致“碰撞”。

从技术上讲,密码学哈希函数必须遵循三个属性才能被认为是安全的:

  • 抗碰撞性:无法找到两个不同的输入产生相同的哈希
  • 对预影像的抵抗:无法 "反转" 哈希函数
  • 对第二前像的抵抗:无法找到另一输入与特定输入发生碰撞

) 抗碰撞性

当不同的输入产生完全相同的哈希时,就会发生碰撞。哈希函数被认为是抗碰撞的,直到有人找到一个。对于任何哈希函数,碰撞总是存在的,因为可能的输入是无限的,而输出是有限的。

当哈希函数的碰撞概率低到需要数百万年的计算才能找到碰撞时,它被认为是抗碰撞的。SHA-0和SHA-1已经不再安全,因为已经找到了碰撞。目前,SHA-2和SHA-3被认为是抗碰撞的。

抵抗预图

该属性与单向函数的概念相关。哈希函数在预映像方面是抗性强的,当有人找到生成特定输出的输入的概率非常低时。

这项属性对数据保护非常重要,因为一个简单的哈希可以证明消息的真实性,而无需透露信息。许多网络服务提供商存储密码的哈希,而不是明文密码,我认为每个人都应该这样做。

第二预影抵抗

第二预映像攻击发生在某人找到一个特定输入时,该输入会生成与另一个已知输入相同的输出。它涉及找到一个冲突,但通过寻找一个生成与另一个特定输入相同哈希的输入。

任何抗碰撞的哈希函数也对第二个预映像攻击具有抗性。然而,仍然可以对抗碰撞的函数进行预映像攻击。

挖矿

比特币的挖矿涉及许多哈希操作:验证余额、关联交易的输入和输出,以及在区块内对交易进行哈希以形成梅克尔树。但真正确保比特币区块链安全的是,矿工们必须进行无数次哈希操作以找到下一个区块的有效解。

矿工在为其候选区块创建哈希值时,必须尝试多个不同的输入。只有在生成以某个数量的零开头的哈希时,才能验证其区块。这个数量决定了挖矿的难度,并根据专用于网络的哈希率而变化。

哈希率代表投入在挖矿中的计算能力。如果增加,比特币协议将自动调整难度,以保持平均挖矿时间在大约10分钟。如果多个矿工停止挖矿,难度将降低。

矿工不需要找到碰撞,因为有多个有效的哈希###以一定数量的零(开头。对于特定的区块,存在多个可能的解决方案,矿工只需要找到一个。

由于挖矿成本高昂,矿工没有理由欺骗系统,因为这会导致重大财务损失。区块链上的矿工越多,网络就变得越强大。

毫无疑问,哈希函数是计算机科学中不可或缺的工具,尤其是在处理大量数据时。与密码学结合使用,它们以多种方式提供安全性和身份验证。它们对于几乎所有的加密网络都是至关重要的,因此理解它们的属性和机制对任何对区块链感兴趣的人来说都是有益的。

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