区块链的本质是分布式记账,公众的理解是一种分布式记账和分布式数据库,那么它和数据库是不一样的,如果不是有什么不同呢?
区别1:数据存取
只有CR,而不是UD
常见的数据库不使用“块”,而是通过使用“表”。表是数据库中以表格式进行保存的相关信息数据技术集合,由列和行组成。
在关系数据库中,表是一组数据元素(值),它们构成具有垂直列(由名称标识)和水平行的单元格。该表具有指定数量的列,但也可以有任意数量的行。
数据库中的数据可以使用四种基本操作:创建、读取、更新和删除(CRUD)。
但是,区块链只允许两个操作:创建和读取。 区块链只能在区块链结尾添加完整的块(含交易),添加后数据不能更新或删除。
数据库允许人们不断地改变甚至删除过去存储的数据。"区块链"有意保持历史数据不变并始终可用。
区别2:数据权限
“一组系统管理员”≠区块链节点
除了“允许采取什么样的行动”之外,“谁来做”也是查看区块链和数据库之间区别的另一个重要级别。
数据库由一个或一组管理员维护,管理员也可以修改或删除数据库。 如果对数据正确性存在争议,且用户没有修改权限或只有有限的修改权限,则管理员将始终拥有比用户更多的权限。 区块链没有管理员可以修改或删除权限数据。
从直接参与者的角度来看,少数实体之间的私有区块链可以看作是一个分布式的、分散的系统。如果在单个公司中使用私有的区块链,它仍然是一个集中的解决方案,尽管它具有一些分布式系统的优点。对于单个公司来说,数据库可能是更好的选择。
区别3:数据备份
冗余数据库=区块链
传统企业数据库系统进行“数据可以复制”,主要是防止信息数据丢失,不能为了防止篡改历史发展数据或管理员重写数据。如果我们一个服务器接受了更改,而其他服务器没有,还可能存在一些数据不一致的情况。
数据复制
区块链利用地方分权的共识,简洁地解决了上述问题。一旦网络中的所有或大多数节点同意添加一个新块,数据将被写入许多硬盘。即使一个生成新块的节点在同步之后立即崩溃,数据仍然保存在其他节点上,崩溃的节点可以获得所有块的有效版本。
数据可以在所有节点达成目标一致后被写入所有磁盘
多个数据备份系统数据库也不能与“497”具有发展同等的安全性。
“数据复制”意味着一个服务器将数据发送到另一个服务器以进行备份。在存储数据之前,服务器之间对存储特定版本的数据没有达成共识。如果一个服务器发送无效或不正确的数据,其他服务器只是盲目地接收和存储它(某种数据验证仍在工作)。
与此同时相反,在区块链中,大多数节点在将一个块存储到区块链之前我们必须通过达成目标一致意见。
区别4:数据传输
分散系统≠分散格式
传统的数据库采用主从结构(客户机-服务器),是一种软件结构模型,由客户机系统和服务器系统两部分组成。 它们通过计算机网络或在同一计算机上通信。 主从结构的应用是一个由客户端和服务器软件组成的分布式系统,但仍然是以服务器为中心的集中式解决方案。
数据库建立在服务器上。因此,如果只有一个服务器,就有可能出现所谓的单点故障。一旦服务器关闭,所有客户端都不能与服务器通信,也不能相互通信。
从数据的角度来看,所有客户机都必须依赖服务器作为诚实和安全的。
现在,很少可以看到我们只有这样一个企业服务器的网络。在大多数情况下,网络发展中有更多的冗余服务器。如果没有一个系统服务器崩溃或暂时不可用,则会有另一个服务器代为处理以及所有请求,但这只有在服务器之间关系已经无法复制数据的情况下才有可能。
如果将一个事务或请求发送到服务器,则该数据将在给定的时间内写入一个数据库,然后备份到另一个数据库。通常会有一些延迟,以及可能出现的不一致的数据传输。
区别5:数据存储
不可更改与价值证明
该数据库可用于安全监控、信令、信息收集和授权场景。 许多数据库以数据库触发器的形式提供有效的数据库特征。 在云数据库情况下,数据通常只对少数人很重要,在数据库系统中实现安全性就足够了。 用户可以信任数据库所有者,因为还有其他机制(如法律)可以解决可能出现的问题。
区块链的优点在于需要存储不可变的信息,比如证明状态x对用户y在时间z是有效的。它适合保存和证明所有权。这就是为什么人们可以在区块链上创造数字货币。这种类型的信息不能由个人更改,必须高度安全。添加块的过程实际上就是以一种无信任的方式向大量用户添加大量x状态的过程。
综上所述数据库很强大,人们可以利用它实现几乎所有想要的功能,但区块链的特有功能,数据库是做不到的。