区块链解读2

解读区块链,分布式系统
区块链的基本架构是一个分布式系统,同时结合算法、密码学、数学等多个因素结合在一块的产物。下文笔者根据自己理解分享下区块链中分布式系统的概念。
学习计算机的同学肯定知道摩尔定律,摩尔定律在一般认为是一种观测或者推测,预计该定律至少会持续到2015年至2020年,但目前看来2013年后摩尔定律有一定的放缓,简而言之,摩尔定律不可避免的遇到了瓶颈,这就必须要求系统从架构方向来考虑海量数据的处理和计算能力的扩展。
这里写图片描述
单一中心集中化的架构逐渐在被集群化来取代,再进一步则为分布式集群架构,目前我们常能接触到的云计算,简单可以认为:分布式计算->网格计算->云计算,云计算不等同于分布式计算,但是云计算没有分布式也就无从谈起了。
区块链一直被人谈论到是去中心化系统,笔者上一篇文章中就对这个“Decentralized”有过二次理解,比特币是区块链技术的最成功的实现案例,但是目前个人还是区块链技术核心不应该去中心化,而是分布式,为了适用各类应用场景,把“去中心化”理解成为“多中心”或者“弱中心”。区块链构建了一个分布式结构的网络系统,让整个网络中的数据库(理解为分布式账本)实时更新并且保证所有记录都保存在参于分布式结构网络系统的每一个网络节点,分布式的架构保障了部分节点损坏,黑客攻击部分节点、部分节点由于网络延时等各种问题不会影响到整个系统的正常运行。
区块链中的分布式参考比特币实现,大致理解为三大块:
1.分布式的信息发起和传输:每个参与系统的节点都可以发起信息,每一个参与的节点可与相邻节点进行信息交互,全网广播传递价值信息。
2.分布式记账:每个参与系统的节点只要根据共识机制,完成工作量的设定,便能取得数据库的记账权,且记录可追溯查询且不可更改。
3.分布式存储:分布式记账后在记录信息中加上一个时间戳,便生产了区块数据,网络广播出去后,便在区块链中形成,每个节点可以选择存储完整或者部分数据,每一个节点都可以有一份完整数据本地存储实时更新。
区块链是一种分布式的网络系统,分布式系统最为关键的问题就是“一致性问题”。
如何保证一致性是所有分布式系统都最为重要的一个环节,一致性现在大多叫做“Consistency”,之前多用“Agreement”,无论哪个单词,在中文理解起来就是多个网络节点必须达成一致,而这个一致必须要在一定约束操作和规定协议的前提下,使得所有的网络节点的处理结果达成规定协议的一致,这个一致性规定协议在区块链中理解为:共识算法。举个例子:笔者今天刚去看了战狼2,指定的一场电影,现在可以通过到电影院现场、美团、淘宝、时光网、猫眼买票,那总的电影票就那么几张,这就要求,各大出票网点需要对该场电影的出票有一个实时一致性的要求。
言归正传,电影票的出票点应该无法和庞大网络中的各个计算节点相比,假设,区块链系统中的节点遍布整个互联网,节点间的通信会出现网络的延时或网络设备故障、节点会出现处理出错或宕机的情况,还可能有恶意节点篡改数据。那这个共识算法的设计就必须具备以下三个重要条件:
1.可终止性(Termination):这一点简单理解为就是任何事情都不能无限制执行下去。Eth中就有gas的概念,所有一致性的结果必须要在一个规定有限的时间内完成,这个同时也是系统高并发后的一种考验。
2.共识性(Consensus):各个节点间对任意结果或者出现特殊结果时候必须有良好的判断机制来处理,时间戳,对所有事件加一个时间戳进行排序,保证顺序就是一种共识性。
3.合法性(Validity):决策的结果必须是其他进程提出的提案,就是每个节点必须参考其余节点的执行操作结果,也可简单认为有一定的约束性,保证整个集群的完整一致。
这里写图片描述
大致讲述了些区块链的分布式系统的概念和分布式系统最关键的一致性的概念,共识算法是区块链中精髓之一,下文对各种主流共识算法再作一文。

猜你喜欢

转载自blog.csdn.net/sxjinmingjie/article/details/77119844