比特币和区块链的基石:哈希函数_比特币:hot币的前景

之前我们介绍过比特币诞生的偶然性和必然性,比特币是历史上第一次成功的个人依靠技术手段发行货币。若想要这个货币能够顺利流通起来,“中本聪”有很多事情要做。他必须让人们相信,这个电子现金系统的账本不是由他“中本聪”,也不是任何人能够控制和篡改的。为达到这样的自证清白的效果,他必须引用一种强大的验证机制,可以让任何人快速地发现数据被篡改,让坏人无处遁形。这种数据防篡改的技术基石正是哈希函数。

哈希函数的最基础作用是保证数据的一致性。试想,Alice在经过了一晚上的努力之后终于编写出一个非常重要的文件,她第二天要利用这个文件做很多关键的操作。那么,她如何保证这个文件没有被篡改呢?她的主机很可能被黑客或其他人侵入,如果文件直接保存在主机上,很可能的结果是文件被篡改了,如果这个文件是一个发放工资单的列表,黑客很可能会加入一些原本不存在的名字而使Alice上当受。

我们还是先来说说哈希函数的特性,哈希函数可以归纳为公式:Y=H(x)。这里面的H函数有个特点,对于不同的输入x,它都可以产生一个固定长度的Y,也就是哈希值。事情好像在朝着我们的预期发展,由于Y的长度是固定的,那么也可以认为Y的取值范围是有限的,而x的长度是不固定的,那么x的取值范围是无限的,这势必会导致一个结果,出现一个x和x’,x!=x',但H(x)=H(x')。这就是所谓的碰撞!

回到前面的话题,如果黑客篡改了文件,并利用碰撞找到一个办法使新文件的哈希值与旧文件相同,他就作恶成功了!当然,这是不可能的,如果真的发生了我们描述的画面,那么比特币早已经胎死腹中了!事实上,哈希函数是防碰撞的,当然这个防碰撞是有一定前提的。像MD4、MD5、SHA1这样的哈希函数已经被我国密码学家、中科院院士王小云带领她的团队破解了。比特币使用的是SHA2里面的sha256哈希函数,也就是说这个哈希值的取值范围是2的256次幂,在这样的取值范围之内想要达到一次碰撞只是理论上的可能,站在这个角度上说比特币的哈希函数是防碰撞的。

有了哈希函数的防碰撞特性,当一个数据被修改后,可以立即通过哈希值验证出来,而比特币的基础数据结构默克尔树,以及时序的区块链式结构都是基于哈希函数构造的,这样的两个结构可以保证区块链发生的每个交易都不可篡改,一旦篡改会立刻被验证出来,并被其他节点所抛弃。

关于哈希函数的知识点尚未介绍完,我们将在下一篇再展开讨论。欢迎大家留言,评论。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:0ms0-3:433ms