区块链,一种非常特殊的分布式数据库

栏目: 数据库 · 发布时间: 6年前

内容简介:经过近2年的市场泡沫,仍然有人问我什么时候需要使用“分布式账本”,而不是标准的“分布式数据库”。其他(恶毒的)人问我“区块链技术”和“分布式账本技术”有什么区别。 让我们来澄清一下这里的概念和词汇问题。关系型数据库(RDBMS)在一张表里面组织数据,同时使用SQL语言查询数据。它们在80年代成为标准。即使它们的体系结构随着时间的推移而变得越来越复杂(n层、分布式处理等),它们本质上仍然是集中式的,即定位、存储和维护数据都在同一个位置上。这个类别占数据库市场收入的90%以上,包括最知名的供应商和系统:MyS

经过近2年的市场泡沫,仍然有人问我什么时候需要使用“分布式账本”,而不是标准的“分布式数据库”。其他(恶毒的)人问我“区块链技术”和“分布式账本技术”有什么区别。 让我们来澄清一下这里的概念和词汇问题。

集中式关系型数据库

关系型数据库(RDBMS)在一张表里面组织数据,同时使用 SQL 语言查询数据。它们在80年代成为标准。即使它们的体系结构随着时间的推移而变得越来越复杂(n层、分布式处理等),它们本质上仍然是集中式的,即定位、存储和维护数据都在同一个位置上。这个类别占数据库市场收入的90%以上,包括最知名的供应商和系统:MySQL、Oracle、Microsoft SQL Server、IBM DB2、SAP、PostgreSQL、 SQLite 、Teradata等。

分布式数据库

当存储设备不是全部连接到公共处理单元(如CPU)上,而是分布在网络上时,数据库就是分布式的(DDBMS)。随着互联网的发展,企业需要能够处理大量结构化和非结构化数据的解决方案,并且能够跨网络进行扩展。DDBMS使用共识机制来确保容错通信,并通过锁定或时间戳机制提供并发控制。它们以不同的技术形式出现:

1、对等网络节点数据存储系统允许用户通过网络复制和共享文件,利用点对点协议,如:BitTorrent、NNTP、Freenet、Mnet等。

2、分布式SQL数据库是由主要供应商(Microsoft、Oracle、SAP、IBM等)设计的系统,允许对面向分析的任务进行大规模并行处理。

3、Hadoop是一个开源软件框架,用于存储数据、在商业硬件集群上运行应用程序。它为任何类型的数据提供了大量的存储,巨大的处理能力和几乎无限的处理并发任务的能力。

4、NoSQL数据库是非关系DDBMS,可水平扩展,为实时web应用程序而生。最著名的解决方案是:MarkLogic、 MongoDB 、Datastax、Apache Cassandra、 Redis 、Riak、Google BigTable和CouchDB。

5、NewSQL数据库是关系型DDBMS,旨在结合关系数据库和NoSQL数据库的最佳属性(水平可扩展性和分布式处理)。示例:Google Spanner、Clustrix、voltage db、MemSQL、Pivotal’s GemFire XD、NuoDB和Trafodion。

6、分布式账簿(DL)是DDBMS,它利用加密技术提供去中心化的多版本并发控制机制,并就无信任环境中共享事实(shared facts)的存在和状态保持一致(例如,托管共享数据库的参与者是互不信任的独立参与者)。 共识本身并不是DL的唯一特性:其他分布式数据库也使用共识算法,比如Paxos或Raft。不可变性也是如此:在DL(Google HDFS、Zebra、CouchDB、Datomic等)之外也存在不可变数据库。我认为DL的两个不同点是:(a)读写访问的控制是真正去中心化的,而不是像其他分布式数据库那样在逻辑上是中心化的,以及(b)在没有可信第三方的竞争环境中保护事务(transactions)的能力。 有些人把这个类型称之为“共享账簿”,但我更喜欢用“分布式”这个词,因为共享可以表示“分割/分裂”。

6.1、比特币系统是DL的第一个实例,其目的只有一个:点对点的比特币(加密货币)支付手段。为了避免双花,比特币使用了数据链(因此称为“区块链”)和其他机制的POW工作量共识证明。比特币是抗审查的,它的主要特征是:拜占庭容错、伪匿名、可审计性(公开)、不变性、问责性(时间戳)和不可否认性(签名)。

