接触区块链

这里是看阮一峰大佬的一篇文章的简单记录,只是搬运工。

一、区块链的本质

一句话,它是一种特殊的分布式数据库。

首先,区块链的主要作用是储存信息。任何需要保存的信息,都可以写入区块链,也可以从里面读取,所以它是数据库。

二、区块链的最大特点

区块链没有管理员,它是彻底无中心的。

没有了管理员,人人都可以往里面写入数据,怎么才能宝成数据是可信的呢?被坏人改了怎么办?

三、区块

区块链由一一个个区块组成。区块很像数据库的记录,每次写入数据,就是创建一个区块。

区块包含两个部分:

1、去块头:记录当前区块的元信息

2、区块体:实际数据

什么是hash,要着重理解。所谓hash,就是计算机可以对任意内容,计算出一个长度相同的特征值。

两个重要推论:

推论1、每个区块的hash都是不一样的,可以通过hash标识区块。

推论2、如果区块的内容改变了,它的hash一定会改变。

四、hash的不可修改性

区块与hash是一一对应的,每个区块的hash都是针对“去块头”计算的。

一点很重要:

如果当前区块的内容改变了,或者上一个区块的hash变了,一定会引起当前区块的hash改变。

这一点即联动机制,区块链保证了自身的可靠性,数据一旦写入,就无法被篡改。这就像历史一样,发生了就是发生了,从此再无法改变。

五、采矿

节点之间必须要保证同步,所以新区块的添加速度不能太快。大概十分钟产生一个区块。

那么是采矿呢,采矿就是通过极其大量的计算,得到当前区块的有效hash,从而把新区块添加到区块链,这个过程就叫采矿。计算hash的机器就叫做矿机,操作机器的人就叫做矿工。

六、难度系数

这里就不赘述了,总之一句话,计算出满足条件的hash特别难,需要极其大量的计算。

七、难度系数的动态调节

这一点怎么理解呢,中本聪在设计区块链的时候是十分钟产生一个区块,但是这个并不是就是说完全的10分钟产生一个区块,有个刚好10分钟,有可能五分钟一个,也有可能一个小时产生一个。所以需要动态的调节产生区块链的难度系数。中本聪规定,难度系数每两周调整一次。

八、区块链的分叉

同步问题,即同一个时刻,有两个区块加入,都连着前面一个区块,那么这样就形成了分叉,这时该如何选择呢?

六次确认:看哪个分叉在分叉点后面,先达到6个新区块。

原文地址:https://www.cnblogs.com/tolazychen/p/8334591.html