自学区块链:原理、技术及应用
上QQ阅读APP看书,第一时间看更新

1.2 区块链的技术构成与逻辑架构

1.2.1 区块链的技术构成

广义上说,区块链由分布式账本、共识机制、智能合约、去中心化网络等技术构成。分布式账本前面已经讲解过了,下面依次讲解其余的区块链的技术构成。

1.共识机制

共识机制是区块链中的重要机制,不同的区块链项目可能使用不同的共识机制。网络中各个结点根据共识机制达成共识,共同维护整个区块链网络。如果把一个区块链网络比作一个公司,那么共识机制就好比这个公司的关键绩效指标(Key Performance Indicator,KPI)。公司根据KPI对员工进行奖惩,完成KPI的员工会获得奖励,没完成的就没有奖励。同样,区块链网络根据共识机制对链上的各个结点进行奖惩(关于共识机制的概念和种类将在第3章详细介绍)。

2.智能合约

智能合约不是区块链的必要组成,它是区块链2.0之后出现的技术。还是把区块链比作一个公司,智能合约相当于公司中的规章制度,员工工作的时候会依据规章制度行事,而在有智能合约的区块链中,链上的结点会依据智能合约进行工作。

3.去中心化网络

去中心化网络不同于中心式网络。在中心式网络中,需要中心服务器,好比一般公司都有CEO的角色,公司的发展和运作都要根据CEO这个中心制定的策略进行,如图1-20所示。而在去中心化网络中,每个结点的地位和权益都是平等的,结点之间可以相互连接,如图1-21所示。

图1-20 中心式网络示意图

图1-21 去中心化网络示意图

在去中心化网络中,各个结点之间可以发生交易,结点可以自由地加入和退出网络,如图1-22所示。

图1-22区块链中的结点

1.2.2 区块链的逻辑架构

从架构上说,区块链大致可以分为4层,从下到上依次为数据层、网络层、合约层和应用层,如图1-23所示。

图1-23 区块链的逻辑架构

1.数据层

数据层是区块链的逻辑架构中最基础的一层,功能主要包括区块数据的存储、哈希值和Merkle树的计算以及链式结构的生成,其中进行数据的存储时需要重点考虑数据存储的性能和稳定性。在比特币和以太坊中的存储功能选择的是LevelDB数据库。LevelDB是谷歌实现的一个非常高效的键值(Key-Value)数据库,目前最新的版本1.2能够支持万亿级别的数据量。基于良好的结构设计,LevelDB数据在万亿数量级别下的数据存储应用场景中有着非常高的性能表现。

数据层的功能是把交易数据存储到区块中并将区块加入到区块链中。当结点之间发生交易后会将交易数据广播到区块链的去中心化网络上,网络中其他结点负责校验这些交易。交易被确认有效后会存储到区块中,并加入到区块链。比如,张三转账给李四0.2比特币,王五转账给赵六0.5比特币,孙七转账给周八0.1比特币。这些转账信息被广播到区块链的去中心化网络中后由结点A最先确认,然后结点A通过共识算法(或者说“挖矿”)生成一个新的区块,新的区块被加到区块链上生成一个更长的区块链,如图1-24所示。

图1-24 数据层

2.网络层

网络层主要包括P2P网络和共识算法两个组成部分。P2P(Peer to Peer)网络也称为点对点网络或对等网络,根据去中心化程度的不同可以将其分为纯P2P网络、杂P2P网络和混合P2P网络,下面比较一下这几种网络的特点。

1)纯P2P网络的特点如下。

●结点同时作为客户端和服务器端。

●没有中心服务器。

●没有中心路由器。

2)杂对等网络的特点如下。

●有一个中心服务器保存结点的信息并对请求这些信息的客户端做出响应。

●结点负责发布信息(因为中心服务器并不保存文件),让中心服务器知道哪些文件被共享,让需要的结点下载其可共享的资源。

●路由终端使用地址,通过被一组索引引用来获取绝对地址。

3)混合P2P同时含有纯P2P和杂P2P的特点。

流行的下载工具BT、迅雷等都是基于P2P网络的,这些下载工具的主要功能是进行文件资源分享,可能会选择杂P2P网络或混合P2P网络。而在区块链技术中P2P网络的作用是让网络中的所有结点一起平等地参与维护这个区块链的分布式账本,使用的是纯P2P网络。

但P2P网络中,各个结点需要对区块链中的各个区块达成共识才能共同维护同一分布式账本。这个共识的机制就是共识算法,比较最为常用的共识算法有工作量证明机制(Proof of Work,PoW)、权益证明机制(Proof of Stake,PoS)、股份授权证明机制(Delegated Proof of Stake,DPoS)等,这些共识算法会在第3章中详细讲解。

3.合约层

合约层的功能使得区块链中的区块具有可编程的特性,比如比特币网络中可以通过编写简单的脚本实现这个功能。加入了智能合约的区块链(区块链2.0),具备了更加强大的编程功能,使得区块链可以在满足特定条件后自动触发相应的操作。

合约层赋予了区块链智能的特性,在区块链中智能合约的作用如同一个智能助理,对区块链中的数据和事件按照预先设定的逻辑进行处理,比如可以通过专门编写的智能合约执行查询余额和存钱的操作,如图1-25所示。

图1-25 合约层通过智能合约实现功能

4.应用层

应用层泛指基于区块链技术并结合具体业务场景开发的应用,包括加密数字货币钱包、交易所、去中心化应用等。常见的区块链应用有加密数字货币钱包比特派(如图1-26所示)、类似于微信的去中心化聊天工具BeeChat(如图1-27所示)以及基于以太坊的去中心化应用加密猫(如图1-28所示)等。

图1-26 加密数字货币钱包比特派

图1-27 聊天工具Beechat

图1-28 基于以太坊的去中心化应用加密猫

以上就是区块链的4层模型,下面介绍区块链的分类。