首页
学习
活动
专区
工具
TVP
发布

理解区块链、必须先要理解区块链哈希值!

理解哈希,就是理解区块链所必须的,所谓哈希就是计算机可以对任意内容,计算出一个长度相同的特征值。

区块链的哈希长度是256位,就是说不管原始内容是什么,最后都会计算出一个256位的二进制数字,它可以是一个笑脸、一个语音、一段话或者一个视频。

而且可以保证,只要原始内容不同,对应的哈希一定是不同的:

举例来说,字符串123的哈希是这个,转换成二进制就是256位,而且只有123能够得到这个哈希,理论上其它字符创也有可能得到这个哈希,但是概率是极低的,可以近似认为是不可能发生,因此就有了两个重要推论。

1.每个区块的哈希都是不一样的,可以通过哈希识别区块。

2.如果区块的内容改变了,它的哈希一定会改变,区块以哈希是一一对应的,每个区块的哈希都是针对区块头计算的,也就是说,把区块头的各项特征值按照顺序连接在一起,组成一个很长的字符串,再对这个字符串计算哈希,Hash=SHA256(区块头)这个就是区块哈希的计算公式。

SHA256区块链的哈希算法,注意这个公式里面只包含了区块头,不包含区块体,也就是说,哈希是由区块头唯一决定的。

区块链的发明者中本聪故意让添加新区块化变得困难,它的设计是平均每十分钟全网才能产生一个新的区块,一小时也只产生六个而已,这种产出速度不是通过命令达成的,而是故意设置了海量的计算。

也就是说只有通过这些大量的计算,才能得到当前区块的有效哈希,从而把新区快添加到区块链,由于计算量太大,所以快不起来,这个过程叫做采矿,也叫做挖矿。

因为计算有效哈希的难度,好比在全世界的沙子里面找到一粒符合条件的沙子,计算哈希的机器叫做矿机。

操作矿机的人叫做矿工,读到这里你可能还会有一个疑问,人们都说采矿好困难,可是采矿不就是用计算机,来计算出一个个哈希吗,这正是计算机的强项啊,怎么会变得困难呢。迟迟算不出开,原来不是任意一个哈希都可以,只有满足条件的哈希才会被区块链所接纳,这个条件特别的苛刻,使得绝大部分哈希都不能够满足要求,必须重算。

原来,哈希头包含一个难度系数,这个值决定了计算哈希的难度,举例来说,第十万个区块的难度系数是14000,区块链协议规定,使用一个常量除以难度系数,可以得到目标值。

显然,难度系数越大,目标值越小,哈希的有效性跟目标值密切相关,只有小于目标值的哈希才是有效的,否则哈希无效,必须重算,由于目标值非常小,哈希小于该值的机会极其渺茫,可能计算十亿次才能中一次,这就是采矿如此之慢的原因……

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20220223A0074X00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券