李钧9星评价
2020-04-22 15:46:26
首先,区块链的主要作用是储存信息。
任何需要保存的信息,都可以写入区块链,也可以从里面读取,所以它是数据库。
其次,任何人都可以加入区块链网络,成为其中一个节点。
区块链没有中心节点,每个节点都是平等的,都保存着整个数据库。你可以向任何一个节点,写入/读取数据,因为所有节点最后都会同步,保证区块链一致。
便于大家的理解,再通俗一点来说,区块链分布式数据库好比是一个公共账本。
——任何人都可以在这个账本上记账。
——任何人都可以对这个公共账本进行核查。
——任何人都可以单独保存一个账本。
——所有人保存的账本都是一样的。
——某一个人或者少数人丢失他的账簿,并不影响其他人的账簿的完整。
——账本中的所有数据都是按照时间顺序记录的。
——没有人能擅自对账本的内容或者数据进行改动。
——如果产生新的数据,不能在原有的账簿上添加或改动,只能创建一个新的区块(新的一页)。
——如果确需更改,必须51%的人同意并且51%的人同时改动才能生效。
——任何一个区块(账簿中的任意一页),都可以向后追溯到第一个区块(账簿的第一页)
这就是区块链分布式数据库的记账的模式,不论是在登记、结算、的实时对账能力,还是在数据存证场景上的不可篡改能力,都可以为溯源、防伪、供应链场景提供有力的保障。
所以说分布式数据库:应对互联网条件下大规模数据的增删改查需求,解决传统数据库面临的通信开销大、性能差、容量可扩展性差和可靠性低的问题。
涨哥喊涨必大涨5星评价
2020-04-22 15:47:33
一致性的核心共识算法和冗余的数据存储是二者最为相似的一点,即便如此,二者在技术目的上仍存在本质区别。其中,区块链使用这些技术的核心目的在于构建一个尽可能去中心的、数据资产所有权永久保护和自由转让的世界;而分布式数据库核心目的则是尽可能构建一个逻辑中心,这个中心能对外提供高性能、低成本以及扩展性好的服务。
二者都需要面对不可能三角的挑战,但二者所需要面对的具体挑战有本质的区别:其中区块链面对的是安全、去中心化和可扩展性;而分布式数据库面对的是对业务的支持度、工程实现复杂度和硬件要求。
一致性在区块链和分布式数据库上对应的意义也不同:区块链系统中的一致性指的是多节点对数据状态的共同维护能力;而分布式数据库系统中的一致性指的是多个副本对外呈现的状态。
区块链系统解决的是拜占庭错误,主流算法有POW/POS(概率算法)和PBFT(确定性算法)。其中,POW/POS概率类算法的共识结果则是临时的,随着时间推移或某种强化,共识结果被推翻的概率越来越小,最终成为事实上结果。拜占庭类容错算法往往性能较差,无法容忍超过 1/3 的故障节点;而PBFT确定性算法一旦达成共识就不可逆转,即共识是最终结果。分布式数据库系统解决的是非拜占庭错误或故障错误,主流算法有Paxos和Raft,这类容错算法往往性能比较好,处理较快,容忍不超过1/2的故障节点。