经过近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的私有区块链真的比中心化系统更高效吗?
这篇文章的灵感来源:吉迪恩·格林斯潘,理查德·根达尔·布朗,帕斯卡尔·布维耶(他使用不同的分类方法),戴夫·伯奇,科林·普拉特。
(完)