一、区块链是什么?
区块链是一种特殊的分布式数据库。
(一)区块链是数据库,主要作用还是用来保存信息。所以信息可以写入区块链,也可以从区块链读取信息。
(二)区块链没有中心节点,人很都可以成为区块链网络中的一个服务器/客户端,在区块链网络中每个节点之间平等的保存着完整的数据库。任意节点数据发生变化都会发送给网络内所有的节点,保证区块链内信息的一致性。
二、区块链最大的特征:
区块链是去中心化的,没有管理员。那么区块链是怎样保证数据安全及可信的呢?
区块链是由一个个区块组成,每个区块就行数据库中的一个数据表用来记录数据。
每个区块包含区块头,区块体。
区块头:记录当前区块的元信息:时间戳、hash..。
区块体:实际数据信息。
区块头包含了当前区块的多项元信息:
生成时间
实际数据(区块体)的hash
上一区块的hash等...
Hash是计算机对任意内容计算出长度相同的特征值,长度是256位,不管原始内容是什么,最后都计算出一个256位的二进制数字。不同内容的hash一定是不同的。
由此可以这样认为:
每个区块链区块体内容不同,所以可以用hash来标识区块链。
若果区块链内容变了,则hash也会随之变化。
三、Hash的不可修改。
区块链中区块与hash是一一对应的关系,每个区块的hash都是根据区块内容计算的。
前面说到,区块头内包含很多内容,其中就包括当前区块体的hash(区块内容计算得到),以及上一区块的hash值。这就意味着如果当前区块的内容发生改变或者上一区块的内容改变一定会引起当前区块的hash改变。如果区块的hash改变了,为了是后面的区块能连接到它,那就需要修改后边所有的区块,否则此变化的区块就会脱离区块链。除非掌握整个区块链网络51%的计算能力,否则要修改后边所有区块几乎不可能实现。
通过这种方式,保证了区块链的安全性及可靠性,数据一旦写入就无法再进行修改。