链尚教育科普:区块链(数据结构)的哈希
在区块链的学习过程中,发现有一个词像幽灵一样反复出现,“哈希”,英文写作“HASH”。这个“哈希”据说是来源于密码学的一个函数,尝试搜一搜,论文出来一堆一堆的,不是横式就是竖式,不是表格就是图片,还有一堆看不懂得xyzabc。那么链尚教育来为大家介绍一下区块链(数据结构)的哈希。区块链哈希是什么?
哈希是英文Hash的音译,它是一种信息压缩的方法。利用哈希能够将很长的一段文字,压缩成很短的一段乱码,然后获得这段信息的“摘要”。所谓"哈希"就是计算机可以对任意内容,计算出一个长度相同的特征值。区块链的 哈希长度是256位,这就是说,不管原始内容是什么,最后都会计算出一个256位的二进制数字。而且可以保证,只要原始内容不同,对应的哈希一定是不同的。
区块中的哈希
在区块链中,每个区块中都有前一个区块的哈希值,前一个区块叫做当前区块的父区块。由于每个区块都有前一个区块的哈希值,当修改当前区块的任意数据都会导致区块的哈希值发生变化,这会对前一个区块产生影响,因为其中含有前一个区块的地址。
比如,当前有两个区块,一个是当前区块,一个是父区块。当前区块中有父区块的地址,如果需要修改当前区块的数据,就需要对父区块链进行修改。如果只有两个区块就比较好修改数据,但事实上区块链上有很多的区块。
举个例子:超市购物中的“哈希”
日常生活中,见到过超市的购物结算单据,或者在电商下单时,有个订单号。其实哈希值就可以理解为在每笔交易区块链上的“订单号”,或者说是“电子凭证”。
购买多件商品,想不起来自己购买的物品的具体价格,可通过在订单和电子凭证上进行检索查询,继而找到相关信息。每个哈希都能准确的识别到已经标记的一个区块,而通过在区块链浏览器上检索哈希值,就可以找到对应的区块了。
哈希的其他称呼
散列函数(或散列算法,又称哈希函数,英语:Hash Function)是一种从任何一种数据中创建小的数字“指纹”的方法。散列函数把消息或数据压缩成摘要,使得数据量变小,将数据的格式固定下来。该函数将数据打乱混合,重新创建一个叫做散列值(hash values,hash codes,hash sums,或hashes)的指纹。散列值通常用一个短的随机字母和数字组成的字符串来代表。好的散列函数在输入域中很少出现散列冲突。在散列表和数据处理中,不抑制冲突来区别数据,会使得数据库记录更难找到。
举例来说,字符串123的哈希是(a8fdc205a9f19cc1c7507a60c4f01b13d11d7fd0)(十六进制),转成二进制就是256位,而且只有123能得到这个哈希。(理论上,其他字符串也有可能得到这个哈希,但是概率极低,可以近似认为不可能发生。)
注:链尚教育专注区块链技术与基础知识培训,联合蚂蚁链及武汉大学,共建武汉市首家区块链培训认证中心,构建全面的区块链人才培养体系,致力于培养高层次、复合型区块链人才。
汇聚武汉大学雄厚的教学资源及蚂蚁链全球领先的技术优势,链尚培养能够满足于社会各个领域的多层次区块链人才需求,助力武汉“区块链之城”的建设,实现区块链技术的经济效益和社会效益。
页:
[1]