区块链与集中式数据库

源节点: 1576904

区块链和常规数据库之间的四个主要区别

如果您一直在阅读我以前的文章,那么现在您将知道区块链仅仅是一个 新型数据库。 即,可以由一组非信任方以写的方式直接共享数据库,而无需中央管理员。 这与由单个实体控制的传统(SQL或NoSQL)数据库形成对比,即使在其内部使用了某种分布式体系结构也是如此。

我最近给了 一个谈话 从信息安全的角度讨论区块链,我得出结论说,在某些方面,区块链比常规数据库更安全,而在其他方面则较不安全。 考虑到 领头人 集中式数据库在当今的技术堆栈中发挥了作用,这使我更加广泛地考虑了这两种技术之间的权衡。 的确,每当有人问我是否 多链 可以用于特定目的,我的第一个答复始终是:“您可以使用常规数据库吗?” 出于以下简单原因,答案可能是肯定的:

如果信任和健壮性不是问题,那么区块链将无法做到常规数据库无法做到的事情。

这是一个有很多误解的关键点。 就可以存储的数据类型以及可以对该数据执行的交易而言,区块链并没有做任何新的事情。 需要明确的是,尽管它们的名称和形象很性感,但这种观察也同样适用于“智能合约”。 智能合约无非就是一段运行在区块链中每个节点上的计算机代码,这是一项具有数十年历史的技术, 存储过程 对于集中式数据库也是如此。 (如果此代码需要 开始 与外界的互动。)

关于区块链的真相是,尽管它们有一些优势,但也有其缺点。 换句话说,像大多数技术决策一样,区块链和常规数据库之间的选择归结为一系列的权衡取舍。 如果您对炒作视而不见,对噪音充耳不闻,则不太可能客观地做出选择。 因此,希望以下指南对您有所帮助。

去中介化:优势区块链

区块链的核心价值是使数据库可以跨信任边界直接共享,而无需中央管理员。 这是可能的,因为区块链交易包含其自己的有效性证明和其授权证明,而不是需要一些集中的应用程序逻辑来强制执行这些约束。 因此,交易可以由多个“节点”独立进行验证和处理,而区块链作为一种共识机制来确保这些节点保持同步。

为什么这种脱媒有价值? 因为即使数据库只是位和字节, 这也是有形的东西。 数据库的内容存储在特定计算机系统的内存和磁盘中,任何有权访问该系统的人都可以破坏或破坏其中的数据。 结果,在您将数据委托给常规数据库的那一刻,您还变得依赖于 该数据库所在的组织。

现在,全世界到处都有赢得这种信任的组织-政府和银行(主要是),大学,行业协会,甚至是像Google和Facebook这样的私人公司。 在大多数情况下,尤其是在发达国家,这些方法效果非常好。 我相信我的投票一向被重视,没有银行偷过我的钱,而且我还没有找到一种方法来支付更高的成绩。 所以有什么问题? 如果一个组织控制着一个重要的数据库,它还需要一堆人和适当的流程来防止该数据库被篡改。 人们需要招聘,需要设计流程,而这一切都需要大量时间和金钱。

因此,区块链提供了一种用分布式数据库替换这些组织的方法,该分布式数据库被聪明的密码术锁定。 像以前发生的许多事情一样,它们利用计算机系统不断增长的容量来提供一种用代码代替人类的新方法。 并且一旦编写和调试了代码,它们的价格往往会便宜很多。

保密性:优势集中数据库

正如我提到的,区块链中的每个节点都独立地验证和处理每笔交易。 节点之所以可以这样做是因为它对以下方面具有完全的可见性:(a)数据库的当前状态,(b)事务请求的修改,以及(c)证明事务起源的数字签名。 无疑,这是构建数据库的一种聪明的新方法,并且确实有效。 那有什么收获呢? 对于许多应用程序,尤其是财务应用程序,每个节点所享有的完全透明性绝对是杀手kill。

建立在常规数据库上的系统如何避免此问题? 就像区块链一样,它们限制特定用户可以执行的交易,但是这些限制是在 一个中心位置。 结果,完整的数据库内容仅需要在该位置可见,而不需要在多个节点中可见。 读取数据的请求也要经过该中心机构,该中心机构可以视需要接受或拒绝这些请求。 换句话说,如果常规数据库是读取控制的 写控制,区块链只能写控制。

