你需要知道的区块链基础架构
文|李伟志
最近有小伙伴给小编反馈,虽然知道区块链很长时间了,但还不太清楚区块链的基础框架到底是怎么回事?
其实区块链的逻辑技术和区块链的可扩展性设计息息相关。今天小编给大家说说区块链实现的基础架构。
区块链基础架构
区块链基础架构分为三大层,六小层,包括基础网络层下的数据层和网络层、中间协议层下的共识层、激励层和合约层、应用服务层。
每层分别完成一项核心功能,各层之间互相配合,实现一个去中心化的信任机制。这里小编要特别说明,这六层基础架构不是每条区块链的 标配。
基础网络层
基础网络层是区块链系统的技术支撑,分为:数据层和网络层。
数据层
数据层主要描述区块链技术的物理形式,是设计账本的数据结构。其实描述的是区块链究竟是由哪些部分组成的。首先建立一个起始节点----“创世区块”,之后在同样规则下创建的规格相同的区块依次相连组成一条主链条。每个区块中包含了许多技术,例如时间戳技术、哈希函数,用来确保每一个区块是按时间顺序相连接以及交易信息不被篡改。
区块:主要是用来记录实际需要保存的数据,这些数据通过区块包装会被永久记录到区块链上,每个区块有区块头、区块主体组成。
链式结构:区块链系统大约每10分钟会创建一个区块,其中包含了这个时间段内全网范围所发生的交易。每个区块的区块头中记录了其引用的父区块的哈希值,通过这种方式一直倒推,形成了一条交易链条。
哈希算法:是区块链保证交易信息不被篡改的单向密码机制,主要原理是将任意长度的二进制值映射为较短的固定长度的二进制值,这个较短的二进制值称为哈希值。
Merkle树:Merkle树是一种数据编码的结构,在最底层,我们把交易信息数据分成小的数据块,有相应的哈希值和它对应。目前在计算机领域,Merkle树大多用来进行比对以及验证处理。
非加密对称:是一种密钥的保密方法。此方法需要两个秘钥:私钥和公钥。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。
网络层
网络层的主要是为了实现区块链网络中节点之间的信息交流,实现记账节点的去中心化。
区块链网络本质上是一个 P2P网络(对等网络,又称点对点网络),是没有中心服务器、依靠用户群交换信息的互联网体系。每一个节点既接收信息,也产生信息。
区块链的网络中,一个节点创造新的区块后会以广播的形式通知其他节点,其他节点会对这个区块进行验证,当全区块链网络中超过51%的用户验证通过后,这个新区块就可以被添加到主链上了。
中间协议层
中间协议层是连接应用和网络的桥梁,分为共识层、激励层、合约层。
共识层
共识层负责调配记账节点的任务负载,能让高度分散的节点在去中心化的系统中高效地针对区块数据的有效性达成共识。
区块链中比较常用的共识机制主要有工作量证明、权益证明和股份授权证明三种。详情请见往期文章。
激励层
激励层是制定记账节点的“薪酬体系”,主要提供一定的激励措施,鼓励节点参与区块链的安全验证工作。我们以比特币为例,它的奖励机制有两种。一是系统奖励给那些创建新区块的矿工,刚开始每记录一个新区块,奖励矿工50个比特币,该奖励大约每四年减半; 另外一个激励的来源则是交易费,新创建区块没有系统的奖励时,矿工的收益会由系统奖励变为收取交易手续费。
合约层
合约层主要是指各种脚本代码、算法机制以及智能合约等,赋予账本可编程的特性。我们以比特币为例,比特币是一种可编程的货币,合约层封装的脚本中规定了比特币的交易方式和过程中涉及的种种细节。
应用服务层
应用服务层是获得持续发展动力所在,应用层封装了区块链的各种应用场景和案例。下面依次从可编程货币、可编程金融、可编程社会这三个角度来简单描述一下。
可编程货币:区块链1.0应用,指的是数字货币,是一种价值的数据表现形式。
可编程金融:区块链2.0应用,指区块链在泛金融领域的众多应用,人们尝试将智能合约添加到区块链系统中,形成可编程金融。
可编程社会:区块链3.0应用,可编程社会应用是指随着区块链技术的发展,其应用能够扩展到任何有需求的领域,包括审计公证、医疗、投票、物流等领域,进而到整个社会。
区块链是价值互联网的内核,能够对于每一个互联网中代表价值的信息和字节进行产权确认、计量和存储。价值互联网的核心是由区块链构造一个全球性的分布式记账系统,它不仅仅能够记录金融业的交易,而是几乎可以记录任何有价值的能以代码形式进行表达的事物。