在上个世纪,纸质清单和分类帐让位于强大的电子数据库,使IT管理员能够搜索、分类、共享和移动记录和相关信息。
但传统数据库有其局限性。例如,数据库是独立拥有的服务。企业负责部署、构建和管理其数据库及其包含的数据。然后,企业可以使用该数据,或者将其出售或与数字经济中的其他企业共享。拥有数据库的企业可以完全控制其设计、内容和可用性,而数据用户完全依赖于数据和数据库所有者的完整性,这通常被称为“信任权威”。随着世界变得越来越互联并依赖于数据和数据共享,传统数据库的局限性给安全性和信任带来挑战。
这些限制推动着分布式电子数据库系统的发展。这种技术旨在实现信息民主化–通过在多个独立利益相关者(例如企业或政府)之间分发和同步数据。该系统最常见的例子是区块链。
什么是区块链?
区块链于2009年推出,它是一种电子数据库,也称为不可变分类帐,用于保存重要信息,例如记录和分类帐条目。但是区块链技术增加了传统数据库没有的特性和功能。
首先,区块链系统跨点对点 (P2P) 网络运行,其中每个网络对等点共享计算/网络负载并维护数据的完整副本。随着越来越多的对等点进入网络,更大的系统会扩展以处理更多的记录流量。更多的对等点也意味着区块链数据库的可用性和容错性更高。
其次,不可变账本(数据库)的内容都具有相关性或链接在一起。添加到分类帐中的每条记录或记录集都代表一个数据块。每个区块都链接到前一个区块–通过包含加密哈希、时间戳和交易元数据。因此,每个区块连接起来形成一个不断增长的区块“链”(即区块链)以创建安全和不可变的记录。记录无法更改,除非改变加密哈希以及后续块中的所有哈希。密码学和区块相互关系的结合使区块链数据库高度安全。
传统数据库可以临时更改记录,而区块链数据库只能写入数据。这是安全性和完整性机制的重要组成部分:在区块链中数据可以更改,但只能通过编写新的可追溯和可审计的区块来更改。因此,你总是可以知道哪些数据被更改、何时更改、为什么更改或由谁更改的问题。
区块链的工作原理
区块链最常与金融交易相关联,主要是比特币或以太坊等加密货币交易。与SQL或任何其他数据库格式一样,区块链可以应用于无数垂直行业和用例,而不仅仅是金融行业。让我们看看基本的区块链流程。
- 请求向区块链写入新的数据块。
- 该请求被广播到所有参与区块链的节点。
- 参与区块链的每个节点都会根据算法检查哈希以验证交易。
- 每个节点执行工作量证明过程,就新区块的有效性达成共识,如果成功达成共识,则将该区块添加到链中。
在我们的示例种,假设企业想要对整个企业中的服务器事件和错误创建不可变的、可审计的日志。每个服务器通过网络将日志条目传递到公共日志服务器。每个块可能包含一系列细节,包括以下内容:
- 始发服务器的名称和地址;
- 目的地或日志服务器的名称和地址;
- 日志条目的错误、事件和其他详细信息
加密是核心,这使每个区块都很独特。区块被分配一个加密哈希(专门为其数据生成),以及前一个区块的哈希值。
哈希值就像数据的指纹;它是通过数学算法计算出的十六进制数序列。该算法为每个区块生成唯一的哈希值(指纹)。如果你更改区块中任何位置的单个位,其哈希值将变得完全不同。该区块调整后的哈希值也会传递给下一个块,并与下一个块一起记录。
这个过程创建了一系列不仅相关而且不可分割的区块。如果黑客更改一个位,该区块所记录哈希值将与该区块的新哈希值不匹配,并且区块链会向管理员发出警报。但这种更改不仅仅影响那个区块(区块A)的哈希值:新的哈希与后续区块(区块B)的哈希值不匹配,从而使区块B的哈希值无效,以及每个后续区块(区块C、D等)的哈希值无效。这种相互关联的密码学使区块链数据库非常安全,并且是强制执行不变性的系统。
但是哈希本身不足以确保完全安全。现代计算能力有时使黑客能够在几分钟内重新计算和插入新的哈希值,以部分或全部隐藏他们的篡改。
区块链数据库通过为每个区块执行耗时的计算过程故意延迟区块的创建。该技术称为工作量证明,要求在区块加入区块链之前执行和验证计算。典型的交易可能需要长达10分钟才能完成每个区块。这意味着黑客需要大量时间来篡改广泛的区块链。黑客入侵和重新验证整个区块链且不被检测的可能性非常小。
分布式P2P网络还可以保护不可变的分类帐。参与数据库的每个系统或节点都托管区块链的完整副本。每个节点会验证每个区块后,再将区块添加到该节点的副本。所有参与的节点需要达成共识,以确定哪些区块为有效。如果节点确定区块无效或被篡改,则会拒绝该区块。因此,当攻击者从节点成功入侵区块链时,参与区块链的其他节点将会识别并拒绝攻击者。
区块链版本
区块链自最初推出以来已经发展到支持更广泛的应用程序和用例。该技术有三个主要版本。
- 区块链0是该技术的最早版本,主要侧重于金融交易。
- 区块链0扩展了功能以支持“智能合同”,以取代传统纸质合同。区块链内的小程序会创建、验证、监控和执行协议条款与条件。这种类型的区块链越来越多地用于供应链管理操作,其中涉及采购、销售和运输货物。
- 区块链0提高了互操作性和可扩展性,以支持被称为dApp的分散式应用程序。dApp运行在分散P2P网络的后端;区块链在前端处于活动状态,以调用在后端运行的dApp。
区块链还可分为公共、私有或合作伙伴。
- 公共区块链可用于任何企业或用户,它允许任何人向链中添加数据块。
- 私有区块链旨在用于单个企业内,或者更狭隘地用于特定团队或人员,但该数据库通常可被改企业中的任何人查看。
- 合作伙伴区块链支持共享交易的组织,例如政府机构。
区块链用例
广泛的垂直行业使用区块链技术来完成各种任务。区块链常见用例包括:
- 金融行业。金融市场是区块链的最早部署者之一,该行业利用区块链技术进行记账,以取代传统的电子分类账、加密货币支付和其他市场交易和清算。
- 政府。政府使用区块链来保存和提供文档,例如契约和公共记录等。
- 供应链。市场使用区块链来交换数据、支持计费、管理配额并跟踪商品和服务等交换。
- 医疗保健。医疗保健行业使用区块链来保存和保护患者数据,收集数据进行分析、处理医疗保健付款以及安排和提供医疗保健服务。
- 技术。区块链正越来越多地用于技术型用例,包括智能网络,例如智能城市中的网络。它还为无人机等物联网设备收集和处理数据,支持自动驾驶汽车、机器人、超级计算机和分析。
区块链的优势
区块链技术为企业和关键业务数据带来重要的好处。
- 安全性。区块链采用密码学、不变性和分布式结构,这意味着区块链数据库几乎不受黑客攻击、欺诈和其他恶意行为的影响。非法数据更改将被可靠地检测和拒绝。
- 灵活性。区块链是一种分布式技术:参与数据库的每个节点都共享完整的数据库副本,并在每个节点发生变化时进行验证。这种共识不仅增强安全性,而且如果一个节点出现故障或受到攻击,例如分布式拒绝服务,其余节点可继续运行。攻击者非常难以攻击和禁用每个节点。
- 更快的业务。由于公共数据集可供所有可访问分类账的利益相关者使用,区块链数据库通常可以消除传统手动验证和交易结算时间。这有助于显着加快某些财务和合同业务运营。
- 合规性和治理。区块链数据的不可变和按时间顺序的性质本身可以被审计,以维持业务或行业合规性,以及作为整个业务治理的关键要素。
- 透明度。随着全球业务对普遍信任的需求增加,公共区块链交易的可见性和不变性有助于建立和确保数据公平准确的信任。
区块链的局限性
- 复杂性。区块链安全可能带来更高复杂性。考虑分布在全球业务合作伙伴和实体之间的节点和数据库副本的数量:这给网络和流程带来额外的负担。区块链技术仅适用于最安全敏感或任务关键型数据库用例。
- 较慢的交易。一个区块可能包含大量数据,并且执行工作量证明和在所有节点之间达成共识所需的时间会减慢数据输入的过程。有些节点将某些类型的事务优先于其他类型的事务,从而防止积压而导致问题出现。
- 能源效率低。关于工作量证明的越来越多的抱怨是,系统需要大量的能量和时间来在所有涉及的节点上执行工作量证明,但所有这些计算工作几乎没有好处。
- 数据库大小。跨节点复制和同步区块链数据库的需求使得IT专业人员难以及时引入和同步新节点。随着区块链变得越来越大,创建和维护区块链变得越来越困难。
- 可扩展性。由于工作量证明操作,区块链不能很好地扩展,因为区块添加过程的速度很慢。每个区块可以存储有限数量的数据,并且在给定的时间段内,只有有限数量的区块可以附加到区块链。这限制了区块链数据库的可能规模。
最终,区块链和不可变账本技术不太可能成为所有企业数据库应用程序的合适替代品。业务领导者应采用和部署最适合业务需求的数据库平台。