数据库的问题
单点故障
由于它是集中的,因此有单点故障。数据掌控在单一实体或群体手中,从而无法保证它用于正确的目的,例如来自社交媒体的数据最终落入坏人之手一样。控制信息的公司可以把它出卖给第三方使用,但是,有时候它并不符合用户的最佳利益。当数据库被黑时,产生了另一个问题,因为这会影响很多用户的信息。当数据库服务器宕机时,它也会影响到整个系统。如果存储在该数据库上的信息没有备份,那么就无法恢复有价值的数据。这就是为什么在集中系统中失效备援和冗余是如此重要的原因。
管理员账户
由于数据库需要管理员,如果密码丢失,则恢复数据库就会变得很困难。如果数据库管理员没有委托另一位管理员,让他具有数据库管理系统特权,那么没人能够创建新的数据库或者修改现有的数据库。当数据库管理员离开这家公司时,这会带来另一个问题,重新设置密码和提升新管理员的权限是一个非常冗长乏味的过程。还有可能某人忘了更改密码或删去某些权限或删除能够访问该数据库的前雇员的账户。这些是 MIS 部门必须要处理的事,以维护他们的信息安全。
安全问题
在集中系统中,如果管理员忘了打补丁和更新,系统会变得容易受到黑客的安全漏洞攻击。这使得数据库很容易被入侵。集中化应该让管理变得容易,但是,管理不当时, 它会引起非常严重的问题,影响到系统中的数据完整性。把我们的信息托付给一个信任的公司是正常的,但是,如果该公司不遵守信息安全上的最佳实践,那么它就会成一个问题。黑客攻击已经影响了很多大公司,数据泄露正在变得越来越普遍,因为信息现在是有价值的资产。这是为什么要对涉及生产数据库的数据安全进行第三方审计和严格监管的原因。
区块链的问题
能量消耗
首先,用于运行像比特币这样的区块链的计算资源要耗费大量的电力。这是在工作量证明算法中处理交易所需协议的一部分。所有矿工们用掉的能源是为了解决加密谜题来验证区块。随着难易程度的提高,能量消耗量也增加了,这跟更多来自计算资源的哈希能力有关。在挖矿的节点越多,验证交易区块所需的计算量就越大。这需要大量的能量消耗。据估计,整个比特币网络消耗的电量和像海地或丹麦这样的小国家相当。
可扩展性
区块链在面对大量交易时的可扩展性不好。因为区块大小是固定的,交易量上升时就会出现问题。延迟也影响交易速度,大多数区块链每秒钟能处理的交易不超过 15 个。扩展解决方法已经成为很多项目的焦点,要优化性能以处理更多交易并增加处理时间。如果每秒能处理 1 百万个交易的声明能在区块链上得到验证(在撰写本文时还未被验证),那么会显著地扰乱整个行业。
规模问题
大多数数据库,包括区块链在内,都有一个规模大小的问题。当它们的规模变得越来越大的时候,它们会占用更多的存储空间,这让它们的运行速度变慢。比特币的区块链规模已经超过了 100GB,以太坊的区块链规模也超过了 1TB(截至本文撰写时)。这不仅仅是节点的存储容量问题,网络也有同样的问题。区块链的规模越大,把数据复制到网络上的新节点所需要耗费的时间越长。根据网络的带宽,可能需要几个小时,甚至几天时间。区块链的规模越大,就需要更大的带宽来传送数据到其他节点。这会影响到新节点,或者那些重新联机并且长时间没有更新的节点。
昂贵的交易费用
处理交易的费用是比特币面临的另一个问题。当需求高企时,交易费用也上升,这对矿工有好处。对区块链的设计者来说,维持较低的交易费用或取消交易费用是个挑战。昂贵的交易费用阻碍了用户使用网络。当扩展问题解决了交易速度和交易量问题的时候,应该采用更合理的交易费用。
互通性
这是目前遇到的问题,跟传统的数据库不同,每个区块链都有自己的生态系统。有些协议旨在让区块链之间能够互通。比如,要允许用户从比特币向其他区块链(比如以太坊)转移价值,就需要借助数字交易所。开发人员在寻找让不同的区块链互通的方法,以让转移价值变得更简单。
数据库最适合企业网络,因为它们很稳定。对用户来说,它们也显得更友好,并且有很多供管理员和开发人员使用的支撑管理系统。福布斯的 500 强企业使用运行高端系统的数据库处理大量的数据。数据库可以扩展到数百万个记录,并且每秒钟能轻松地处理数千个事务。对于像零售那样需要处理高吞吐量的系统,数据库仍然是最好的解决方案。证券市场采用数据库更好,因为数据库能够快速地存储信息,并允许即时检索,无需矿工验证数据。区块链不需要存储大量在分析过程中要用到的数字数据。数据库能够更好地存储这类数据,并且处理它们的速度也更快,因为它不需要多个节点来运行每一个数据。也不需要加密或哈希存入数据库的每一个数据。默认情况下,数据库是不加密的,因为加密给实时数据库增加了很多开销。获得许可是传统数据库的安全特征。但是,可以对归档的数据库进行加密。
数据库已经证明它们存储信息并提供快速查询以检索数据用于报告和分析用途的可靠性。非结构化的数据也不需要区块链,它们更适合于数据库管理系统。数据无需信任验证才能用,就像到商店打烊时所售出的货物数量最好存入数据库。用区块链来存储那些像私人簿记信息这样简单的事情更昂贵,因为这用一个独立的数据库更有效率那些只有特定公司才需要知道的个人信息,比如社会安全号码和医疗记录,最好是存在数据库中。这些信息可以通过依赖区块链的公共验证系统来使用。这些个人信息可以被隐藏,但可以通过基于公钥加密的区块链来验证。
数据库适合:需要不断更新的数据,像监控和传感器数据。
- 快速在线交易处理
- 机密信息(对公众不透明)
- 来自需要快速处理的市场的财务信息
- 无需验证的数据
- 存储数据的独立应用程序
- 关系数据
区块链的要求是建立信任和透明度。它只是一个数字公共分类账,允许大家访问。在这种情况下,它有助于验证来自跟供应链、分销和库存相关的 B2B 交易信息。透明度有助于像广告这样的行业最大限度地减少欺诈,借助构建对广告公司和广告支出来源的验证来实现。不是用于大规模数据记录的区块链可以更多地用于验证信息。比特币是第一个成功实施的区块链,它作为一个用于转移价值和在交易中验证支付的系统,工作得很出色。比特币的成功之处在于,解决了数字支付系统中的双重支付问题,即允许用户重复使用同一份资金。比特币实现了一个协议,该协议使用基于时间顺序的时间戳和可用的用户资金的确认来验证交易。这有助于通过不允许系统同时处理交易来防止双重支付,它们将始终按照时间顺序来完成。
有些项目在探索区块链是否能用于许可系统,像那些用于投票站的系统。这在纸面上很有意义,因为区块链能够验证一个人的身份,也可以验证一个人进行的投票。目的是防止作弊,因此,区块链旨在无信任和无授权的系统中,以及在一个受信任的和许可的系统中,实现公平。在后一种情况下,有些区块链不需要代币或挖矿,就像在企业区块链中一样。这些是新类型的系统,在私人和许可的环境下使用区块链技术,并且,有时候和数据库整合在一起形成混合系统。
数据库管理员要注意的是,区块链是非关系型的。您不能创建不同区块链的连接并关联数据。这是数据库和区块链之间的主要区别,因此,当需要关系型数据时,不适合使用区块链。
其他区块链实现了一种类似于以太网上所谓的“智能合约”。非常类似于在数据库中使用存储过程,其中激发器可以用于执行代码来处理交易。在以太网中,智能合约作为字节代码在网络中的所有节点上执行。以太网和其他加密货币(像 EOS 和 NEO),使用区块链作为其智能合约生态系统的平台。这是区块链的使用和传统数据库不同的另一个例子。
区块链适用于:
- 货币交易
- 转移价值
- 可信数据(身份、声誉、信用、完整性等)的验证
- 公钥验证
- 去中心化应用程序(DApps)
- 投票系统
关于数据库和区块链,还有很多东西可以讨论,但是我们没有,因为话题太广了。我在这里介绍的只是一些从技术角度看到的事实和观察。最后,并不是数据库比区块链更好或者区块链比数据库更好的问题。它们各有各的用途,如何使用它们取决于您想对您的数据进行什么操作。
原文链接:https://hackernoon.com/databases-and-blockchains-the-difference-is-in-their-purpose-and-design-56ba6335778b