🍁 金秋送福,大奖转不停!Gate 广场第 1️⃣ 3️⃣ 期秋季成长值抽奖大狂欢开启!
总奖池超 $15,000+,iPhone 17 Pro Max、Gate 精美周边、大额合约体验券等你来抽!
立即抽奖 👉 https://www.gate.com/activities/pointprize/?now_period=13&refUid=13129053
💡 如何攒成长值,解锁更多抽奖机会?
1️⃣ 进入【广场】,点头像旁标识进入【社区中心】
2️⃣ 完成发帖、评论、点赞、社群发言等日常任务,成长值拿不停
100% 必中,手气再差也不亏,手气爆棚就能抱走大奖,赶紧试试手气!
详情: https://www.gate.com/announcements/article/47381
#成长值抽奖赢iPhone17和精美周边# #BONK# #BTC# #ETH# #GT#
哈希:加密货币中的基本元素
哈希过程涉及从可变输入生成恒定大小的输出。这是通过一种称为哈希函数的数学公式实现的,该公式被实现为一种算法。
虽然并非所有的哈希函数都与密码学相关,但密码学哈希函数在加密货币的世界中至关重要。得益于它们,区块链和其他分布式系统能够达到高水平的数据完整性和安全性。
传统哈希函数和加密哈希函数都有一个关键特征:它们是确定性的。这意味着,只要输入不变,哈希算法就会始终产生相同的输出 (,也称为摘要或哈希)。
特别是,加密货币中使用的哈希算法被设计为单向函数,这意味着几乎不可能在没有大量时间和计算资源的情况下将其逆转。换句话说,从输入中获得结果很简单,但反过来做极其复杂。通常,推导输入的难度越大,哈希算法就越安全。
哈希函数的工作原理
不同的哈希函数产生不同大小的结果,但每个哈希算法的输出大小始终是恒定的。例如,SHA-256算法始终生成256位的输出,而SHA-1则始终产生160位的摘要。
为了说明这一点,让我们将比特币中使用的SHA-256哈希算法(应用于单词"Gate"和"Gate"。
SHA-256
输入
输出 )256 位(
门
9e14f90f0831e9d9c9f4f90df9e9f90c9f4f90df9e9f90c9f4f90df9e9f90c9
门
1e9d9c9f4f90df9e9f90c9f4f90df9e90c9f4f90df9e90c9f4f90df9e9f
观察如何小的变化)如从大写到小写的转换(会导致完全不同的哈希值。然而,使用SHA-256时,输出始终具有固定的256位大小)或64个字符(,无论输入的大小如何。此外,无论我们用算法处理这两个词多少次,两个输出都将保持不变。
另一方面,如果我们对相同的输入应用SHA-1哈希算法,将得到以下结果:
SHA-1的
输入
输出 )160 位(
门
c9f4f90df9e9f90c9f4f90df9e9f90c9f4f90df
门
f90df9e9f90c9f4f90df9e9f90c9f4f90df9e9
SHA的缩写代表安全哈希算法,指的是一组加密哈希函数,包括SHA-0和SHA-1算法,以及SHA-2和SHA-3组。SHA-256属于SHA-2组,连同SHA-512和其他变体。目前,只有SHA-2和SHA-3组被认为是安全的。
哈希函数的相关性
常规哈希函数有广泛的应用,包括数据库搜索、大数据分析和信息管理。而密码学哈希函数则广泛用于信息安全应用,如消息认证和生成数字指纹。在比特币的背景下,密码学哈希函数在挖矿过程中是至关重要的,并有助于生成新的地址和密钥。
哈希的真正潜力在于处理大量信息时的表现。例如,可以通过哈希函数处理一个大型文件或数据集,并使用输出快速验证数据的准确性和完整性。这是可行的,因为哈希函数的确定性特性:输入始终产生一个简单明了的输出 )hash(。这种技术消除了存储和“记住”大量信息的需要。
特别是,哈希在区块链技术中极为有用。比特币的区块链涉及多个使用哈希的过程,主要是在挖矿过程中。事实上,几乎所有的加密货币协议都基于哈希将交易分组到区块中,并在单个区块之间生成加密链接,从而有效地创建了一条区块链。
加密哈希函数
一个实现了密码技术的哈希函数被定义为密码哈希函数。一般来说,破解一个密码哈希函数需要相当大的暴力破解努力。如果有人试图 "反转 "一个密码哈希函数,他们必须通过试错来猜测输入,直到获得正确的输出。然而,不同的输入也可能产生完全相同的输出,这称为 "碰撞"。
从技术上讲,密码学哈希函数必须满足三个属性才能被认为是安全和有效的。我们可以将其描述为抗碰撞性、抗原像性和抗第二原像性。
我们将这个逻辑总结为三句话:
抗碰撞性:很难找到两个不同的输入产生相同的哈希作为输出。
抗原像性:很难 "反转" 一个哈希),从可用的输出推导输入(。
二次预映像抗性:很难找到与特定输入碰撞的第二输入。
) 碰撞抵抗力
当不同的输入产生相同的哈希时,就会发生碰撞。因此,哈希函数被认为是抗碰撞的,直到发生碰撞。值得注意的是,对于任何哈希函数,这些碰撞总会存在,因为可能的输入是无限的,而可能的输出是有限的。
换句话说,当找到哈希碰撞的概率极低,需要数百万年的计算时间时,就说一种哈希函数是抗碰撞的。因此,尽管不存在完全无碰撞的哈希函数,但一些哈希函数非常强大,可以被视为强健的###例子:SHA-256(。
在各种SHA算法中,SHA-0和SHA-1组已不再被认为是安全的,因为已发现碰撞。目前,SHA-2和SHA-3组被认为是抗碰撞的。
) 预影抵抗
抵抗预映像的属性与单向函数的概念相关。当某个哈希函数的某个特定输出所对应的输入被找到的概率非常低时,便认为该哈希函数是抵抗预映像的。
重要的是要注意,这一属性与前一个不同,因为攻击者在这里试图通过观察可用的输出来猜测输入。另一方面,碰撞发生在某人找到两个不同的输入产生相同的输出时,无论使用哪个输入。
抵抗原像的属性对于保护数据非常有用,因为消息的简单哈希可以证明其真实性而不泄露信息。在实践中,许多服务提供商和网络应用存储并使用生成的密码哈希,而不是明文密码。
二次预映抵抗
总而言之,我们可以说第二前像抵抗性位于上述提到的两个属性之间。第二前像攻击发生在某人成功找到一个特定输入,该输入产生与另一已知不同输入相同的输出时。
换句话说,第二原像攻击是指寻找碰撞,但不是寻找两个随机输入产生相同的哈希值,而是寻找产生由特定输入生成的相同哈希值的输入。
因此,任何抗碰撞的哈希函数也都是抗第二前映像攻击的。然而,仍然可以对抗碰撞的函数进行前映像攻击,因为这意味着需要从唯一的输出中找到唯一的输入。
矿业
在比特币的挖矿过程中,有许多步骤涉及哈希函数,如验证余额、链接输入和输出交易,以及在一个区块内哈希交易以形成梅克尔树。但比特币区块链安全的主要原因之一是矿工们必须进行大量的哈希运算,以最终找到下一个区块的正确解决方案。
具体来说,矿工在为其候选块生成哈希值时必须尝试多个不同的输入。实际上,只有在生成一个以一定数量的零开头的输出哈希时,他才能验证自己的区块。零的数量决定了挖矿的难度,而这取决于网络的特定哈希率。
在这种情况下,哈希率代表用于比特币挖矿的计算能力。如果网络的哈希率增加,比特币协议将自动调整挖矿难度,以保持挖掘一个区块所需的平均时间接近10分钟。相反,如果一些矿工决定放弃活动,导致哈希率急剧下降,挖矿难度将会调整,使其变得更容易###,直到平均区块时间再次回到10分钟(。
重要的是要理解,矿工不需要找到碰撞,因为有许多哈希可以作为有效输出),前面有一定数量的零(。因此,对于特定区块存在多种可能的解决方案,矿工只需要找到一个满足挖矿难度级别设定的阈值的解决方案。
由于比特币挖矿是一项昂贵的任务,矿工们没有动力去欺骗系统,这将导致重大财务损失。加入区块链的矿工越多,区块链就会变得越大越强。
最终反思
毫无疑问,哈希函数是计算机科学中的一项基本工具,尤其是在处理大规模数据时。当与加密技术结合时,哈希算法可以非常灵活,并以多种方式提供安全性和真实性。因此,密码学哈希函数对于几乎所有加密货币网络都是必不可少的,因此理解它们的性质和工作原理对任何对区块链技术感兴趣的人来说都非常有用。