到底什么是哈希运算 --- 理解区块链的关键一哈希算法原理解析,如何利用函数预测博彩走势环(1)

2026-01-13

  哈希算法,SHA256,哈希函数,加密哈希,哈希预测/哈希算法是博彩游戏公平性的核心,本文详细解析 SHA256 哈希函数的运作原理,并提供如何通过哈希技术进行博彩预测的方法!

到底什么是哈希运算 --- 理解区块链的关键一哈希算法原理解析,如何利用哈希函数预测博彩走势环(1)

  一些读者反应看了我的第一篇文章,还是要读好几遍才能看懂个大概。我也反思了下,要准确全面地去理解一个新技术,有很多基础概念必须弄清楚。哈希运算(Hashing)就是其中之一。要弄明白区块链是怎么回事,对哈希运算的理解可以说是必不可少的,然而白皮书上对哈希运算只是草草一提,并没有详细的介绍。你们可曾有这样的记忆。在高中念书时,你有一道数学题毫无头绪,这时你摸了摸学霸同桌小红的手(你们可能摸其他地方),问这题怎么做啊。她会给你这么一个反应:“啊?这题啊?用

  对于研究密码学的中本聪来说,可能哈希真的没有一提的价值。也好,毕竟小聪聪要是把什么都写清楚了,我也就没有这个机会在这里装X了。我真正理解比特币的哈希运算是我读了Blockgeeks的What Is Hashing? Under The Hood Of Blockchain之后。英文好的同学可以直接点这个蓝色小链接看原版的,毕竟我这篇文章就打算像翻译一样去给你们讲解哈希运算,所以这篇文章的所有Credit归Blockgeeks所有,你们只需为我的女神小红比心,点赞我就心满意足。

  简单的说,哈希运算就是接受一个不限长度的输入(input)返回一个固定长度的输出(output)。哈希在现代密码学中有着很广泛的应用。哈希运算有很多种算法,比特币用了其中的一种,SHA256(Secure Hashing Algorithm 256)。这里提一下,在SHA256之前,有一种加密手段叫做MD5,很多期待在游侠网下载到破解版《实况足球2017》的同学可能会看到类似的帖子《实况足球2017很难被破解,因其采用了MD5加密技术》(当然,最终还是惨遭毒手了)。总之,我们只需了解SHA256是比MD5更先进的一种加密手段,各自的应用场景这里将不多做介绍(我突然有个疑问,是不是我之前看过很多文章的作者在说到不多做介绍的时候,也是跟我一样,其实是不懂)。为了更直观地理解哈希运算,我这里贴两个例子给大家比较一下。

  可以看到,无论输入的是什么,哈希值永远是一个256bit的字符串。输入的值不仅仅局限于是词,你可以输入一整本小说,你可以输入一首mp3格式的音乐,你也可以输入整个互联网,但他们的哈希值永远是256bit的字符串。有兴趣想再详细了解的同学,带着梯子戳这里。

  在密码学中,要达到公认的安全,作为哈希算法需要有以下特征,一起来过一下。

  这个特征是指,无论你对同一个输入尝试多少次哈希运算,返回的哈希值是恒定不变的。这个特征尤为关键是因为如果每次得到的哈希值不一样,你的输入值就无迹可寻,哈希运算就没有应用场景了。

  很好理解,哈希值的返还是相当迅速的。这可以保证运用时的流畅性。我们这里就试着让我的586来跑一段输入,看看具体消耗了多少时间。0.4毫秒。

  一句话描述的话,就是已知H(A),几乎不可能找到A,这里A是指输入,H(A)就是输入的哈希值。

  你们一定好奇,我们这里为什么要用“几乎不可能”。很好理解,我们来举个例子。 假设你在扔硬币,当你扔到正面时,输出的哈希值长这样:XE3890021…………………………”;当你扔到反面时,输出的哈希值长这样:“WCNMLGBO8291………………”。所以当你看到XE开头的哈希值,你可以知道扔的是正面,同理当你看到WC开头的哈希值时,你知道扔的是反面。这很简单,仅仅因为现在的情景下,只有正面和反面两种可能。但是想象一下,在现实世界中,有无数种输入的可能性存在,你希望通过H(A)找到A,你只有一种办法,那就是枚举,让计算机经过无数次的哈希运算去匹配H(A)。真这么做,可能找到A时,宇宙已经爆炸了(然而布冯还在尤文图斯守门)。

  条件:现在有两个不同的输入,一个是A,一个是B,H(A)是A的哈希值,H(B)是B的哈希值

  什么意思呢,大概意思就是如果A和B不相等,那H(A) = H(B)的可能性几乎为0。

  又来了,“几乎”,这次我们说这个话题之前,先讨论一个有趣的话题:生日悖论(Birthday Parodox)

  你在路上走,随便找一个小姐姐搭话:“小姐姐,小姐姐,我给你个东西。“这个小姐姐的生日和你是同一天的概率很小,精确的说是1/365,更精确的说是4/(365*4+1),约等于0.27%的概率,很低。

  然而,如果我把你扔进曼联足球队里,这个足球队里连教练和球员一共有23人。那现在这个足球队里,有两个人的生日是相同的概率是多少呢?我先告诉你结论,是50%。

  这里为什么要提这个生日悖论呢?现在假设你有一个128-bit的哈希值,它有2^128种可能性,运用生日悖论,你可以得到结论,在你尝试了\sqrt{2^{128}}=2^{64}次之后,你能有50%的概率使得A\ne B但是H(A) = H(B)。

  我知道你们读到这里已经很疲劳了,我同样是。本来攒足了干劲想一天把哈希运算说完的,但是写到这里我已经体力不支了,所以我在整篇文章的标题后面偷偷加上了”(1)“。这是块难啃的骨头,但它相当的关键,在下一篇里,你需要用到这个知识点去真正理解比特币矿工挖矿时,到底是在干什么。但是我保证这是本文的最后一个知识点。知识点之后,只有小红,或者你们的会所嫩模。

  对应每一个输出值Y, 如果k取值于一个high min-entropy(恕在下实在翻译不出)分布,几乎不可能找到一个输入值X,使得H(k∣x) = Y

  一个简单的理解,如果我让你从1-5中,任意选一个值k,那就是low min-entropy分布;

  这里的”∣“不再代表条件概率,它表示一种结合。这里的意思是将两个字符串相加。

  然后我们再回过头来看这句话:对应每一个输出值Y, 如果k取值于一个high min-entropy分布,几乎不可能找到一个输入值X,使得H(k∣x) = Y

  是不是有点理解了?假设你现在有一个输出值Y,让你在一个很大的范围内找一个字符串k,你几乎不可能找到一个X,使得X+k的哈希值等于Y。

  今天理解到这个步骤已经够了,等我在下篇文章中解释“挖矿”的时候,你可能会发现你进一步理解了这个概念。再次注意,这里还是有一个“几乎”。这不是不可能,实际情况是,全网络整个矿工都在做这件事,我们下一篇再说吧。

  长舒一口气。写专栏真的比我想象中来的累,这几天因为工作不是很繁忙,所以我就抓紧下班的时间,写了这第1.5篇文章。总结今天的文章,主要就介绍了哈希算法的概念和它的一些特征,下一篇文章我会结合今天的知识点(看吐槽大会的应该明白知识点的重要性),具体说一下区块链的区块长什么样;什么是默克尔树;默克尔树和区块链的关系是什么,以及“矿工”在挖矿时到底在做什么。有兴趣的同学可以关注下专栏,另外因为一个人写专栏效率太低了,我也邀请了初中和高中的学霸好友一起加入到了专栏的创作/分享中,相信你们很快会看到他。

地址:广东省广州市天河区88号 客服热线:400-123-4567 传真:+86-123-4567 QQ:1234567890

Copyright © 2012-2025 哈希游戏推荐 版权所有 非商用版本