来源、数据体系架构、组件、查询操作、更新操作、篡改、中心化控制程度、节点间的关系和特点上较为系统的对比分析分布式数据库与区块链的区别
前者是“分布式”的问题,后者是“去中心”的问题。分布式数据库各节点之间的关系是:信任,协作。区块链各节点之间的关系是:怀疑,制约(拜占庭错误都可以容错)。
区块链:全复制分配,无分片,所有节点都是完整数据,任何单点(全节点)均可独立完成查询
分布式数据库:查询由全局数据库管理系统下发到各节点,结合各节点数据并计算
区块链 vs数据库技术——相同点
从数据库的角度对比,区块链技术即去中心化多活数据库技术,两者之间没有本质区别。
共识机制:一致性控制—共识机制
分布式数据库中叫做一致性控制,包括传统的主从复制、新一代的Raft、Paxos等算法。在区块链中为了解决额外的拜占庭问题,将算法改进为PBFT、PoW、PoS等协议
存储机制:数据库日志—账本
区块链结构基本等价于数据库的事务日志,其主要新增的内容包括Merkle Tree结构用于快速验证数据的正确性,但是其本质与数据库的交易日志等价。同时数据库在日志中更会包括事务控制等企业级能力,是区块链数据结构所不具备的
智能合约:智能合约—存储过程
智能合约与数据库存储过程一样,都是一段托管代码。本质上智能合约与数据库存储过程没有什么区别,都是通过外部调用或虚拟机执行一段代码,并可以将托管代码共享给其他用户进行调用
分片
数据库分片机制早在MPP数据库时代就已经存在。通过将大量数据切分在不同分片中,达到限制每个分片数据总量,并提升总吞吐量和存储空间的目的
应用开发接口
当前区块链还处于类似数据库当时的早期时代,接口没有统一标准化。根据区块链项目不同,其接口可以按照数据库、对象存储、API调用、甚至PaaS平台标准进行定义
安全机制
区块链的安全机制与数据库安全机制具有相似之处。数据库安全一般分为鉴权与授权两个模块,分别代表用户登录以及访问权限。而区块链当前仅支持记录级写授权,但是对于读操作时完全共享的。因此,从安全策略上数据库比当前的区块链完善很多
3、区块链 vs数据库技术——不同点
ChainSQL区块链和数据库技术融合:去中心化数据库
数据库的SQL能力是实现其通用性的重要部分,SQL对于之后区块链的开发模式固定下来很重要。
ETH leveldb和EOS eosio::multi_index持久化API
网友评论