主页 > imtoken安卓最新版 > 点阵学院:你真的了解一直挂在嘴边的哈希算法吗?

点阵学院:你真的了解一直挂在嘴边的哈希算法吗?

imtoken安卓最新版 2023-02-19 06:14:16

比特币挖矿采用的算法_比特币算法_哈希算法与比特币

欢迎来到必点学院

如果区块链相当于一个人

那么密码算法无疑是它的骨架

如果没有密码算法

比特币的诞生不知道多少年后

同时参考区块链中的加密算法

首当其冲的哈希算法

可以说哈希算法贯穿到

区块链系统的方方面面

今天我们就带你了解一下

比特币挖矿采用的算法_哈希算法与比特币_比特币算法

《白话区块链》本章哈希算法

比特币挖矿采用的算法_比特币算法_哈希算法与比特币

《白话区块链》

比特币算法_哈希算法与比特币_比特币挖矿采用的算法

区块链骨架

(1) 什么是哈希算法?

通俗地说,就是从任意输入的字符串中计算出一个定长值的方法,相当于计算一个身份证号。 哈希算法计算出的结果不能通过算法还原出原始数据,也就是说整个过程是单向的,所以适用于一些认证场合,因为哈希值可以起到类似的作用身份证号的作用,所以也可以用来判断数据的完整性,即使数据稍有变化,重新计算后的哈希值也会和之前的不一样。

我们举个例子来理解:如果我们要在图片库中输入一张新图片,如何判断图片库中是否已经添加了一张新图片? 在没有人工标注的情况下,在庞大的图库中搜索图片是一项极其庞大和困难的工作量。 但是在训练集上,可以通过哈希算法得到一系列的哈希函数。 ,通过这些函数,可以将每张图片转换成一串0~1的代码,用同样的算法计算出新图片的代码,看新图片的代码是否在图片中所有已有的代码中图书馆。 .

为了保证哈希函数的密码安全性,必须满足以下三个条件。

比特币算法_哈希算法与比特币_比特币挖矿采用的算法

1) 抗碰撞。 简单来说,当不同的输入不能产生相同的输出时哈希算法与比特币,哈希函数是防冲突的。

2)信息隐藏。 此属性意味着如果哈希函数的输出已知,则不可能反向推导输入。

3)可以隐藏(益智友好)。 如果有人希望哈希函数的输出是一个特定的值(意思是有人事先知道哈希函数的输出),只要输入部分足够随机,在足够合理的时间内破解是不可能的。 这个功能主要是为了对付伪造和仿冒。

比特币挖矿采用的算法_哈希算法与比特币_比特币算法

区块链骨架

(2) 哈希算法的种类

密码学中常用的哈希算法有MD5、SHA1、SHA2、SHA256、SHA512、SHA3、RIPEMD160,下面简单介绍一下。

MD5(消息摘要算法5)。 MD5是一种输入变长信息,输出定长128bits的算法。 通过程序流程,生成4个32位的数据,最后组合成一个128位的散列。 基本方法是求余,取余,调整长度,与链接变量循环运算得到结果。 MD5算法已被广泛使用,但目前已被证明是一种不安全的算法。 2004年王小云教授破解了MD5算法。

· SHA1。 SHA1 广泛用于许多安全协议,包括 TLS 和 SSL。 2017年2月,谷歌宣布破解SHA1,准备逐步降低其Chrome浏览器产品中SHA1证书的安全指数,逐步停止支持使用SHA1哈希算法的证书。

哈希算法与比特币_比特币挖矿采用的算法_比特币算法

· SHA2。 这是第二代SHA算法家族,支持更长的汇总信息输出,主要包括SHA224、SHA256、SHA384和SHA512,数字后缀表示它们生成的哈希汇总结果的长度。

· SHA3。 看名字就知道这是SHA算法家族的第三代。 它以前被称为 Keccak 算法。 SHA3​​ 无意取代 SHA2,因为 SHA2 目前没有明显的弱点。

