搞区块链后端这块工作干了有三年之久, 所以被人问起频率最高、也就是最多的一个问题, 究竟是什么呢? 那就是“哈希到底是怎么的一个算法”这个具体问题。说白了, 所谓区块链哈希, 它的意思就是把任意长度的数据压缩成固定长度的指纹, 这个计算过程只要算一次就算完了, 它是不可逆的, 也是不可猜测的。
区块链哈希怎么算
我们可以拿比特币来举个简单的例子。矿工这个人群体, 把区块头这一系列数据拼接好, 然后放到一种叫做SHA-256的计算流程中去运行两遍。这样操作之后, 就会得到一段由256位数字组成的哈希值。
你要是稍微去改动里边的任何一个字节, 最终算出来的结果会变得完全不一样, 完全换了一个面貌。在行业内部, 大家把这种现象成为雪崩效应。正是因为有了这样一种性质, 它才成了保障区块链安全的非常重要的基础部分。

矿工所从事的工作内容主要是持续不断地去调节nonce这个数值, 接着反复地进行哈希运算操作, 一直到最终计算得出的结果变得比设定的那个目标值还要小才行, 这一整套流程就被叫做挖矿业务。
虽然说大概的意思用短短三句话似乎就讲解完毕了, 但是当真要把这套程序跑起来的时候, 通常需要耗费好几个小时的时间才能完成, 这完全就是依靠着强大的算力硬生生堆砌出来的过程。
区块链哈希有什么用
最要命的地方就是防篡改这个点, 因为每个区块里面都存着上一个区块的哈希值, 如果你去动了链上面哪怕是一笔交易, 那么后面所有的哈希全都对不上了, 整条链子会当场露馅儿。所以追溯的成本特别高, 大家根本就不敢动手。
关于验证签名这一方面, 交易是利用私钥对数据进行加密从而生成摘要的, 而接收方则是使用公钥进行解密操作, 随后再通过哈希比对的方式进行处理, 整个过程能够在极短的时间, 也就是毫秒级别内给出结果。
由于交易所每天的流水账单涉及到几百万笔交易, 所以完全是依靠这一套系统来作为支撑基础的, 如果这个环节无法正常运行,那么整个局面就会变得非常糟糕。
如果下次有别人来询问哈希值到底是怎么进行计算的, 你就直接扔出一句话, 内容是说使用SHA-256这个算法跑两遍, 然后把其中任意一个汉字或者是字符进行修改, 整个结果就会全部发生改变, 这样基本上就已经算是足够了。
但是如果你真的是要动手去写代码把这个东西真正地落地实现成程序的话, 那么你还必须得去反复翻阅具体的协议文档, 你会发现里面的坑其实真的不在少数。
