美文网首页
分布式系统与区块链

分布式系统与区块链

作者: 链圈社区 | 来源:发表于2018-11-06 18:33 被阅读0次

钱包分布式系统是相对于中心化系统而言的,是由一组通过网络进行通信、为了完成共同的任务而协调工作的计算机节点组成的系统。区块链要解决的问题在于:不同的节点,或者说是不同的客户主机针对同一个消息得出最终一致的结论。这样我们就知道了:分布式系统是区块链的基础,是区块链的基础框架。一个区块链系统一定是一个分布式系统,但是分布式系统不一定是区块链。这里我们不钻牛角,如果一定要说存在中心化的区块链,我无言以对。

1.概念

1.1. 分布式系统

分布式系统的出现是为了用廉价的、普通的机器完成单个计算机无法完成的计算、存储任务。其目的是利用更多的机器,处理更多的数据。首先需要明确的是,只有当单个节点的处理能力无法满足日益增长的计算、存储任务的时候,且硬件的提升(加内存、加磁盘、使用更好的CPU)高昂到得不偿失的时候,应用程序也不能进一步优化的时候,我们才需要考虑分布式系统。

分布式具有如下的优点:

1> 将分布在各个节点的资源充分利用,而这种利用对用户而言是透明的。

2> 将负载由单个节点转移到多个,多节点协同工作,从而提高效率。

3> 分布式技术可以避免由于单个节点失效而使整个系统崩溃的危险,只要有一定数量的节点存在,系统即可正式工作。

商业上使用较广泛的数据库hbase,就是分布式在数据库领域的一个很好的应用。

1.2.区块链

狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。

广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式。

与单纯分布式系统不同,区块链首要解决的是信任问题,区块链技术问世之前,任何交易活动都需要有一个中介,否则,一群不存在信任关系的陌生人,根本无法达成交易。但是这种中介中心化的交易,存在交易成本高、系统不稳定、技术漏洞、道德风险等问题。而区块链就是信任的机器,可以用代码取代信任中介的作用,基于算法使陌生人在不借助于第三方的情况下,完成交易。简单来说,这相当于我的支付与结算,通过的不是银行等中心机构,而是基于全球分布式账本、全网记账的区块链。

2. 区块链与传统分布式系统的区别

2.1.一致性算法

区块链需要解决的是拜占庭将军问题,即网络中存在一个或多个欺诈节点,可能会故意违反协议或传输错误的数据,因此区块链往往采用拜占庭容错的一致性算法(通常称为共识算法),如BFT、PoW、PoS等;而传统分布式系统只需考虑节点失效和通讯错误的情况,往往采用paxos、raft之类的一致性算法,这类算法不能对抗欺诈节点。

2.2.中央控制方

在区块链网络中是不存在中央控制方的,没有一个节点可以控制或协调账本数据的生成,各节点通过共识算法进行协调,生成一致的账本。而传统发布式系统则往往是由一个机构进行控制,统一调度各节点参与运算。

2.3.规则制定

区块链的规则就是共识协议,又称共识机制,共识算法是其中的一部分。共识机制一般是由一个人或一个团队设计制定,并开发出相应的程序,提供给社区使用。这一点似乎与传统的分布式系统一样,但区块链的共识机制的改变、升级是需要社区对此有一致的共识,如果不能达成共识,则任何人都可以实施硬分叉,另建一个社区、一条链。这就是共识机制的去中心化过程。

2.4.计算模式

由于区块链节点之间不具有相互信任,因此区块链的业务计算是通过智能合约完成的,智能合约代码在网络上的所有(或部分)节点上同时运行,其执行结果通过共识算法在全网进行验证,通过这种计算上的冗余来保证计算结果的一致性。而传统分布式系统则无需考虑这些问题,同样的运算只需在一个或少数几个节点上进行,结果也无需其他节点验证,可以获得很高的效率。

2.5. 性能

区块链是以相对的低效率来换取公正,比如POW共识机制的比特币与以太坊,每秒只能处理几笔到几十笔交易;RPCA共识机制ripple网络,TPC最高也就1800;其它更高效的区块链软件正在研发之中;而分布式系统的性能理论上可以无限提升,目前已达到每秒数十万笔交易。

由此可见,区块链是一种特殊的分布式系统,通过解决拜占庭将军问题实现了非信任网络环境下的最终一致性,代价是相对较低的效率。如果剔除区块链的去中心化因素,由一个或几个中心节点来控制整个系统,则这种效率的牺牲变得毫无必要,区块链就退化为传统的分布式系统。

3. 区块链中的分布式

3.1. 交易的发布与传输

每个节点都可以发布交易,每一个参与的节点可与相邻节点进行信息交互,全网公开传递有价值的信息。在区块链中要对收到的每个交易进行身份验证,同时验证账户在区块链系统中的账户信息。把有问题的交易抛弃不用,将符合规定的交易留用记账,同时传给自己的相邻节点。

3.2. 记账

每个参与系统的记账节点都可以记账,且记录可以追溯查询,但不可篡改。但分布式并不是说任何系统的所有节点都会有记账权,根据不同的共识机制,能参与记账的节点类型是有所不同的。

对于“比特币”、“以太坊”所使用的POW共识机制,每个节点都可能取得比特币的记账权,在完成工作量证明后,第一时间让全网认可,即确定了记账的有效性。

对于“EOS”、“比特股”所使用的DPOS共识机制,只能那些被选举出来的超级节点才有记账权,那这还是不是真正的分布式系统,这里要打个问号,但是BM主导的这两个区块链确实是影响很大,被无数粉丝追捧。

对于“ripple”所使用的RPCA共识机制,只有那些信任节点才有记账的权力,普通的节点是没有记账的权力的。但是普通节点也是在不断的生成区块,只是不会向全网发布自己的区块数据,亦或发布出去的区块链数据不被信任节点认可。

3.3. 分布式储存

分布式记账后在记录信息加工中加上一个时间戳,便会产生区块数据,网络广播出去后,就会在区块链中形成,每个节点可以选择储存完整的数据或者是部分数据。而且,每个节点都可以拥有一份完整的本地数据储存实时的更新。这里不管是针对哪一种共识机制,不管是哪一种类型的节点,最终保存在本地的区块链数据一定会是与全网其它节点是一致的。

分布式系统是区块链的基础思想,想真正进入区块链的世界,就要有分布式的思维,最为基础的一点,我们得知道区块链所维护的链在什么地方,链是以什么方式存在的,分叉时哪个又是主链呢?只有用分布式的思维去思考区块链,这些问题才能够得到满意的回答,不然只能人云亦去,只得其表,未探得区块链的精髓。

相关文章

网友评论

      本文标题:分布式系统与区块链

      本文链接:https://www.haomeiwen.com/subject/gqxpxqtx.html