L o a d i n g

解码科技 | 一种特殊的数据库——区块链

Source: DCC特约作者Date: 2019-12-25

作者:Alexandre Krug

 

上篇文章我们讨论到区块链与信任的关系以及区块链创造信任的机制。本文将在数据库层面对区块链进行阐述,其在信息存储方面独有的创新性以及特殊地位。

 

区块链是数据库吗?

 

区块链是一种相对新型的数据库类型。更具体而言,区块链是一种分布式账本,而该账本本身就可以看成一种分布式数据库。三者存在递进关系,其顺序不可逆,例如,不能说数据库是一种区块链形式。

 

上述包含关系如下图所示:

主要收获:区块链是一种非常特殊的数据库类型

 

什么是数据库?

 

数据库起源于5000多年前,与文字和金钱的创造几乎同期。数据库使用的一个早期示例是苏美尔契约(如下图所示)。古代美索不达米亚人使用这种契约,在陶片上记录货物数量。这些陶片中的信息记录是二维化、象形化的。陶片内容分为行和列,刻画的象形图像与货物商品一一对应,图像旁边穿刺的洞代表着货物数量。苏美尔契约还记录了日期或期限等一系列的时间价值信息,甚至还记录了交易授权人的签名。这类契约合同曾用来存储贸易或债务相关的信息。

 

古代数据库

苏美尔合同,卢浮宫

Marie-Lan Nguyen, 2005

 

近现代以来,人们收集与储存的信息量成倍增长,数据库的使用也日益渐增。不断提升的需求,也驱使着人类创造出更大规模、更高效的数据库。

 

数据库的主要作用是用以促进检索和更新存储信息。原始的数据库由黏土、石器乃至纸张制成,而到了二十世纪60年代,计算机数据库出现,自那时起,我们的数据库变得越来越数字化。

 

数字数据库

 

当今使用的数据库有哪些?

 

当今大多数数据库是连接到同一个服务器上的中心化数据库。中心化数据库有一个“长官”来管理数据库并监督其功能运行。长官负责数据库的安全维护,其他主体意图访问数据库进行读写操作,都需要获得长官的授权。

 

中心化数据库有便于维护与审查的优势。因为只有单一的管理员,所以数据库管理的协同需求很低。同时该系统的审查度较高,访问数据库信息很容易受到限制。然而,使用中心化数据库也有诸如依赖单一管理员的缺点。此外,数据库存储于单个计算机处理单元(CPU)上,倘若系统出现故障,则根本没有备份来还原数据。

 

中心化数据库的工作原理与上述的苏美尔契约类似。假设一个场景,某份唯一的陶片型数据库陈列于图书馆的书架上,任何人想要阅读合同或者删改合同都必须要获得图书馆管理员的许可。如果出现一场破坏性的灾难,例如洪水或者火灾,陶片记录的信息有极大可能会丢失。

 

这个问题可由分布式数据库解决。分布式数据库是通过多台计算机存储及更新数据的,这些计算机既可以是分布在同一物理区域的,也可以是分散在相同网络中的。其解决问题的关键在于,它们并非连接到同一个处理器单元或者电路上。

 

这似乎听起来不错!

 

但是… 在分布式的系统中,所有节点必须相互协作。此处的节点可以是链接到网络中的任何设备或系统。节点间的相互协作,意味着每个节点都必须依赖于其他节点。因此,所有节点必须做到相互信任。

 

这常常以失败告终。

 

如何克服这种失败?

 

如上所述,只有在系统所有节点都是诚信的情况下,分布式数据库才能实现其功能。表现诚信,需要正确地为交易传递信息及数据而非试图篡改历史。但在许多情形下,这种假设并不成立。为了解决这一问题,分布式账本技术(DLT)应运而生。区块链就是一种分布式账本技术。

 

在分布式账本中,默认情况下节点并不信任其对等节点。要达到这样的实际效果,就需要让网络中的每个节点独立的新建数据记录。这样运作的意义在于节点不需要依赖于其他网络成员提供的数据。每个节点独立检查和验证网络中的交易,然后更新数据库的状态。这种机制保证了分布式账本技术在面临少部分节点出现故障或作恶时,仍得以正常工作。

 

拜占庭将军问题

 