6.2、有些系统是受到比特币系统的启发,或者设计与之接近。它们通常实现其大部分特性,但不是全部或具有不同的特性。 例如:

  • 其他加密货币实现了隐私机制(Zcash),或使用了不同的一致性协议,如POS权益证明、Proof of burn燃烧证明等。
  • 以太坊拥有许多比特币功能,但其设计目的是执行可编程交易(智能合约)

6.3、有些系统与比特币有很大区别:

  • 埃森哲设想的DL并不是一成不变的
  • R3 Corda设计的是在监管环境与数量有限的已知参与者中运作的系统(例如金融机构、监管机构),BFT不是必需的(安全性通过不同的方法实现),审核能力的实现是基于“need to know”,关于交易的共识则基本上减少为缔约双方的验证。
  • 分布式账本:分布式一致账本(Distributed Concurrence Ledger)是为处理资本市场和支付的金融机构量身定做的。Concurrence是在分布式一致账本系统中寻求共识的一种替代方法,它不使用加密货币、数据链,也不使用工作量证明[注:在我看来,这种方法类似于Corda]
  • HashGraph Swirlds:HashGraph是基于“八卦协议”(gossip protocol)的技术,其中的“块”是“事件”:每个成员重复地随机选择另一个成员,然后告诉这些成员所有他们不知道的事件。随着hashgraph的本地副本的增长,成员运行一个算法来确定事件的一致顺序(以及一致时间戳)。它的数据结构是一个有向无环图,其中每个顶点包含其两个父顶点的哈希值。

6.4、BigChainDB旨在通过向标准分布式数据库添加区块链特性(去中心化控制、不变性、数字资产的创建和流通)来提供可扩展的分布式数据存储服务。BigchainDB继承了现代分布式数据库的特性:随着节点数量的增加,吞吐量和容量呈线性扩展;全功能的NoSQL查询语言;高效的查询和许可。

以下是观点总结(简化):

区块链,一种非常特殊的分布式数据库

“双重无需许可”(double permissionless)的分布式账本(如比特币)是最去中心化的账本,并且具备抗审查性。如果它们越不去中心化(例如,在半信任的环境中的需要许可的DL),它们就越接近于是一种使用加密技术的“常规”分布式数据库。在后一种情况下,密码学被用作一种新的机制,以加强同行之间的可审计性和问责性:

区块链,一种非常特殊的分布式数据库

————————————————————————————————————————————————

你可能会问什么是区块链技术? 具有讽刺意味的是,对于这一定义没有达成共识:

极简主义者会说区块链只是比特币 有些人认为它应该包含任何带有块链接的DL 一些专家认为它应该包含任何具有一些关键特性的DL:比如块链接、不变性和一致协议 最大化主义者说“区块链技术”等于“分布式账本技术”等于“加密支持的DDBMS”。 此外,使用“区块链”一词来进行营销和沟通也更容易,即使它可能具有误导性…… 最后一个方程:比特币区块链 ⊆ 区块链技术 ⊆ 分布式账本技术 ⊆ 分布式数据库技术。

如果你喜欢区块链辩论,让我来分享4个有趣的问题: 比特币真的是BFT吗? 比特币和其他DL如何处理CAP定理? DL可以同时分散、可扩展性和安全吗? [谈到三难困境,我推荐这篇关于DCS不可能三角的文章] 没有token的私有区块链真的比中心化系统更高效吗? 这篇文章的灵感来源:吉迪恩·格林斯潘,理查德·根达尔·布朗,帕斯卡尔·布维耶(他使用不同的分类方法),戴夫·伯奇,科林·普拉特。

(完)


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Data Structures and Algorithms in Java

Data Structures and Algorithms in Java

Robert Lafore / Sams / 2002-11-06 / USD 64.99

Data Structures and Algorithms in Java, Second Edition is designed to be easy to read and understand although the topic itself is complicated. Algorithms are the procedures that software programs use......一起来看看 《Data Structures and Algorithms in Java》 这本书的介绍吧!

在线进制转换器
在线进制转换器

各进制数互转换器

随机密码生成器
随机密码生成器

多种字符组合密码

URL 编码/解码
URL 编码/解码

URL 编码/解码