介绍

我目前在大学学习计算机科学,对防篡改数据库特别感兴趣。
处理篡改的数据库有多种类型,例如 BFT 数据库、BFD 数据库和分类帐数据库。

  • BFT 数据库代表拜占庭容错数据库,是拜占庭容错数据库。
  • BFD数据库代表拜占庭故障检测数据库,是用于检测拜占庭故障的数据库。
  • 分类帐数据库是一个有限的拜占庭式故障检测数据库。

下表通过具体示例对它们进行了总结。

类型 具体例子
BFT 数据库 人力资源数据库1[SOSP'07],拜占庭2[欧洲系统'11],超级账本结构3[欧洲系统'17],罗勒4[SOSP'21] 等。
BFD 数据库 标量深度学习5[VLDB'22]
账本数据库 甲骨文区块链表,亚马逊 QLDB,分类帐数据库6[VLDB'20] 等。

为了加深我们对处理篡改的数据库的理解,甲骨文区块链表什么时候,亚马逊 QLDB,所以我想在本文中介绍一个概述、注意事项和比较。

之所以选择这两个数据库,是因为有各大厂商的产品,有详细的产品资料,可以便宜或者免费试用,在实际操作数据库的同时加深理解。 .

甲骨文区块链表

Oracle Blockchain Table と Amazon QLDBの調査
报价来源

概述

首先,我引用Oracle关于Oracle Blockchain Table的介绍。

区块链表是只允许插入操作的追加表。基于时间禁止或限制行删除。区块链表中的行通过特殊的排序和链接算法是防篡改的。用户可以验证线路没有被篡改。作为行元数据一部分的哈希值用于行链接和验证。

报价来源

简单来说,Oracle Blockchain Table 只允许向数据库中添加数据,不能更新或删除数据库中的数据。为数据库中的每一行构造一个哈希链,使用它们可以验证数据是否被篡改。

查询语言

查询语言是 SQL。但是,更新和删除等操作有一些限制。

如果用户想要开发一个更新行的应用程序,则需要额外的工作,例如,为行提供与行版本对应的列,并在每次更新行时将该列的值增加 1。

数据模型

数据模型是关系型的,就像常规的 Oracle 数据库一样。

关于篡改检测

使用PL/SQL或API验证时间戳指定范围内的行是否被篡改。
作为一种检测方法,哈希链使用。

通过重新计算每一行的哈希值并将其与存储在该行中的哈希值进行比较来检测篡改。

亚马逊 QLDB

Oracle Blockchain Table と Amazon QLDBの調査
报价来源

概述

首先,我引用亚马逊关于 Amazon QLDB 的介绍。

Amazon QLDB 是一种新型数据库,它消除了自己构建类账本应用程序的复杂开发工作。在 QLDB 中,数据更改历史是不可变的,不能更改、更新或删除。您还可以使用加密来轻松验证您的应用程序数据没有发生意外更改。 QLDB 使用不可变的事务日志(日志)。该日志是仅附加的,由一系列包含已提交数据的序列和哈希链块组成。

报价来源

与 Oracle Blockchain Table 一样,Amazon QLDB 只允许将数据添加到数据库中,不能更新或删除。但是,它只是内部写入一次,并且作为一个数据库,它有一个更新和删除的接口,如下所述。并且具有验证数据库中的数据是否被篡改的功能。

查询语言

作为查询语言PartiQL使用。 PartiQL 是一种类似 SQL 的语言,除了亚马逊动态数据库用于

与 Blockchain Table 不同,它不限制更新和删除等操作。
即使用户更新或删除,数据不会在内部消失,而是添加更新和删除产生的新版本数据。

数据模型

数据模型是文档类型,亚马逊使用。

篡改检测方法

使用 AWS 控制台或 API,指定分类帐中称为文档修订的文档的版本,并验证它是否已被篡改。
亚马逊 QLDB哈希链,默克尔树两者都实现了,但主要的检测方法是默克尔树是。

通过将单独保存的 Merkle 树的根哈希与重新计算的根哈希进行比较来检测篡改。

比较 Oracle 区块链表和 Amazon QLDB

普通手术

对于正常操作(插入、更新、删除数据),Amazon QLDB 更易于使用。

原因是 Oracle Blockchain Table 限制了更新和删除,所以应用程序需要采取额外的措施来更新行和引用最新的值,而 Amazon QLDB 不需要这些措施,可以用同样的方式处理作为一个普通的数据库,没有

篡改检测

对于数据验证,我觉得 Oracle Blockchain Table 更方便。

Oracle Blockchain Table 使用哈希链验证多行。

Amazon QLDB 使用 Merkle 树针对单个文档版本或单个事务进行验证。

使用Amazon QLDB,你可以使用AWS控制台验证单个文档版本,也可以使用API​​验证单个事务。我觉得Oracle BlockChain Table的验证功能更方便,因为可以通过时间戳灵活选择整体,并且可以在PL/SQL中执行验证。

Oracle Blockchain Table、Amazon QLDB 用于篡改检测的常见限制

Oracle Blockchain Table 和 Amazon QLDB 等分类帐数据库具有单一管理域7因为它是由 管理的,所以无法检测到数据库提供者的篡改或篡改整个哈希链或 Merkle 树等大规模篡改。

例如,作为针对大规模篡改的对策,可以将表或账本的摘要发送给第三方,存储起来,在验证篡改时使用该摘要进行比较。在发送到之前被篡改

我们也认为我们无法处理数据库程序本身被篡改的情况。

由于介绍中提到的 BFD 数据库和 BFT 数据库都有两个或多个管理域,因此可以通过管理域之间的比较来完全处理上述篡改。

比较总结

比较元素 甲骨文区块链表 亚马逊 QLDB
查询语言 SQL PartiQL
数据模型 关系类型 文件类型
变更检测装置 哈希链 默克尔树
篡改检测目标 多条记录 文件的单一版本
电子签名 没有任何
系统环境 云/本地

调查印象

在研究 Oracle Blockchain Table 和 Amazon QLDB 的时候,有的地方没有详细的解释,有的地方我必须一边补充一边补充自己的想法,这使得调查变得困难。
我能够在自己补充内容并实际使用产品进行调查的同时进行调查,这一事实在我未来对处理篡改的数据库的研究中很有用。
接下来,我想研究一下 BFT 数据库 Basil 和 BFD 数据库 Scalar DL,它们是最近的研究成果。
谢谢你读到这里。

  1. B. Vandiver、H. Balakrishnan、B. Liskov 和 S. Madden. 2007. 使用提交屏障调度来容忍事务处理系统中的拜占庭错误。

  2. R.Garcia、R.Rodrigues 和 N.Preguiça.2011.拜占庭的高效中间件
    容错数据库复制。在 EuroSys. 107–122 中。

  3. E.Androulaki, A.Barger, V.Bortnikov, C.Cachin, K.Christidis, A.DeCaro, D. Enyeart, C. Ferris, G. Laventman, Y. Manevich, S. Muralidharan, C. Murthy, B. Nguyen、M. Sethi、G. Singh、K. Smith、A. Sorniotti、C. Stathakopoulou、M. Vukolić、S. Weed Cocco 和 J. Yellick。2018。Hyperledger Fabric:许可区块链的分布式操作系统。欧元系统 1-15。

  4. F. Suri-Payer、M. Burke、Z. Wang、Y. Zhang、L. Alvisi 和 N. Crooks。2021。Basil:用 ACID 分解 BFT(交易)。在 SOSP 中。

  5. Hiroyuki Yamada 和 Jun Nemoto。2022。标量 DL:事务数据库系统的可扩展和实用拜占庭故障检测。在 PVLDB。1324-1336。

  6. 杨新英、张元、王胜、于本全、李飞飞、李宜泽、
    Wenyuan Yan. 2020. LedgerDB:通用的集中式分类帐数据库
    审计和验证。在 PVLDB。3138–3151。

  7. 管理域是由单个组织或管理机构管理的节点和网络的集合。


原创声明:本文系作者授权爱码网发表,未经许可,不得转载;

原文地址:https://www.likecs.com/show-308631555.html

相关文章: