区块链研究:区块链的结构(2)
image 区块链 05/18

本篇将介绍区块链的结构和运作原理。

上一篇我们说到区块链是分布式的账本,那么这个账本是怎么工作的呢?首先我们需要了解下它的架构:简单地看,区块链共有三个层次:协议层、扩展层和应用层。

简单理解,还是用这个账本的比喻,协议层就是账本内容和账单,拓展层则是记账原则,应用层则是每个人的账户余额。有了账户,账单,记账方法,这一个体系就可以运转起来了。

但是账本毕竟太浅显了,这次我们换一个比喻,把区块链想象成一个电脑软件,那么协议层就是电脑的操作系统,拓展层是电脑的驱动程序,而应用层则是直接面向客户的APP、客户端。

(1)协议层

协议层就是指代最底层的技术,扮演的角色类似电脑的操作系统。协议层可以又细分成两个层次:存储层+网络层。

区块链研究:区块链的结构(2)
区块链的协议层

存储层:区块链数据

存储层其实就是数据层,也就是“账本上的内容”。从第一个区块开始,之后在同样规则下创建的规格相同的区块通过一个链式的结构依次相连组成一条主链条。随着整个区块链的不断运行,新的区块通过验证后会不断被添加到主链上,主链就会不断延长。

到这里我们会发现存储层最基本的结构单元就是区块,为了让大家更好地理解区块和其连接机制,我们需要先介绍三个概念:哈希算法,时间戳,和Merkle树结构。

区块链研究:区块链的结构(2)
Merkle树结构

Merkle树的叶子节点存储数据信息的哈希值,树根节点存储的是对其下面所有叶子节点的组合进行哈希计算后得出的哈希值。区块中任意一个数据的变更都会导致Merkle树结构发生变化,Merkle树结构使得我们只需验证其统一生成的统一哈希值,大大减少了数据的计算量。

了解这三个概念以后我们再来看区块。区块由包含元数据的区块头和包含交易数据的区块主体构成。其中,区块头里包含的元数据有三组:

1、前面区块的哈希值,用于连接前面的区块。

2、挖矿难度、Nonce(随机数,用于工作量证明算法的计数器,下篇文章重点讲解)、时间戳;

3、能够总结并快速归纳校验区块中所有交易数据的Merkle树根数据。

区块链系统每隔一段时间会创建一个新的区块,其中包含了这段时间整个系统发生的所有交易,这些交易的信息通过哈希算法生成哈希值,这些哈希值通过Merkle树结构生成树根节点的哈希值,也就是这个区块的哈希值。新区块通过前一个区块的哈希值与前一个区块连接,这样形成一条完整的交易链条,如下图所示,这也就是整个存储层的构成。

区块链研究:区块链的结构(2)
存储层:区块链数据(图片来自网络)

网络层:区块链节点

网络层的本质则是一个点对点的网络,节点可以产生、接收信息,节点与节点之间通过维护一个共同的区块来保持通信。

区块链研究:区块链的结构(2)
网络层:区块链节点网络

区块链的网络中,节点和节点之间的通讯信息会记录在新的区块中,新区块创造后会以广播形式通知到其他节点,其他节点会对这个区块进行验证,当全区块链网络中有超过51%的用户通过了验证,这个新区块就会被加到主链上。

(2)扩展层

扩展层扮演的角色类似电脑的驱动程序,这个层次使得区块链的产品更加实用。扩展层里包括了共识层、激励层与合约层。

区块链研究:区块链的结构(2)
区块链的拓展层

(3)应用层

这个层面则相当于电脑中的各种软件程序,它封装了各种应用场景和案例,其中最简单也是最典型的应用就是大家目前使用的虚拟货币钱包。

举个例子,我们可以把区块链中每个人的钱包想象成一个银行账户,只不过这个账户不需要背后的银行(中心化)来背书,而是靠去中心化的记账,来保证每个人账户余额的准确性。这就是一个典型的区块链应用。

搭建在以太坊上的各类区块链应用就是部署在应用层,所谓可编程货币和可编程金融也将会搭建在应用层。后面的文章我们也会详细介绍区块链和各个行业的结合案例。

(4)总结

在本篇文章中,笔者将区块链的结构分为三层:协议层,拓展层,和应用层。

协议层包括网络层和数据层,相当于区块链系统的操作系统,每一笔交易数据都存储在数据层里,并需要网络上的节点共同确认。

拓展层可以分为共识层,激励层,和合约层,相当于区块链系统的驱动程序。通过智能合约、共识机制、激励机制,来促进区块链系统的高效运转。 

应用层则相当于我们的手机APP,封装了各种应用场景和案例,我们将在专栏的第五篇文章中为大家分享一些经典的案例。

简介:
本篇将介绍区块链的结构和运作原理。上一篇我们说到区块链是分布式的账本,那么...
本文采集自互联网,如有版权问题请联系我们进行处理。
联系方式:system@shangyexinzhi.com
2000+知识点 7000+案例
商业新知助力数字化转型
下载