区块链和分布式数据库有什么区别?
区块链和分布式数据库有什么区别?
1、一致性的核心共识算法和冗余的数据存储:一致性的核心共识算法和冗余的数据存储是二者最为相似的一点,即便如此,二者在技术目的上仍存在本质区别。其中,区块链使用这些技术的核心目的在于构建一个尽可能去中心的、数据资产所有权永久保护和自由转让的世界;而分布式数据库核心目的则是尽可能构建一个逻辑中心,这个中心能对外提供高性能、低成本以及扩展性好的服务。
2、不可能三角:二者都需要面对不可能三角的挑战,但二者所需要面对的具体挑战有本质的区别:其中区块链面对的是安全、去中心化和可扩展性;而分布式数据库面对的是对业务的支持度、工程实现复杂度和硬件要求。
3、一致性:一致性在区块链和分布式数据库上对应的意义也不同:区块链系统中的一致性指的是多节点对数据状态的共同维护能力;而分布式数据库系统中的一致性指的是多个副本对外呈现的状态。
4、共识算法安全级别的不同区块链系统解决的是拜占庭错误,主流算法有 POW/POS(概率算法) 和 PBFT(确定性算法)。其中,POW/POS 概率类算法的共识结果则是临时的,随着时间推移或某种强化,共识结果被推翻的概率越来越小,最终成为事实上结果。拜占庭类容错算法往往性能较差,无法容忍超过 1/3 的故障节点;而 PBFT 确定性算法一旦达成共识就不可逆转,即共识是最终结果。分布式数据库系统解决的是非拜占庭错误或故障错误,主流算法有 Paxos 和 Raft,这类容错算法往往性能比较好,处理较快,容忍不超过 1/2 的故障节点。
其次,从核心价值探究区块链和分布式数据库
区块链的核心价值
区块链的核心价值不是对外提供服务而是构建自己的数据资产世界,区块链世界更新的是状态,存储的是可追溯日志,主要数据结构分为两类:交易和区块。具体体现如下:交易用于外部世界驱动区块链世界状态的更新,它又包含两类数据:交易输入和交易输出,交易输入指明了交易的数据资产来源,交易输出指明了数据资产的去向。区块用于存储交易数据,主要由区块头和区块体两部分组成,区块头中记录了版本号、上一个区块的 Hash 地址、merkle 根、区块创建时间戳、区块的工作量难度目标以及用于计算目标的参数值,区块体包含交易数量和完整的交易数据。
分布式数据库核心价值
分布式数据库核心价值是对业务系统提供数据存取服务,其中业务数据库是面向操作的,主要服务于业务产品和开发;而数据仓库是面向分析的,主要服务于分析人员。