主页 > imtoken钱包最新版下载 > 区块链数据库、区块链数据库

区块链数据库、区块链数据库

imtoken钱包最新版下载 2023-08-06 05:14:00

区块链是互联网未来十年的重要技术

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

在笔者看来,未来区块链最大的价值不在虚拟货币领域,而在于替代需要中介和第三方验证的原有系统,以提高数字化系统。信任取代对人的信任。

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

区块链系统和 CAP、ACID 和 BASE

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

传统数据库都符合 ACID 原则。让我们首先看一下“事务”的概念。事务是一系列操作和不可分割的基本工作单元。在传统的数据库管理系统 (DBMS) 中,事务应具有四个特征:

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

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

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

区块链最核心的内容

基础

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

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

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

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

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

图1 CAP原理示意图

区块链最核心的内容

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

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

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

区块链有什么特点

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

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

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

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

区块链采用基于共识的规范和协议(例如一套公开透明的算法),使整个系统中的所有节点能够在去信任的环境中自由安全地交换数据,使得“信任机器” ,并且没有人为干预会起作用。

区块链最核心的内容

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

由于节点之间的交换遵循固定的算法,数据交互是去信任的(区块链中的程序规则会判断活动是否有效),所以交易对手不需要公开自己的身份,让对方相信你。

区块链的核心是数据

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

目前,区块链所能承载的信息量是有限的,距离我们用“大数据”的标准衡量还很遥远,但千里之行,从一步开始,并且需要一步。一步一步来。

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

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

区块链系统是分布式的,而大数据注重可用性。大规模和可量化的数据;区块链系统是匿名的和私有的,而大数据关心的是个性化;区块链系统是安全的,信息相对独立,而大数据关注的是信息的综合分析。

区块链系统本身就是一个数据库,我们所说的大数据是指对数据的深入分析和挖掘,也就是说,数据分析和数据挖掘需要内置在区块链系统中。最重要的是,数据的价值发挥了作用。

区块链最核心的内容

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

区块链系统的局限和门槛

微软亚洲研究院系统算法组首席研究员Thomas Moscibroda提到了效率和隐私问题。在区块链中,每个人都在共享自己的数据,每一个交易记录都需要被每个人验证、记录和存储。一方面,这个过程会使传统数据库的区块链变慢。另一方面,在区块链上双方的交易过程中,第三方必须知道并验证交易的合法性和合法性区块链最核心的内容,每个人都可以知道双方的中间数据,这也带来了隐私问题。 .

String Labs 联合创始人 Tom Ding 认为,区块链技术实际上是一项具有相当门槛的技术,全球可能只有少数团队能够开发出底层区块链系统。

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

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

作者与包括Thomas在内的一些专家进行了深入的讨论,我们的共同看法是,从架构的角度来看,在未来3年甚至更长的时间内,包括比特币和以太坊在内的主流区块链系统区块链无法有效提升技术在数据录入要求高的场景中的应用。当然,如果未来区块链系统的场景在用户和数据量足够大的情况下,达不到每秒数千笔交易量级区块链最核心的内容,还是有可能实现的。

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

笔者一直坚持认为,不针对实际应用的技术就是流氓,那么如何让区块链系统真正商业化呢?受到微软和谷歌同学的启发,我们认为区块链系统要想真正商业化,唯一的出路就是区块链数据库。

区块链最核心的内容

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

正如作者之前所说,区块链系统符合BASE概念,但不符合ACID。因此,我们可以选择一个不满足 ACID 但符合 BASE 概念的数据库作为底层数据架构。对了解数据库系统的同学来说,可以选择的底层数据库架构已经可以一目了然了。

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

区块链数据库中的数据

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

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

区块链数据库的共识模块

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

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

在以太坊和比特币区块链中通过工作量证明(POW)或权益证明(POS)实现共识算法,而IBM Hyperledger等想要提高效率的区块链系统采用PBFT(Practical Byzantine Fault Tolerance)协议。后者效率会高很多,但是网络传输的数据会随着节点数量的增加而成倍增加。

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

笔者认为,在未来三年内,真正的商业区块链系统将拥有类似于底层区块链数据库的数据系统。