比特家 > 名词 > 正文

小白问答 | 详细答疑比特币采用的哈希算法

哈希算法又称散列函数、杂凑算法,是一种只能加密不能解密的密码学算法。

大家都知道,区块链的关键技术组成主要有:分布式存储技术、共识机制、智能合约、密码学技术等,而这些技术中,密码学与共识机制又最为核心。
那么今天我们就详细为你答疑密码学中的哈希算法,看看哈希函数究竟是什么鬼。
小白:听说比特币内部采用了一种叫做哈希的算法?那什么是哈希算法呢?
比特家:哈希算法又称散列函数、杂凑算法,是一种只能加密不能解密的密码学算法。

它的函数表达式为:h=H(m)
无论输入是什么数字格式、文件有多大,输出都是固定长度的比特串。以比特币使用的Sh256算法为例,无论输入是什么数据文件,输出就是256bit。

你可以把哈希算法理解成一个生成指纹的过程,每个人的指纹都是不同的,同样地,不同数据所生成出来的哈希值也是不同的。
就拿《浮士德》这么厚厚一本书来说,将这本书的所有内容通过哈希算法计算就能生成出一串特定位数的字符串,但是通过这串哈希值却无法反过来算出这本书的原内容。
小白:哈希算有哪些特点呢?
比特家:哈希算法的特点和优势,主要表现在以下方面:
  1. 正向快速:给定明文和 hash 算法,在有限时间和有限资源内能计算出 hash 值。
  2. 逆向困难:给定(若干) hash 值,在有限时间内很难(基本不可能)逆推出明文。
  3. 输入敏感:原始输入信息修改一点信息,产生的 hash 值看起来应该都有很大不同。
  4. 冲突避免:很难找到两段内容不同的明文,使得它们的 hash 值一致(发生冲突)。即对于任意两个不同的数据块,其hash值相同的可能性极小;对于一个给定的数据块,找到和它hash值相同的数据块极为困难。
小白:哈希算法有什么用?
比特家:哈希算法的用途很多,主要有以下几种:
最常见的就是用哈希算法来检验信息是否是相同;比如指纹识别的原理,就是将你的指纹信息转化成一串哈希值,下次你进行指纹识别操作的时候,只需要比对新的指纹哈希和你录入时候的指纹哈希是否相同就可以了。
当然用哈希值进行数据传输还能大大节省文件传送的时间;因为传输一本书那么长的文字内容会占据很大的空间,一般为10M以上,而通过哈希进行传输之需要几个字节的空间就够了。
此外哈希算法还可以用以检验信息的拥有者是否真实。比如,我们在一个网站注册一个账号,如果网站把密码保存起来,那这个网站不论有多安全,也会有被盗取的风险。但是如果只保存密码的哈希值代替保存密码,就没有这个风险了,因为哈希值加密过程是不不可逆的。
小白:哈希算法只能用来加密吗?
比特家:大约在1953年,哈希的思想在IBM、俄罗斯等各个地方几乎同时萌芽,那时候哈希算法仅仅是用以节省存储空间和计算机算力,后来才慢慢的变成了一种加密的手段。
小白:比特币使用的哈希算法又是如何工作的?
比特家:比特币就是依靠哈希算法加密的典型例子,所以又被称为密码学货币,比特币的区块哈希算法采用的是双重SHA-256算法。
在比特币的世界里,大约平均每10分钟会产生一个区块,这个区块包含了这10分钟内全球的所有比特币交易,打包这个区块就相当于是给系统记账。
由于比特币是去中心化的,所有人都可以来记账,那么交给谁来记账呢?
中本聪提出的解决办法是:大家一起猜数字,这个数字通过哈希算法会生成一个哈希值,谁先猜出哈希值前10位是0的数字,谁就赢了,谁就能获得记账权,并且获得比特币奖励。
小白:那挖矿不是相当于一直在碰运气吗?
比特家:可以这么说,这就是哈希碰撞的简单粗暴之处了,谁的算力大,每秒钟使用哈希值碰撞的次数才会增加,也就相当于增加了获得比特币奖励的概率。
所以,要想找到正确的那串哈希值,就只能采用枚举法:不断更换输入值,寻找满足条件的输出值。
矿工持续不断地进行运算,本质上就是在暴力破解正确的输入值,谁最先找到谁就能获得比特币奖励。
因为哈希算法是不可逆的,所以不可能从哈希值来反推出这个随机数字,只能这样一次次的猜,一次次的碰运气。
小白:哈希算法绝对安全吗?
比特家:哈希算法并不是绝对安全的,很多加密算法都已经被破解了,比如MD5加密算法。
目前对哈希算法构成威胁的就是量子计算机了,量子计算的碰撞性能十分良好,能够轻而易举地破解目前的各种加密算法,包括哈希算法以及RSA加密算法。
但是我们也不必过于恐慌,当量子计算机出现的时候,我们有理由相信加密技术已经发展上了一个新台阶了,未来更加安全难以破解的加密算法也将出现。

关于哈希算法,哈希,SHA256的相关新闻

名词解析 | 哈希是什么?哈希有什么用?

主流货币

货币市值最高 24H涨幅最高

主流钱包

币信钱包 轻钱包 教程下载
Jaxx 轻钱包 教程下载
比特派 轻钱包 教程下载
IMTOKEN 轻钱包 教程下载
MyEtherWallet 网页钱包 教程下载

主流交易所

中文 人民币 交易方式
OKEX 币币法币
OTCBTC 币币法币
币安 币币法币
BitMEX 币币法币
火币Pro 币币法币