· RIPEMD-160 (RACE Integrity Primitives Evaluation Message Digest160) RIPEMD160 是一个 160 位的加密哈希函数。 它旨在取代 128 位散列函数 MD4、MD5 和 RIPEMD-128。

其实除了上述算法之外,还有很多其他的哈希算法哈希算法与比特币,其中一些算法不太注重加密特性,比如负载均衡领域常用的一致性哈希算法,目的是为了快速计算服务器地址值的摘要,而不是加密,因此使用了其他一些快速散列算法。

比特币算法_哈希算法与比特币_比特币挖矿采用的算法

区块链骨架

(3) 区块链中的哈希算法

1.区块哈希:

我们都知道区块链结构中的数据是不可篡改的,这其实就是哈希算法的功劳。 区块链中的哈希算法就是对区块头进行哈希计算,得到某个区块的哈希值。 用这个哈希值来唯一确定某个区块,相当于给区块设置了一个区块。 ID号,每个区块通过这样的ID号串联起来,从而形成一个区块链结构。

比特币挖矿采用的算法_比特币算法_哈希算法与比特币

2.默克尔树:

Merkle 树在不同的区块链系统中有不同的细节,但本质是一样的。 我们用比特币中的默克尔树来说明。 比特币中的默克尔树称为二叉默克尔树,每个区块都有自己的默克尔树,通过对区块中的交易哈希值进行配对计算。 哈希值,再将哈希值配对进行哈希计算,递归循环,直到计算出最后一个根哈希值。 这样的树也称为哈希树。 Merkle book 不仅用于验证区块数据的完整性,还用于验证 SPV 钱包的支付。

比特币挖矿采用的算法_比特币算法_哈希算法与比特币

Merkle树的优点:

1、我们可以知道信息是否被篡改过。

2、我们也可以知道是哪一页或哪块信息被篡改了。

比特币算法_哈希算法与比特币_比特币挖矿采用的算法

比特币挖矿采用的算法_比特币算法_哈希算法与比特币

区块链骨架

比特币算法_比特币挖矿采用的算法_哈希算法与比特币

(4)哈希算法会被破解吗?

事实上,目前应用最广泛的两种数字签名加密算法MD5和SHA-1,已经被山东大学数学教授王晓云破解。 因此,很多人都在质疑,比特币是用一种算法来保证比特币稳定在2100万,那么这个算法可信吗? 会不会有一天被破解?

比特币软件实际使用的算法是“SHA-256”算法,属于SHA-2系列,在中本聪发明比特币时被公认为最安全、最先进的算法之一。 除了在生成地址的链接中使用 REPID-160 算法外,比特币系统中任何需要散列运算的地方都使用 SHA256。

随着比特币被更多人了解,大家开始疑惑中本聪为什么选择 SHA256。 同时,他对SHA256的安全性发表了各种看法。 SHA256 已被适当质疑。 迄今为止,没有公开证据表明SHA256存在漏洞,它仍然坚决抵制维护比特币安全的旗帜。

假设有一天攻击者发现了一种可以伪造“SHA-256”的新算法,快速计算结果,验证结果正确,我们假设这个算法比“SHA-256”快10000倍,但它极难破坏目前的挖矿系统。

它可能可以更快地挖矿,但要伪造交易,它必须拥有当前算力的 50% 以上。 就算算力提升一万倍,以现在庞大的算力,也很难锻造。 而且伪造的奖励远低于诚实挖矿的奖励。

但是针对“SHA-256”算法的攻击,可以肯定的是,一定是针对这个算法的攻击。 所以大家都明白,没有永远安全的算法,SHA256被取代是迟早的事情。 中本聪亲自解释了算法升级的必要性和过程。

因此,尽管哈希算法本身在理论上是不可逆的,但其思想却保证了它不是绝对可靠的。 被认为安全的算法往往在使用很长时间之前就被攻击成功,新的更安全的算法会陆续被设计出来。

比特币算法_比特币挖矿采用的算法_哈希算法与比特币

比特币算法_哈希算法与比特币_比特币挖矿采用的算法

喜欢姐姐的声音就关注我吧