分享

区块链 vs 分布式数据库

 昵称16619343 2019-09-03

在深入到区块链分布式存储项目之前,有必要对区块链和分布式数据库的区别做一下梳理,对区块链的存储机制有更深刻的认识。区块链可以从去中心化的数据角度分析,但它和目前的分布式数据库是存在差异的。

相同点

首先来说下区块链和数据库的相同点,我们聊的最多的是区块链的共识机制,是为了解决拜占庭问题,这是分布式系统设计都会涉及的问题,在分布式数据库中叫做一致性控制,分布式数据库采用的一般采用主-从算法比如Raft、Paxos等,而区块链将算法改进为PBFT、PoW、PoS、DPoS等协议。

存储机制,区块链与数据库一脉相承,数据库存储一般分为日志存储、用户数据存储、以及索引存储三大类。目前的区块链的“账本“存储的是交易日志,用户数据存储不一定有,根据项目而定。基于BTCUTXO结构的区块链,每个账号对应的BTC余额保存在内存哈希表中(或类似LevelDB/BerkeleyDB等KV型数据库中),没有外部数据存储模块,以太坊和超级账本Hyperledger还包含存储状态的数据模块,不论是日志存储还是状态数据存储,目前基于非关系型的数据库NoSQL在存取效率方面不如关系型数据库。当前基本没有任何区块链项目支持用户数据的自定义索引(B树索引、位图索引、全文检索)。

不同点

数据分配方面,分布式数据库可采用冗余+分割涉及,即不是所有数据都复制到所有节点,区块链是冗余复制,所有节点保存一份拷贝。

数据管理方面,分布式数据库由全局数据库管理系统控制,DBA(数据库管理员)有“生杀大权”;区块链由共识机制、分叉理论和最长链(PoW)原则共同控制,没有DBA。如果出现有的节点更新数据成功,有的节点更新数据失败的情况,则发生分叉,各节点根据最长链原则更新自己的数据。

数据安全方面,分布式数据库存在单点作恶造成全局崩溃的可能性,区块链单点作恶不影响全局。

优势和融合

数据库的优点主要是对于用户体验而言有自治权,可以定制功能,同时在稳定性和交易速度、查询检索方面优势特别突出。但存在中心化管理员、单点作恶故障和安全问题等缺陷;区块链安全、透明但耗散能量、扩展性不足,两者都有最佳适应场景,数据库适合数据需要不断更新的场合,比如监控数据、实时金融市场信息、机密信息、在线处理数据,区块链比较适合货币交易、可信数据验证、Dapps和投票、价值转移。非结构化的数据比如图片视频比较适合数据库存储,而区块链都是结构化的哈希数据形式。区块链技术和数据库融合的分布式存储数据库是技术发展的重要方向。

分布式存储IPFS

分布式存储解决的问题是是不是有必要把所有数据都存储在本地节点,如果分散存储,随着新的节点加入和退出,会不会影响到数据的完整性。目前的区块链存储效率低,成本极高,要求所有矿工都保存一个账本备份,这是非常不经济的,但这种设计初衷是为了保持网络的稳定性和抵御拜占庭攻击。

星际文件系统IPFS提出使用IPFS文件系统存储数据,将唯一永久可用的IPFS地址哈希值写入到区块链事务中,数据本身不会放在区块链中。目前区块链还涉及跨链数据的互操作问题,不同区块链数据格式不一样,协调难度大,IPFS能协助各个不同的区块链网络传递信息和文件,通过在IPFS上定义不同区块链数据结构,目前已经实现将智能合约代码通过IPFS存储,在以太坊交易中只需存储这个IPFS链接,EVM可以解析到IPFS的智能合约代码。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多