主页 > 苹果版imtoken图标 > 区块链数据库

区块链数据库

苹果版imtoken图标 2023-10-15 05:13:57

区块链是互联网下一个十年的关键技术

区块链(Blockchain),或者分布式账本技术(DLT,Distributed Ledger Technology)最初是一个重要的概念,起源于比特币,它本质上是一个去中心化的数据库。 区块链系统可以显着降低成本,降低风险和管理成本,提高流动性,增加创新产品和服务的机会。 可以说,区块链与大数据、云计算、人工智能一样,是下一个十年的关键技术。

在笔者看来比特币投资门槛,区块链未来最大的价值不在虚拟货币领域,而是取代原来需要中介和第三方验证的系统,用对数字的信任代替对人的信任系统。 信任领域。

关于区块链领域的概念,《程序员》已经多次描述过,这里不再赘述。

区块链系统与 CAP、ACID 和 BASE

为什么说区块链系统实际上是分布式数据库系统呢?

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

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

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

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

根据

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

在BASE概念中,基本可用性是指当不可预知的故障发生时,允许系统失去部分可用性; 软状态是指系统中的数据允许以一种中间状态存在,但这种中间状态的存在不会影响系统整体的可用性; 最终一致性是指所有的数据副本,经过一段时间的同步,最终能够达到一致性。

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

我们来看一下分布式数据系统上区块链系统和CAP理论的关系。 在分布式数据系统中,具有三个重要的属性,即:

CAP 原则解释了这三个属性的关系。 CAP原则是指分布式系统不能同时满足一致性、可用性和分区容错三个要求,最多只能同时满足两个。 CAP原理是由美国伯克利的Brewer教授提出的。

比特币投资门槛_比特币之投资风险分析_德丰杰投资比特币投资与合作杂志

图1 CAP原理示意图

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

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

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

区块链有什么特点

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

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

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

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

区块链采用基于共识的规范和协议(如一套公开透明的算法),使整个系统中的所有节点在去信任的环境中自由、安全地交换数据,变信任“人”为信任“人” " 相信机器,没有人为干预是行不通的。

信息一旦通过验证加入区块链,将永久保存,数据库在单个节点上的修改无效,因此区块链的数据稳定性和可靠性极高。

由于节点之间的交换遵循固定的算法,其数据交互是去信任的(区块链中的程序规则会自行判断该活动是否有效),因此交易对方无需通过公开身份来让对方信任自己.

区块链的核心是数据

区块链和大数据是近几年发展迅速的两项技术。 2016年第46届世界经济论坛达沃斯年会的主题是“掌控第四次工业革命”,人工智能、无人驾驶、区块链、量子计算等前沿科技领域被反复提及。

目前,区块链所能承载的信息量是有限的,离我们需要用“大数据”标准来衡量的地步还很远。 然而,千里之行始于足下,要一步步来。

如果区块链要承载大数据,目前我看到的区块链系统都没有这个能力。

下面我们来看看区块链系统与大数据相矛盾、需要改进的三个特点:

区块链系统是分布式的,大数据侧重于可扩展、可量化的数据; 区块链系统匿名隐私,大数据讲究个性化; 区块链系统是安全的,信息相对独立,大数据关心的是信息的综合分析。

区块链系统本身就是一个数据库,我们所说的大数据是指对数据的深度分析和挖掘,也就是说,数据分析和数据挖掘需要建立在区块链系统之上,数据的价值播出。

如果要根据数据做决策,那么区块链的大数据就是区块链系统必须完成的一步。

区块链系统的局限性和门槛

微软亚洲研究院系统算法组首席研究员Thomas Moscibroda在2017年第一届科技金融国际峰会上提到了区块链的效率和隐私。 在区块链中,每个人都在共享自己的数据,每一笔交易记录都需要经过每个人的验证、记录和存储。 一方面,这个过程使传统数据库的区块链速度变慢。 另一方面,第三方必须知道并验证双方交易在区块链中的合法性和合法性,双方的中间数据大家都可以知道,这也带来了隐私问题。

String Labs 联合创始人 Tom Ding 认为,区块链技术其实是一项门槛相当高的技术,全世界可能只有少数团队有能力开发区块链底层系统。

Alphabet 的 DeepMind Health 部门已宣布计划使用类似分布式账本的系统来监控当前正在使用的患者数据。 他们的工具名为可验证日期审计 (VDA)。 Alphabet 声称 VDA 不是区块链,而是准区块链。 VDA 借鉴了比特币区块链的许多特性,包括不变性。 它还提供了一定程度的透明度,因此第三方机构可以验证数据。

R3 的技术总监 Richard Brown 评价他们的产品 Corda:“Corda 是一个分布式账本平台,很大程度上接收和吸收了区块链系统的优点,去掉了很多不适用于银行业场景的区块链设计。”

笔者与包括 Thomas 在内的一些专家进行了深入探讨,我们的共同看法是,在未来 3 年甚至更长时间内,包括比特币和以太坊区块链在内的主流区块链都不会有效提高技术应用到具有高频数据输入要求的场景。 当然,如果未来区块链系统的场景有足够大的用户数和数据量,每秒的交易量不会达到千量级,还是有可能实现的。

基于区块链思想的区块链数据库

笔者一直坚持不以实际应用为目的的技术就是耍流氓比特币投资门槛,那么如何让区块链系统真正实现商业化呢? 受微软和谷歌同学的启发,我们认为,要想真正将区块链系统商业化,唯一的出路就是区块链数据库(Blockchain DataBase)。

我们正在设计的区块链数据库兼有区块链系统和数据库系统的优点。

正如笔者之前所说,区块链系统符合BASE理念,但不符合ACID。 所以我们可以选择不满足ACID但符合BASE概念的数据库作为底层数据结构。 对于了解数据库系统的同学来说,可以选择的数据库底层架构呼之欲出。

与传统数据库系统相比,区块链数据库将能够具备原有系统所不具备的特性,即笔者在上一篇文章中所描述的区块链系统的各种特性。

区块链数据库中的数据

比特币区块链的可扩展性是一个大问题。 如果不增加数据块的大小,则无法增加整体的交易量,而如果增加数据块的大小,由于每个客户端节点都会有一份完整的数据库副本,数据存储会很头疼.

与传统的区块链系统不同,区块链数据库将具有数据库系统的可扩展性和性能:

区块链数据库共识模块

区块链数据库中共识模块的作用是保持系统中所有数据节点的一致性。 如果一个新的交易被添加到一个节点的区块链中,数据库中的所有其他节点也会将相同的交易添加到它们各自的区块链中。

共识模块的关键是保持整个系统中所有交易序列的一致性。

以太坊和比特币区块链中的共识算法是通过工作量证明(POW)或权益证明(POS)实现的,而IBM Hyperledger和其他一些想要提高效率的区块链系统使用PBFT(实用拜占庭容错)协议。 后者的效率会高很多,但是网络传输的数据会随着节点数量的增加而倍增。

在区块链数据库中,我们会使用Paxos共识算法。

笔者认为,在未来三年内,区块链系统可商业化的底层将是区块链数据库这样的数据系统。