我们可以把区块链理解成一个特殊的数据库,在这个数据库当中,区块是这个数据库中一个一个存储单元,它们记录了在一定时间之内,所有区块节点上发生的所有交流交流,这些区块之间,通过随机散列实现连接(切记是随机连接哦),后一个区块包含了前一个区块相关的相关数据,这个相关数据,我们叫他 哈希值,上一个区块的哈希值,将会作为下一个区块的头部数据,随着区块之间信息交流不断扩大,一个又一个区块相继连接,形成的结果就是区块链,因此区块链其实是一条数据链。
从表面上来看,区块链就像一段普通的网络代码,没有什么太大不同,我们可以利用现有的大多数的编程语言来构建这条链,可是从根本上来说,它所代表的是一种全新的网络思维,是一种跟传统互联网思维截然不同网络运行模式。
上述提到,区块链的各个区块之间,是通过随机散列来实现连接的,何为随机散列呢?这其实是一个数学概念,涉及了密码学中另一个名重要名词“哈希函数”。在普通数学中,我们通过结果和已知项,可以推算出未知项,哈希函数的作用就是我们通过函数的结果,很难推算出它的输入数值,很那推算出输入值,就可以让它的安全性得到保障。在区块链内,为了提供数据的安全性,所利用的随机散列组合,是哈希函数的变种,在传统哈希哈数中又增加了一个随机值,这个随机值的加入使得新的区块不可能再通过一个很简单的方式得到符合条件的哈希值,无论是多么优秀的数学天才,也几乎做不到。到底还有没有别的办法确认区块上的哈希值呢?方法只有一个,就是无限穷举,通过不断试错尝试各种可能以验证得到最终的数值。
以比特币来举例子吧:
大家都知道比特币里有矿工和挖矿的概念,那么到底什么是挖矿,怎么挖矿呢?我们可以利用区块链的原理,来解释一下矿工到底在做什么。其实矿工挖矿,就是在做无限穷举,他们在接收到区块网络上广播传来的数据块以后,会利用自己家的计算机算力,来进行无限穷举。什么叫计算机算力呢?比如说你家的计算机有100分的能力,你用这台计算机聊天看电影娱乐占据了70%的能力,那么这台计算机还剩下的30%的能力就是计算机的算力,可以利用这30%的算力去进行区块哈希值头部运算,率先找到头部矿工就获得了这个区块的打包权,与此同时,其他的区块将进行同步备份,区块链的这种技术原理,从根本上保证了网络的安全性,如果区块链中有任何节点试图私自篡改数据,但是大多数节点没有发生改变的时候,这种篡改行为会及时被整条区块链驳回,以保证整个网络的共识性和安全性。
区块链所衍生出的所有功能,其实是基于它的技术原理,所以它所能解决的所有问题,也是通过他的技术原理来解决的,在更多领域应用区块链,让区块链在更多领域解决更多问题,后面链狗将继续介绍。