主页 > imtoken钱包安卓版下载步骤 > 欧奇云链研究院|今日学习:哈希算法

欧奇云链研究院|今日学习:哈希算法

问题指南

1、哈希算法在区块链中的作用是什么?

2、什么是哈希算法?

3、哈希算法是可逆的吗?

4. 比特币使用什么哈希算法?

比特币挖矿的算法_比特币算法_详解比特币挖矿算法

影响

在学习哈希算法之前,我们需要知道哈希在区块链中的作用

详解比特币挖矿算法_比特币挖矿的算法_比特币算法

哈希算法的工作原理如下:

区块链通过哈希算法对交易区块中的交易信息进行加密,并将信息压缩成由一系列数字和字母组成的哈希字符串。

区块链的哈希值可以唯一准确地标识一个区块。 区块链中的任何一个节点都可以通过简单的哈希计算得到区块的哈希值。 计算出的哈希值不会改变。 这意味着区块链中的信息没有被篡改。

比特币算法_详解比特币挖矿算法_比特币挖矿的算法

定义

哈希(hash或hash)算法是信息技术领域中一项非常基础和非常重要的技术。 它可以将任意长度的二进制值(明文)映射到较短的定长二进制值(哈希值),难以将不同的明文映射到同一个哈希值。

比特币算法_比特币挖矿的算法_详解比特币挖矿算法

例如计算一句“hello blockchain world, this is yeasy@github”的md5 hash值为89242549883a2ef85dc81b90fb606046。

$ echo “你好,区块链世界,我是 yeasy@github”|md5

89242549883a2ef85dc81b90fb606046

这意味着我们只需要对一个文件进行md5哈希计算,结果为89242549883a2ef85dc81b90fb606046,也就是说该文件的内容极有可能是“hello blockchain world, this is yeasy@github”。 可以看出,hash的核心思想与基于内容的寻址或命名非常相似。

注:md5是经典的hash算法,它和SHA-1算法都被证明在商业场景中使用安全性不够。

一个优秀的哈希算法将能够实现:

比特币挖矿的算法_比特币算法_详解比特币挖矿算法

· 转发快:给定明文和哈希算法,可以在有限的时间和有限的资源内计算出哈希值。

逆向难度:给定(几个)哈希值,在有限时间内很难(基本不可能)逆向明文。

Input Sensitive:如果对原始输入信息稍作修改,生成的哈希值应该看起来很不一样。

· 避免冲突:很难找到两段内容不同的明文,使其散列值一致(发生冲突)。

避免碰撞有时被称为“碰撞阻力”。 如果给定一个明文前提,不可能找到另一个发生碰撞的明文,称为“弱抗碰撞”; 如果任意两个明文都找不到而发生碰撞,则该算法称为“强抗碰撞”。

流行算法

比特币挖矿的算法_详解比特币挖矿算法_比特币算法

· 目前流行的散列算法有MD5(已被证明是不安全的)和SHA-1,两者都是基于MD4设计的。

· MD4(RFC 1320)由MIT的Ronald L. Rivest于1990年设计。MD是Message Digest的缩写。 它的输出是 128 位。 MD4 不够安全。

· MD5 (RFC 1321) 是 Rivest 在 1991 年对 MD4 的改进版本。它仍然在输入上打包 512 位,在输出上打包 128 位。 MD5 比 MD4 更复杂,计算速度稍慢,但更安全。 MD5 不够安全。

· SHA1 (Secure Hash Algorithm) 是由 NIST NSA 设计的。 它的输出是一个长度为 160 位的哈希值,因此具有更好的抗耗尽性。 SHA-1 是根据与 MD4 相同的原理设计的,并模仿了该算法。

· 为了提高安全性,NIST NSA 还设计了 SHA-224、SHA-256、SHA-384 和 SHA-512 算法(统称为 SHA-2),这些算法与 SHA-1 算法的原理类似。

比特币算法_比特币挖矿的算法_详解比特币挖矿算法

比特币算法_详解比特币挖矿算法_比特币挖矿的算法

表现

通常,哈希算法是计算敏感的,这意味着计算资源是瓶颈,时钟速度越高的 CPU 执行哈希的速度越快。

还有一些哈希算法对计算能力不敏感,比如scrypt比特币算法,需要大量的内存资源,节点不能简单地增加更多的CPU来提高哈希性能。

数字摘要

顾名思义,数字摘要就是对数字内容进行哈希运算,得到一个唯一的摘要值来引用原始数字内容。

数字摘要是为了解决保证内容不被篡改的问题(利用哈希函数的防冲突特性)。

数字摘要是散列算法最重要的用途之一。

在互联网上下载软件或文件时,往往会同时提供一个数字摘要值。 用户可以计算自己下载的原始文件比特币算法,并与提供的汇总值进行比较,确保内容没有被修改。

下一节介绍一些关于哈希算法的补充内容。