区块链技术的起源和解释
-
从网络的角度看:区块链的底层网络模型提供了分布式数据存储的完美实现,比特币系统从诞生至今没有发生过一次宕机事件,这有利地证明了该网络模型的稳定和高效。
-
从底层技术的角度看:区块链更像是一个数据结构,用区块存储数据,把区块按照顺序链接起来组成区块链,从而达到防止数据被篡改的目的。
-
从密码学的角度看:区块链利用椭圆曲线数字签名算法来保证数据的完整性和真实性。
-
从数据存储的角度看:区块链更像是一个分布式数据库,不但数据的存储是分布式的(以共享账本为例,所有的数据可以对等地存储在所有参与数据记录的节点中,而非集中存储于中心化的机构节点中),而且数据的产生也是分布式的(账本所有的节点集体维护,而非一个单独的中心机构来维护)。
区块链不是一个单独的技术,而是多种技术的组合。
区块链的技术特性:
分布式数据库的技术特性
- 密码学特性
- 共识机制
- 智能合约
区块链的分布式存储特性:
传统的关系数据库事务必须满足四个特性:
- 原子性:事务中的所有操作要么全部执行,要么全部拒绝,没有任何中间状态
- 一致性:数据库的完整性约束不能被任何事务破坏
- 隔离性:多个事务完全隔离开来,一个事务的执行不会影响其它事务
- 持久性:一个事务完成之后,该事务对数据库的变更将被永久的保存到数据库中
区块链是分布式数据库满足以上部分特点
- 原子性:区块链的数据存储在区块中,一个区块链中的数据要么完全进入区块链要么完全被丢弃
- 隔离性:所有节点可以同时生成区块,但是最终只有一个区块可以加入区块链中
- 持久性:一旦区块加入区块链中,就会被永久保存并复制到其它节点。
移动互联网时代在关系型数据库(ACID)数据库的基础上创建了分布式数据库
分布式数据库有以下特点(BASE)
- 基本上可用(basicallyavaiable):主要需求是可用的,即使出现划分的情况下,也应该允许更新,哪怕牺牲一致性为代价
- 软状态(softstate):网络划分可能导致数据库中每个副本都有一定程度不同的状态,从而导致整体状态不明确。
- 最终一致性(eventuallyconsistent):当解决完所有划分后,要求最终所有副本一致
和ACID强一致性比较BASE面向的是可扩展的分布式系统。BASE在牺牲强一致性的基础上换取了可用性,允许在某个时间段内不同节点之间存在数据的不一致性,但是最终所有节点的数据都是一致的。而区块链的节点是分布在全世界各个地方的,在一定的时间段内,不同节点的区块数存在不一致的情况,但是最终都是一致的。所以我们认为区块链是符合分布式数据库BASE规则的。通过上面的对比我们发现,区块链符合传统的关系数据库和互联网时代的分布式数据库特性。
网友评论