自己动手写区块链(Java版)
2018年开始区块链真是火啊。一夜暴富的例子一直在传说。今天我们就自己动手写一个基本的区块链。
先简单的说一下区块链是个什么(相信你早就知道了)。
区块链就是一个链表。把一堆区块串起来就是区块链。每个block有自己的数字签名(就是一串不规则看起来叼叼的字符串),同时包含有上一个block的数字签名,然后包含一些其他的data。
大体就长这样:
是不是很熟悉,链表。
好,继续。
数字签名是什么?就是hash。
而且每个block含有前一个block的hash值,而且每个block自己的hash也是由前一个的hash计算得来的。如果前一个block(数据块)的数据发生改变,那么前一个的hash值也改变了,由此就会影响到之后的数据块的所有hash值。
所以,通过计算和对比hash值这种方式我们就可以知道区块链是不是合法的,是不是已经被篡改。
什么意思呢