另一种说法是,该系统中的节点遵循拜占庭容错(BFT)。这一术语起源于1982年的通信逻辑问题——拜占庭将军问题。假设目前有一批拜占庭将军,他们必须要做出进攻或撤退决策。这些将军之间彼此隔离,他们的交流仅限于信使传递的信息。

 

如果这些将军就下一步行动决策达成了共识,那么这个协商的结果——无论是攻击还是撤退——都显得无关紧要了。达成共识之路障碍重重,包括信息延迟、遗失或损坏,而且单一的将军也可能主观存在恶意或欺诈。

 

有许多方法可以解决拜占庭将军问题,并防止系统中的组件发生故障,也就是实现了系统的拜占庭容错。这些方法被称为共识算法,比较著名的共识算法包括工作量证明(PoW)和权益证明 (PoS)等。

 

主要收获:分布式账本技术(DLT)含有拜占庭容错或其他共识算法作为拜占庭将军问题的解决方案,使系统具有拜占庭容错的性质。

 

拜占庭容错与区块链的关联

 

区块链具有拜占庭容错,因为拜占庭容错是分布式账本的重要组成部分,同时区块链也是一种分布式账本技术(DLT)。换而言之,区块链具有拜占庭容错属性。

 

分布式账本和区块链的工作环境模型被称为对抗式威胁环境,这一概念指某些节点可能会表现出敌对行为。

 

解决敌对节点的方法是对交易进行独立检查与验证。这样做的重要结果是,不会依赖单一节点而做出决定。网络中的各个节点都自行决定其行为,因此产生的网络行为是所有节点行为的结合。

 

 “分布式账本,或去中心化数据库,是使不完全信任对方的各方,对一组共享事实的存在、状态和演变产生并维持共识的一种系统。“

——Richard Gendal Brown

 

什么是区块链?

 

区块链是分布式账本的一个子集。这意味着它们享有分布式账本的特性,例如它们具有拜占庭容错性。除了作为分布式账本一部分,区块链还拥有自身独特的特征。这些区别有些模糊,可以作不同解释。

 

让我们从一些事实开始。区块链是一种结合了多种成熟技术的创新方式。这些技术包括加密密钥、对等网络和共识机制,而共识机制是本文讨论的核心。

 

 “区块链是一种新型的数据库,能使多方共享该数据库,并能够以安全可靠的方式修改该数据库,即使他们彼此不信任。”

—— CoinSciences(Multichain)首席执行官Gideon Greenspan

 

区块链与其他分布式账本的主要区别在于数据结构。区块链通过加密方式进行链接,将区块组成一条“链”,用以组织数据。 此外,在区块链中,数据被广播到每个节点。换句话说,它能将数据扩散至全球。

 

 “(区块链)带来的结果是第一次允许互联网用户将单一的数字财产转移给另一个互联网用户,并保证转移的安全稳当,每个人都知道转移的发生,没有人可以质疑转移的合法性。这一突破的成就并非夸大”

—— Marc Andreessen

 

区块链实际应用及影响的结果是比特币。比特币和区块链的关系具有与本文开头提到的数据库、分类账和区块链相似的关系。

 

如图所示:

 

比特币是一种区块链么?答案是的。区块链是一种比特币么?答案不是的。比特币是区块链的一种实现,就像区块链是分布式账本的一种实现一样。

 

具体来说,比特币是一个公共区块链。这意味着它没有访问限制。当区块链公开时,任何人都可以发送交易并成为这些交易的验证节点。起初所有的区块链都是开放的,这引起了关于区块链定义方面的争议。

 

比特币是区块链最著名的应用案例,并促成了公众对于区块链“无任何访问限制”的定义。不过近年来,致力于发展区块链私链的创新企业也逐渐获得基金的认可与扶持。

 

区块链公链和私链的区别在于区块链上读写的授权。在区块链私链中,访问受网络管理员的限制。这决定了谁可以访问存储在链上的数据,以及谁可以对其作出贡献。同样存在混合链这一概念,结合了中心化与去中心化两种特征。

 

 

参考链接:

  1. https://www.quickbase.com/articles/timeline-of-database-history
  2. https://www.microsoft.com/en-us/research/uploads/prod/2016/12/The-Byzantine-Generals-Problem.pdf

WECHAT

SINA WEIBO