简单来说,你可以把区块链拿来做分布式数据库用,但它同时还可以用来做点别的。
这就好比一台笔记本电脑,你可以把它当 U 盘使,存放各种文件,扛着东奔西走。但它还可以是一台电脑,打打游戏看看电影,不在话下。
分布式数据库,顾名思义,就是把数据库分布式地部署在不同的机器(也可被称作“节点”)之上。
这个定义从表面上看,确实和区块链中“全节点保存所有区块的模式”,其所能实现的效果是一致的。这也是前面提到的:区块链可以用来做分布式数据存储的原因。
可是虽然功能相仿,但被用于做数据存储的区块链和实际中的分布式数据库还是有一些明显的区别。
1、设计初衷:两者完全不同
分布式数据库是分布式计算在数据库上的实践,为的是降低成本并同时提升效率,所以各节点之间是互信的。而区块链设计的初衷,则完全是为了解决不信任的问题。区块链的这种设计理念也就使得其效率远低于常规的分布式数据库。
2、各节点存储的数据量:两者不同
区块链中全节点上的数据一定是所有数据的全量备份,而分布式数据库中的节点则未必。典型的比如 Hadoop 中的 HDFS,各节点中只保存了全量数据的一部分。这样既可以充分有效地发挥各个分布式节点的效能,又有利于提高后续查询的并行效率。
3、数据维护的主体数量:两者也不同
除非是自己搭建的个人链,区块链中各个节点是归属于不同主体的,因此区块链是由多个主体共同维护的一套数据记录。而实际运用的分布式数据库,大多数情况下只有一个主体,出于安全或效能的原因,将数据分布式存储。
和数集团认为,在作为数据存储这个功能上,区块链虽然和分布式数据库有些相同之处,也能实现分布式数据库的一些基本功能,但两者的底层逻辑则是完全不同,就更不用再去讨论两者在分布式系统中最核心的 CAP 规则上的巨大差距了。
虽然把区块链当作分布式数据库有其天然的不足,但在对数据运算处理的功能上,区块链又有它独特的优势。