社会焦点

Blockchain DB,区块链数据库

字号+ 作者: 来源: 2017-05-15

Blockchain DB,区块链数据库,区块链最新消息,区块链公司排名,区块链技术原理,区块链是什么意思,区块链分布式数据库

  作者 | 谭磊

  责编 | 仲培艺

  区块链是互联网未来十年中举足轻重的技术

  区块链(Blockchain),或者说分布式账本(DLT, Distributed Ledger Technology)最早是起源于比特币的一个重要概念,其本质上是一个去中心化的数据库。区块链系统能够大幅度降低成本,减少风险和管理成本,提升流动性,增加创新产品和服务的机会。可以说,和大数据、云计算、人工智能一样,区块链是未来十年中举足轻重的技术。

  从笔者的角度来看,区块链在未来最大的价值并不是在虚拟货币这个领域,而是用以取代原先需要中间人和第三方验证的系统中,以对于数字系统的信任来取代对于人的信任的领域。

  《程序员》已经多次讲述过区块链领域的概念,在此不复赘言。

  区块链系统和CAP、ACID和BASE

  为什么我们说区块链系统其实是一个分布式数据库系统?

  ACID

  传统的数据库都满足ACID原则。我们首先来看一个“事务”(transaction)的概念。事务是一个操作序列,是一个不可分割的基本工作单位。在一个传统的数据库管理系统(DBMS)中,事务应该具有四个特性:

  • 原子性(Atomicity)

  • 一致性(Consistency)

  • 隔离性(Isolation)

  • 持久性(Durability)

  •   取这四个英文单词的首字母缩写,我们得到的是ACID。

      原子性指事务是一个不可分割的最基本工作单位,事务中的操作要么都执行,要么都不执行;一致性是指数据库的完整性约束不会被任何事务的发生破坏,也就是说数据库的事务不能破坏数据的完整性;隔离性是说多个事务并发访问时,事务之间是被隔离开的,一个事务不应该影响其他事务的运行效果;持久性则意味着在事务完成以后,该事务所对数据库做的更改便被永久保存在数据库之中,即使系统本身发生了事故也不会更改。

      从ACID的四个特性来看,我们发现其实比特币区块链系统几乎具有这些特点:

  • 一个区块要么被全部记录进入区块链,要么不被认可,不可能有中间状态;

  • 一个区块在加入区块链之后,原本区块链的系统依然保持完整性;

  • 每次只有一个区块可以被加入到区块链中,所以隔离性是当然的;

  • 而在区块被写入链条之后,新的区块链会被复制到所有的区块链节点上,被永久保存。

  • 在区块链系统上有一个特殊情况,如果两个不同的节点差不多同时申请挖币的奖励,那么它们中会有一个节点计算出的区块在最终会被抛弃,因而ACID特性中的D(持久性)其实是不满足的。

  •   BASE

      因为区块链节点处于地球各处,而这些节点又是由不同用户维护的,所以其实我们并不能保证每次访问区块链的系统时都能获取到数据,而这恰恰又对应了互联网时代分布式数据系统的一个特性,可以称之为为BASE。BASE是一个很怪异的词语的缩写:Basically Available,Soft-state,Eventual Consistency(基本上是可访问的、软状态、最终一致性)。

      在BASE理念中,基本可用是指系统在出现不可预知的故障时,允许损失部分可用性;软状态是指允许系统中的数据存在中间状态,不过该中间状态的存在并不会影响系统的整体可用性;最终一致性指的是所有的数据副本,在经过一段时间的同步之后,最终都能够达到一致。

      和ACID概念的强一致性相比,BASE理念面向的是可扩展的分布式系统,BASE通过牺牲强一致性来获得可用性,并允许数据在一段时间内是不一致的。不过两者的共同点是最终会达到一致状态。我们可以认为区块链系统符合分布式数据系统的BASE理念。

      CAP

      我们再来看区块链系统和分布式数据系统上的CAP理论之间的关系。在分布式数据系统中,有三种重要的属性,分别是:

  • 一致性(Consistency):数据一致性,任何一个读操作总是能读取到之前完成的写操作结果,也就是在分布式环境中,多点的数据是一致的。

  • 可用性(Availability):好的响应性能,每一个操作总是能够在确定的时间内返回,也就是系统随时都是可用的。

  • 分区容忍性(Tolerance of network Partition):可靠性,在出现网络分区(比如断网)的情况下,分离的系统也能正常运行。

  •   CAP原理解释了关于这三种属性的关系。CAP原理的意思是:一个分布式系统不能同时满足一致性、可用性和分区容错性这三个需求,最多只能同时满足两个。CAP原理是由美Berkerly的Brewer教授提出。

      Blockchain DB,区块链数据库

      图1 CAP原理的示意图

      如图1所示,CAP原理指出一致性、可用性、分区容忍性不可三者兼顾。因此在进行分布式架构设计时,必须做出取舍。而对于分布式数据系统,分区容忍性是基本要求,否则就失去了价值。因此设计分布式数据系统,就是在一致性和可用性之间取一个平衡。

      牺牲一致性而换取高可用性,也是大多数分布式数据库产品的方向。

      笔者在比特币区块链系统中看到了“一致性”被牺牲的情况。当一个新的区块被部分节点接受时,如果用户访问的是还没有更新的节点,那么用户获取的数据是不一致的,所以从分布式数据系统的角度来看,比特币区块链系统其实是一个AP系统,也就是说,它保持了可用性和分区容忍性,不过放弃了一致性。

      区块链有哪些特性

      在区块链进入大家的视野之前,分布式数据系统也一直是学术界关注的一个方向。不过在区块链概念出现之后,大家发现原来分布式系统还可以有新的处理方式。

      基于区块链的数据系统特征

  • 去中心化或者多中心化(Distributed or Decentralized)

  •   区块链最大的特性就是使用分布式计算和存储,从而减少甚至消除中心化的硬件或管理机构。在区块链上,任意节点的权利和义务都是均等的,系统中的数据块由整个系统中具有维护功能的节点来共同维护。

  • 开放性(Open)

  •   系统是开放的,除了交易各方的私有信息被加密外,区块链的数据对所有人公开,任何(有权限的)人都可以通过公开的接口查询区块链数据和开发相关应用,因此整个系统信息高度透明。

  • 自治性(Autonomous)

  • 转载请注明出处。


    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • 民用机场可以坐人吗?民用机场和通用机场的区别

      民用机场可以坐人吗?民用机场和通用机场的区别

    • 陕西神奇5A景区游玩最佳路线,有两千粉丝的都免票!

      陕西神奇5A景区游玩最佳路线,有两千粉丝的都免票!

    • 广东阳春一小区电梯被关致老人猝死 物业为什么要关停电梯?

      广东阳春一小区电梯被关致老人猝死 物业为什么要关停电梯?

    • 地震最新消息 今天广西靖西发生4.3级地震 南宁市区有明显震感

      地震最新消息 今天广西靖西发生4.3级地震 南宁市区有明显震感