区块链: 哈希算法
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值)也会完全不同", 在这样的连锁链中, 修改老区块的成本是连同修改其后所有的区块. 也就是说, 越老的区块越安全, 而新区块则相对不安全.
以上是关于区块链: 哈希算法的主要内容,如果未能解决你的问题,请参考以下文章