区块链科学——一文理解哈希函数

区块链科学——一文理解哈希函数

免责声明:本文旨在传递更多市场信息,不构成任何投资建议。文章仅代表作者观点,不代表火星财经官方立场。

小编:记得关注

资料来源:白话区块链

标题:学习区块链过程中的高频概念:哈希函数|白话区块链介绍250

作者|富力青年出品白话区块链

想深入了解区块链技术比特币朋友们要翻过技术墙了。从技术角度“睁眼”看比特币在区块链世界的第一杀手成功应用。为什么中本聪可以被称为外星人,而说到区块链技术就不得不提,学习区块链技术中经常用到的一门知识——哈希函数。

哈希函数是一种从任何类型数据中创建小型数字指纹方法。哈希函数将消息或数据压缩成摘要,减少了数据量,固定了数据的格式。此函数对数据进行加扰以重新创建称为哈希值的指纹。

百度百科维基百科如果真有别的名字,应该叫(专业到让人)看不懂的百科。给散列函数一个简洁的白话定义:散列函数是一系列复杂的数学变换,具有固定数量的输出值。

变换不能随意变换,应遵循以下过程:

1. 任意长度的内容(数据)

2. 经过这一系列复杂但固定的数学变换

3. 会输出固定长度和格式的数据(值)

脚注:在数学领域,H会被用来表示变化后输出的值。中文名称为消息摘要或数字指纹。

比如在比特币中,公钥生成地址时使用的是哈希函数SHA256,后面的“256”表示输出的是固定长度为256位的数据。

这种数学变换不是任何可以称为散列函数的变换。将一个数学变换升级为哈希函数,必须满足三个条件:唯一性、单向性、暴力解:

1.哈希函数的唯一性

直观的理解是:只有输入X才能得到H(X)。理解这个特性的时候,可以把哈希函数理解为你和你的指纹。你是输入,你的指纹是输出。唯一性意味着只有您可以拥有指纹。在比特币中,就是说你转账时用的只有你的公钥才能生成比特币地址,就像你的指纹是独一无二的一样,世界上没有其他人可以生成和你一样的转账地址。

2.哈希函数的单向性

哈希函数的单向性质意味着H(X) 不能反向推导X。

如果给你一个指纹,只有一个指纹的你永远无法想象指纹的主人是男是女,长什么样子。你只能知道这是指纹。

哈希函数的单向性可以用一个不准确但很形象的类比——来直观理解,猜下巴的主人是谁?

白宇就是这个男人味十足的下巴的主人?是张震吗?还是赵又廷?

答案揭晓:是我们最爱的坤坤,不是蔡徐坤,而是国足F4谢广坤

因为哈希函数的单向性,在比特币中,即使我们的接收地址是公开的,也没有人能知道生成接收地址的公钥是多少,更不用说生成公钥的私钥是什么了它。

市场上有一种说法,量子计算机的出现会让比特币变得一文不值,但现在大家应该知道,即使量子计算机出现,目前也很难破解哈希函数。哈希函数是由中本聪为比特币设定的。希望比特币有足够的时间升级到抗量子加密算法

3、hash函数暴力破解

如果知道hash值H(X),真的想求输入值X,只能从源头开始,试着一个一个的数,把每个数放到hash函数中,再看输出的hash是不是值不等于H(X)。

就像如果你真的想知道某个指纹属于谁的指纹,你只能在世界上找到一个人,将每只手上的指纹与这个指纹进行比较,看看是否完全相同,没有任何偏差。 02

正因为这三个特点,哈希函数成为了中本聪手中的利器,帮助他解决了比特币设计路上的诸多难题。在比特币白皮书中,除了前言和结语这10章,几乎每一章都看到了哈希函数的使用。

利用哈希函数的唯一性来防止——数字签名被盗用

利用哈希函数的唯一性提高效率—— Merkle树检索交易记录

利用哈希函数的单向性,保留——公钥生成比特币地址

利用哈希函数的暴力破解设计比特币的工作量证明——,当范围足够大时,用指纹是不可能找到指纹拥有者的。如果在几万人城市里找,难度会低很多。这就是比特币挖矿难度调整机制。如果你想更高的难度,你可以稍微扩大范围。

1953年出现哈希函数,1970年哈希函数蓬勃发展,2001年出现SHA-256。不可动摇的基石。

这一点来看,专家和大牛们忍不住夸赞中本聪的天才,甚至怀疑中本聪是不是外星人,就有些可以理解了。

至此,虽然你只了解比特币白皮书技术原理中哈希函数的一个基础知识,但这并不妨碍你理解比特币白皮书想要表达的50%。

除了“哈希函数”,你觉得还有哪些高频词?欢迎在留言区分享你的看法。

版权声明:区块链新手入门基础知识 发表于 2023-05-26 13:01:22。
转载请注明:区块链科学——一文理解哈希函数 | 零零洞洞

暂无评论

暂无评论...