中国麻将:世界上最早的区块链项目。_哈希算法


关于麻将的起源说法不一,其中最有趣的莫过于“水浒麻将”。传说万秉迢生于明朝,此人甚爱《水浒》,被梁山上的108位好汉深深折服,于是便想做一副娱乐工具来纪念他们。


中国麻将:世界上最早的区块链项目。_区块链_02


从此,麻将也就诞生了!


之所以要说起麻将的起源,是因为​麻将就是中国最早的区块链落地应用​!​我们就来说说麻将关于区块链那些事...


中国麻将:世界上最早的区块链项目。_区块链_03


1

麻将白皮书


周末到了,张三准备约上几个好友出来打麻将,于是就打电话约了李四、王五、赵六组了个麻将局。


而张三想打麻将的想法就相当于创建一个区块,而他再以打电话点对点的形式通知了李四、王五、赵六这个动作就做到了​去中心化”的点对点传输​。


于是张三、李四、王五、赵六就形成了共识,坐到了一起开始打麻将。四个人会分别摸13张随机分配的麻将,通过摸一张打一张的形式来将麻将规范化的排序来和牌。而这里面摸打的动作就可以理解为“挖矿”,四个人就是“矿工”,108张麻将就是哈希值。​而胡牌就是碰撞出了正确的哈希值,就可以获得相应的筹码奖励,也就是所谓的比特币。



中国麻将:世界上最早的区块链项目。_哈希算法_04


因为这个账本每人都有一个,所以就是分布式账本,目的就是为了防止有人篡改记录,打到最后,谁输谁赢一目了然。


整个过程,将区块链技术体现得淋漓尽致。


中国麻将:世界上最早的区块链项目。_哈希算法_05



2

什么是哈希值?


上面我们说到了和牌就是凑出了正确的哈希值,那哈希值是什么呢?


会打麻将的人都知道,第一手摸起来的13张牌是随机分配的,杂乱无章,毫无规律,所以打麻将的人需要把这13张麻将凑成规律的牌就赢了,也就是俗称的“和牌”。


那么实际上在区块链里,比特币挖矿也是一个道理,比特币“矿机”就是运算特定的哈希值,谁先算出来,谁就赢得一个比特币的奖励。


也就是说​哈希值是文件的身份证​,​不过比身份证还严格。他是根据文件大小,时间,类型,创作着,机器等计算出来的,很容易就会发生变化,谁也不能预料下一个号码是多少,也没有更改他的软件。


哈希算法将任意长度的二进制值映射为固定长度的较小二进制值,这个小的二进制值称为哈希值。​哈希值是一段数据唯一且极其紧凑的数值表示形式。如果散列一段明文而且哪怕只更改该段落的一个字母,随后的哈希都将产生不同的值。要找到散列为同一个值的两个不同的输入,在计算上是不可能的。


如果上述的概念太过于抽象,笔者就给大家举个简单的例子:互联网上的每一张图片都具有其特定的哈希值,就是这张图片在互联网时间的编号。比如把下图进行映射,会获得一个全宇宙独一无二的哈希值。


这个值是:5088698dc898f8e5c86ef0a8948b68e02c6c1c6e


中国麻将:世界上最早的区块链项目。_哈希算法_06



这个哈希值,就是这张图片在互联网时间的编号。


那哈希值是如何得出来的呢?

中国麻将:世界上最早的区块链项目。_区块链_07


而哈希值除了加密性之外,还有两个特性:

1、​不可倒推。​也就是说,你可以把一个图片映射成哈希值,却没办法通过哈希值去倒推它之前是什么图片,甚至连之前是不是图片都无从得知。这就是区块链技术不可篡改的底层逻辑。


2、​速度极快​,哈希一部20G高清电影,只需0.1秒即可得出结果。


简单综合两点特性来说就是能用极快的速度给你的文件编出不重复的号码,而且任何人都无法通过这个号码推算出文件原来的样子,什么意思呢?


总而言之,哈希值本身是一串复杂的数字,加大了反推原数值的难度。例如,数字“2”的哈希值为“c81e728d9d4c2f636f067f89cc14862c”


所以说,哈希算法具有很强的加密性,很难通过哈希值反推出原始数据的值。这就是为什么区块链具有很强的加密性,例如甲给乙转了一个比特币,全网都会知道这个比特币的交易信息,却不知道谁和谁交易了这个比特币。


但也有人说可以通过“暴力”的方式破解哈希算法,一个一个的试,直到算出正确的结果为止。


但很大程度上这种说法是不可行的,为什么呢?


比如,如果一样东西你知道在哪里,还算不算丢了。


答案肯定是“不算”。


那就说明你的东西没有丢。


散列算法也一样,好比在那个无边无际的海底,有无数沉船,但只要打捞成本远远高于货物价值,那么这些沉船就会一直呆在那。



#END#