区块链与数据库本质的区别

  在谈到什么是区块链及其与数据库的区别时,我们得到的信息是非常混乱的。区块链事实上是个数据库,因为它是一个数字分类账,把信息存储于称为区块的数据结构中。数据库是把信息存储于称为表的数据结构中。然而,虽然区块链是个数据库,但是数据库却不是区块链。

  数据库

  传统的数据库是用于存储信息的数据结构。它包括可以查询的数据,以收集对实体用于支持业务、财务和管理决策的结构化报告的见解。政府还利用数据库来存储大量的数据,这些数据可以扩展到数百万条记录。数据库以平面文件分层系统起步,提供简单的信息收集和存储功能。后来,数据库使用关系模型,该模型允许通过把来自多个数据库的信息关联起来,用更复杂的方式收集数据。这些存储在数据库的信息可以利用数据库管理系统进行组织。简单的数据库存储在称为表的数据元素中。表含有定义记录类型的字段,这些字段存储称为属性的数据。每个字段包含列和行,其中列描述该字段,行则定义存储于数据库中的记录。

  数据库设计

  数据库可以进行修改,由一位被称为管理员的用户管理和控制。数据库总是有一位行使数据库管理员职责的用户,该用户对数据库有完全的控制权。该用户可以创建、删除、修改和改变任何存储于数据库中的记录。他们还可以在数据库上行使诸如优化性能和把数据库的规模控制在可控水平上等管理职能。大型数据库的性能往往会下降,因此,管理员可以实施优化方法以提高性能。管理员还可以把某些职责委托给其他用户,允许他们成为管理员或管理数据库。例如,管理员可以把职责委托给用户,允许他们为数据库创建新用户。一旦出错,管理员和受他们委托的用户可以从备份中恢复数据库。在企业界,这类问题很常见。如果服务器崩溃,唯一能恢复数据的方法是从备份中恢复数据库。数据库也可以递归,意思是您可以返回到某个特定的记录上重复某个任务,并对其进行修改或删除。管理员常常清除数据库中的旧记录,这些记录不是已经备份到另一个数据库,就是已经被视为是过时的信息。比如,如果您在现有的数据库中有一个“JohnSmith”的记录,他的新住址需要更新到该记录中。在存档的数据库中已经有“JohnSmith”之前的地址备份,因此,该记录可以用在现有数据库中的新地址进行更新。

  区块链

  我准备根据用于比特币的设计来描述区块链。还有用于企业环境的私有区块链,但是我稍后才讨论它们。区块链于年面世,比特币成为第一个实施区块链的系统。在比特币中,区块链是个不可变的数字公共分类账,是一个不断增长的分布式数据库,通过加密保证安全性。区块链存储信息于统一大小的区块中。每个区块包含一个来自前一个区块的哈希信息以提供加密安全性。这个哈希信息是来自前一个区块的数据和数字签名,这个前一个区块的哈希值可以一直回溯到被称为“创始块”的第一个区块。该信息是通过哈希函数运行,然后指向下一个区块的地址。区块链数据结构是默克尔树的一个示例,它被用作验证数据的有效方法。

  区块链设计

  让区块加入到区块链的过程中涉及了博弈理论。在网络中作为节点的计算机称为“矿工”,必须和其他计算机进行竞争,以找到叫做“nonce(随机数)”的哈希函数产生的值。矿工必须利用自己的计算资源求解这个值,这需要强大的计算机硬件。构建在区块链中的一个称为难度级别的协议决定了基于网络中所谓的全部哈希能力来求解该值的难易程度。这意味着矿工越多,难易程度的调整就越难。因为矿工越多,在网络中的可用计算能力就越多,提高了以每秒哈希为单位计算的哈希能力。一旦矿工验证了一个区块,它们将收到奖励作为把它们的计算能力提供给网络的补偿。这种激励是节点参与挖区块的动力,因为它们收到以交易费用和代币的形式出现的奖励。在比特币的协议中,这被称为工作量证明共识算法。

  区块链使用点对点网络架构

  区块链使用点对点网络架构。它不需要访问中央数据库,相反,网络中所有参与的节点可以相互连接。没有“主人”来控制所有的节点。每个节点在如何访问该区块链上是互相平等的,不需要获得管理员访问权限。因此,如果某个节点有恶意,会影响到网络吗?从理论上来讲,如果它们有多数的哈希能力,就会影响到网络。在理论上,一个恶意节点可以采用所谓的“51%攻击”来控制整个网络。这需要大量的计算资源来完成,因为发起攻击比不攻击网络的成本更大。在这种情况下,利用计算资源挖矿更有利润。确保区块链安全的机制是去中心化,如果一个节点试图修改区块链上的任何信息,就需要来自其他节点验证支持。这会创建一个不同于主网的链,而且只有在其比主网的链还要长时才能被验证。像比特币这样的网络包含数千个节点,因此,如果试图操纵数据,就需要在该网络中的所有其他节点上进行修改。实际上,这是计算密集型的,需要消耗大量的电力,是极其难以做到的。这是一种治理形式,以确保没有人可以欺骗别人。这就是区块链防篡改和不可变的原因。同时,它是透明的,因为有证据表明,每个人都可以查看所发生的交易。

  我们可以清楚地看到,正是这种设计让区块链有别于传统的数据库和区块链。我们来做个总结吧。

  数据库和区块链主要特征的比较

  现在,我们来看看它们各自的优缺点。

  使用数据库的优点

  用户友好的可定制性,稳定性,交易速度和交易量

  

  使用区块链的优点

  去中心化,不可变性,透明度,安全性

  

  数据库的问题

  单点故障,管理员账户,安全问题

  

  区块链的问题

  能量消耗,可扩展性,规模问题,昂贵的交易费用,互通性

 

  数据库和区块链的最佳用例

  数据库最适合企业网络,因为它们很稳定。对用户来说,它们也显得更友好,并且有很多供管理员和开发人员使用的支撑管理系统。福布斯的强企业使用运行高端系统的数据库处理大量的数据。数据库可以扩展到数百万个记录,并且每秒钟能轻松地处理数千个事务。对于像零售那样需要处理高吞吐量的系统,数据库仍然是最好的解决方案。证券市场采用数据库更好,因为数据库能够快速地存储信息,并允许即时检索,无需矿工验证数据。区块链不需要存储大量在分析过程中要用到的数字数据。数据库能够更好地存储这类数据,并且处理它们的速度也更快,因为它不需要多个节点来运行每一个数据。也不需要加密或哈希存入数据库的每一个数据。默认情况下,数据库是不加密的,因为加密给实时数据库增加了很多开销。获得许可是传统数据库的安全特征。但是,可以对归档的数据库进行加密。

  数据库已经证明它们存储信息并提供快速查询以检索数据用于报告和分析用途的可靠性。非结构化的数据也不需要区块链,它们更适合于数据库管理系统。数据无需信任验证才能用,就像到商店打烊时所售出的货物数量最好存入数据库。用区块链来存储那些像私人簿记信息这样简单的事情更昂贵,因为这用一个独立的数据库更有效率那些只有特定公司才需要知道的个人信息,比如社会安全号码和医疗记录,最好是存在数据库中。这些信息可以通过依赖区块链的公共验证系统来使用。这些个人信息可以被隐藏,但可以通过基于公钥加密的区块链来验证。

  区块链的要求是建立信任和透明度。它只是一个数字公共分类账,允许大家访问。在这种情况下,它有助于验证来自跟供应链、分销和库存相关的B2B交易信息。透明度有助于像广告这样的行业最大限度地减少欺诈,借助构建对广告公司和广告支出来源的验证来实现。不是用于大规模数据记录的区块链可以更多地用于验证信息。比特币是第一个成功实施的区块链,它作为一个用于转移价值和在交易中验证支付的系统,工作得很出色。比特币的成功之处在于,解决了数字支付系统中的双重支付问题,即允许用户重复使用同一份资金。比特币实现了一个协议,该协议使用基于时间顺序的时间戳和可用的用户资金的确认来验证交易。这有助于通过不允许系统同时处理交易来防止双重支付,它们将始终按照时间顺序来完成。

  有些项目在探索区块链是否能用于许可系统,像那些用于投票站的系统。这在纸面上很有意义,因为区块链能够验证一个人的身份,也可以验证一个人进行的投票。目的是防止作弊,因此,区块链旨在无信任和无授权的系统中,以及在一个受信任的和许可的系统中,实现公平。在后一种情况下,有些区块链不需要代币或挖矿,就像在企业区块链中一样。这些是新类型的系统,在私人和许可的环境下使用区块链技术,并且,有时候和数据库整合在一起形成混合系统。

  数据库管理员要注意的是,区块链是非关系型的。您不能创建不同区块链的连接并关联数据。这是数据库和区块链之间的主要区别,因此,当需要关系型数据时,不适合使用区块链。

  其他区块链实现了一种类似于以太网上所谓的“智能合约”。非常类似于在数据库中使用存储过程,其中激发器可以用于执行代码来处理交易。在以太网中,智能合约作为字节代码在网络中的所有节点上执行。以太网和其他加密货币(像EOS和NEO),使用区块链作为其智能合约生态系统的平台。这是区块链的使用和传统数据库不同的另一个例子。

  区块链适用于:

  ·货币交易

  ·转移价值

  ·可信数据(身份、声誉、信用、完整性等)的验证

  ·公钥验证

  ·去中心化应用程序(DApps)

  ·投票系统

  关于数据库和区块链,还有很多东西可以讨论,但是我们没有,因为话题太广了。我在这里介绍的只是一些从技术角度看到的事实和观察。最后,并不是数据库比区块链更好或者区块链比数据库更好的问题。它们各有各的用途,如何使用它们取决于您想对您的数据进行什么操作。

赞赏

长按







































看白癜风的医院哪里好
北京治疗白癜风要用多少钱



转载请注明:http://www.xcqg58.com/xxzl/8498.html

  • 上一篇文章:
  •   
  • 下一篇文章: 没有了