区块链是一种数据库结构,由一个又一个“区块”组成,每个区块中储存了一定大小的数据,区块按照各自生成的时间顺序相连形成链状结构,这就组成了区块链。
什么是区块?区块是由什么构成的?请参考“什么是区块”章节。
与传统数据库相比,区块链一般具有以下核心特点:去中心化、难以篡改、公开透明
去中心化是指如何将权力交给世界各地的人们来管理,而不是由一个人或一个实体进行集中管理。
区块链系统由许多服务器共同维护,每个参与维护的服务器都储存了区块链中所有数据的副本,只要整个系统中还有一台服务器还在运作,区块链上的数据就不会丢失。这些服务器在区块链系统中被称为“节点”,它们为整个系统提供储存空间和运算支持。
如果想要在区块链系统中记录一条新的数据,所有节点必须就这条数据达成一致——如果半数以上节点同意,所有节点共同进行记录。而区块链的节点通常由不同的实体运行,在区块链系统外没有联系。因此我们可以认为,区块链并非由单一个体或实体运行,而是由多方共同维护,这也是人们常说的区块链的核心特点:去中心化。
什么是节点?这些节点如何通过“共识机制”共同协作?什么是共识机制?请参考“什么是节点/验证者”以及“什么是共识机制“章节。
在区块链系统中,相邻的两个区块通过加密算法连接在一起。具体而言,前一个区块中的数据将被加密成一个加密摘要,并记录在下一个区块中。每一个区块的生成都依赖于前一个区块记录的数据,以此形成一条链。因此某一数据一旦被记录到某一区块中,就会不断被加密以摘要的形式传递到后续的每一个区块中。
如果想要篡改某历史区块中的数据,就会导致该区块之后所有区块的数据发生改变。但由于之后的区块都已被所有节点记录,因此需要所有节点共同修改,也就需要征得半数以上节点同意。而网络中的其他节点会认为篡改数据的行为是作恶行为,不会同意篡改。
但如果网络中半数以上的节点都被想要篡改数据的作恶者控制,那么篡改数据行为就会发生。这也是区块链系统的脆弱之处,它建立在“群体中的大多数总是正直的”假设之上。因此,在区块链系统中,如果有人掌控了半数以上的节点的控制权,他就能篡改区块链中数据,从而让自己获利。
这就是为什么区块链中的数据难以被篡改,但也存在被篡改的可能。
区块链技术基础是开源的,区块链的数据对所有人开放,所有人都可以通过公开的接口查询区块链中的数据,并开发相关应用,因此整个区块链系统是公开透明的。
想了解更多关于区块链特点的信息,请参考“什么是区块链不可能三角”章节。