区块链: 哈希算法

Posted 唐三爱吃肉

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了区块链: 哈希算法相关的知识,希望对你有一定的参考价值。

区块链, 就像赤壁之战中曹军使用铁索相连的船队.


若以大船小船各皆配搭,或三十为一排,或五十为一排,首尾用铁环连锁,上铺阔板,休言人可渡,马亦可走矣,乘此而行,任他风浪潮水上下,复何惧哉?

——庞统的"妙策"



区块链中每个数据块就是船队中的一条船, 每条"船"都保存着三个信息.

  • 士兵, 对应真正的数据.


对于曹军而言, 所有的船只串成了一条船链, 可以称为ShipChain. 通过追溯前一条船的编号, 就可以获知每条船的士兵信息. 区块链则是把所有数据块串成了一条数据链, 称其为BlockChain. 如下图所示.



    数据 + hash算法 -> hash值


可见, hash算法常用作数据的特征码. 只要数据有任何更改, 即使只是一个bit, hash算法的结果(或称为hash值)也会完全不同. 并且hash算法是不可逆的加密算法, 即不能通过结果反推回原数据.


计算机领域中, 有两个最著名的hash算法.

  • MD5

  • SHA-2

区块链使用的是SHA-256算法.


假如有一个士兵叫"tang san", 其SHA-256值, 2d9a5665e31a64ba05583fca34c788df084385a5e80cab1496b0a156119267d1, 如果对"tang san"做更改, 如"tan san", 将得到完全不一样的SHA-256值, dd22c16f146d43c5bd368d9ef05921bfd3cfd1673cd7721efeba0da303ac0d46.


区块链使用hash算法的以上特性, 对数据块做"数字签名". 类似于软件发布一样, 区块链将"数据"及其"签名"(hash值)一起发布, 这样任何人都可以对数据进行验证.



根据"只要数据有任何更改, 即使只是一个bit, hash算法的结果(或称为hash值)也会完全不同", 在这样的连锁链中, 修改老区块的成本是连同修改其后所有的区块. 也就是说, 越老的区块越安全, 而新区块则相对不安全.

以上是关于区块链: 哈希算法的主要内容,如果未能解决你的问题,请参考以下文章

22区块链世界的哈希算法?什么是哈希值?

区块链知识| 哈希算法

区块链100讲:据说,80%的人都搞不懂哈希算法

区块链:防篡改的哈希加密算法

区块链黑板报 | 哈希算法

科技康康区块链中的哈希算法