公平地说,有许多策略可以缓解此问题。 从简单的想法(例如在多个区块链地址下进行交易)到高级加密技术(例如 保密交易零知识证明 (现在正在开发)。 尽管如此,您想要隐藏在区块链上的信息越多,您为生成和验证交易而付出的计算负担就越重。 无论这些技术如何发展,它们都永远不会击败完全隐藏数据的简单明了的方法。

稳健性:优势区块链

区块链支持的数据库的第二个好处是极高的容错能力,这归因于其内置的冗余性。 每个节点都处理每个事务,因此没有一个节点对整个数据库至关重要。 同样,节点以密集的对等方式相互连接,因此许多通信链路可能在事情停止前就失败了。 区块链可确保发生故障的节点始终可以追赶错过的交易。

因此,尽管常规数据库确实提供了许多技术, 复制,区块链将其提升到一个全新的水平。 首先,无需配置-只需将一些区块链节点连接在一起,它们就会自动保持同步。 另外,可以在网络上自由添加或删除节点,而无需任何准备或后果。 最后,外部用户可以将他们的交易发送到任何节点,或同时发送到多个节点,并且这些交易会自动无缝地传播到其他所有人。

这种鲁棒性改变了数据库可用性的经济性。 使用常规数据库,可以通过昂贵的基础架构和 灾难恢复。 主数据库在高端硬件上运行,该硬件会受到严密监控,并在不同物理位置将事务复制到备份系统。 如果主数据库发生故障(例如,由于断电或灾难性的硬件故障),活动将自动移至备份,该备份将成为新的主数据库。 修复发生故障的系统后,如有必要,将排队作为新的备份。 尽管所有这些都是可行的,但它昂贵且众所周知很难正确实现。

相反,如果我们有10个在世界各地运行的区块链节点,全部都在商品硬件上呢? 这些节点将彼此紧密连接,在对等基础上共享交易,并使用区块链确保共识。 生成事务的最终用户连接到(例如)这些节点中的5个,因此,一些通信链路是否中断都无关紧要。 而且,如果在任何一天中一个或两个节点完全失败,那么没人会感到不适,因为仍然有足够多的副本可以进行处理。 碰巧的是,低成本系统和高冗余性的完美结合正是Google的方式 便宜地建立了搜索引擎。 区块链可以为数据库做同样的事情。

性能:优势集中数据库

区块链将永远比集中式数据库慢。 不只是那个 今天的 区块链之所以缓慢,是因为该技术是新的且未经优化的,但这是由于 性质 区块链本身。 您会看到,在处理交易时,区块链必须执行与常规数据库相同的所有操作,但是它带来了三个额外的负担:

  1. 签名验证。 每个区块链交易都必须使用公私加密方案进行数字签名,例如 ECDSA。 这是必需的,因为事务以对等方式在节点之间传播,因此无法证明其来源。 这些签名的生成和验证在计算上很复杂,并且构成了像我们这样的产品的主要瓶颈。 相反,在集中式数据库中,一旦建立了连接,就无需单独验证来自它的每个请求。
  2. 共识机制。 在诸如区块链之类的分布式数据库中,必须花大力气确保网络中的节点达成共识。 根据所使用的共识机制,这可能涉及大量的来回通信和/或处理fork及其后续回滚。 确实,集中式数据库还必须应对冲突和中止的事务,但在单个位置将事务排队和处理的情况下,发生冲突的可能性要小得多。
  3. 冗余。 这与单个节点的性能无关,而是与区块链所需的计算总量有关。 集中式数据库一次(或两次)处理事务,而在区块链中,它们必须由网络中的每个节点独立处理。 为了达到相同的最终结果,还有很多工作要做。

底线

当然,还有其他方法可以比较区块链和常规数据库。 我们可以谈论代码库的成熟度,开发人员的吸引力,生态系统的广度等。 但是这些问题都不是 固有 技术本身。 因此,就使用区块链的长期决策而言,要问的问题是:对于我的用例而言,更重要的是什么? 去中间化和鲁棒性? 还是机密和性能?

以这种简单的方式进行检查时,当前正在讨论的许多用例 没有道理。 最大的问题往往是机密性。 在激烈竞争的市场中,参与者自然会偏爱集中式数据库的私密性,而不是相互展示自己的活动。 如果受信任的中央方已经存在并且可以提供该数据库可以驻留的中立区域,则尤其如此。 即使可能与该中央提供商相关联,也要付出一些代价,但保留的隐私价值却足以证明这一点是合理的。 转向区块链的唯一动机是积极的新法规。

但是,区块链确实具有强大的用例,在这种情况下,去中间化和健壮性比机密性和性能更为重要。 我将在后续文章中详细介绍这些内容,但是到目前为止,我们看到的最有希望的领域是:(a)公司间审计跟踪,(b)来源跟踪和(c) 轻巧 金融系统。 在这三种情况下,我们都发现人们在MultiChain上进行构建,并且具有清晰的部署视图,而不仅仅是好奇心和试验。 因此,如果您正在寻找区块链可以为您的业务增加真正价值的方法,那么它们可能是一个很好的起点。

请发表任何评论 在LinkedIn.

时间戳记:

更多来自 Multichain