来源 |《区块链商业》
责编 | Carol
出品 | 区块链大本营(blockchain_camp)
商业场景应用之下的底层技术架构,大多数人是接触不到的。但是,所有的商业应用,在区块链上获取的服务,都离不开底层技术架构的支持。
今天我们就来说说,区块链商业的技术架构,到底包含了什么。
区块链商业的技术架构解读(一)
总体来看,区块链的基础架构可以分为五层,包括网络层、共识层、数据层、智能合约层和应用层,如下图所示。每一层分别完成一项核心的功能,各层之间互相配合,从而实现了去中心化的信任机制。
区块链应用体系架构图 a
网络层的主要目的是实现区块链网络节点之间的信息交互。区块链的本质是一个点对点(P2P)网络,每一个节点既能够接收信息,也能够生产信息,节点之间通过维护一个共同的区块链来保持通信。
在区块链的网络中,每一个节点都可以创造出新的区块,新区块被创造出以后,会通过广播的形式通知其他的节点,而其他节点反过来会对这个节点进行验证。当区块链网络中超过 51% 的用户对其验证通过以后,这个新的区块就会被添加到主链上。
2.共识层
共识层能够让高度分散的节点在去中心化的系统中针对区块数据的有效性达成共识。区块链中比较常用的共识机制包括工作量证明、权益证明和股份授权证明等多种,这部分内容笔者在前面的章节已经做了详细解读。
共识机制的作用主要有两个,一个是奖励,另一个是惩罚。比特币和以太坊用的是 PoW 工作量证明机制。此机制根据算力进行奖励和惩罚,如有节点作弊,算力会受到损失。
Bitshares、Steemit、EOS 采用 DPoS 股份授权证明机制,拥有代币的人可以参与节点的投票,被大家选出来的节点参与记账,一旦作弊就会被系统投出。
其中的激励功能主要是指给予代币奖励,鼓励节点参与区块链的安全验证。例如,在比特币总量达到 2100 万枚之前,比特币的奖励机制有两种 :新区快产生后系统奖励的比特币 ;每笔交易扣除的比特币(手续费)。而当比特币的总量达到2100 万枚时,新产生的区块将不再生产比特币,此时的奖励主要是每笔交易所扣除的手续费。
3.数据层
数据层是最底层的技术,主要的功能为数据存储、账户和交易的实现与安全。数据存储主要基于 Merkle 树,通过区块的方式和链式结构实现,大多以 KV 数据库的方式实现持久化,如比特币和以太坊采用的 LevelDB。
基于数字签名、散列函数、非对称加密技术等多种密码学算法和技术,以及账户和交易的实现与安全功能,保证了交易能够在去中心化的情况下安全进行。
设计区块链系统的技术人员们首先建立的起始节点,被称作是“创世区块”,之后在同样的规则之下,创建规格相同的区块,通过一个链式结构依次相连组成一条主链。随着运行时间的增加,新的区块通过验证后,被不断添加到主链上,主链会不断延长。
每一个区块中同时也包含了许多技术,如时间戳技术,它的作用在于确保每一个区块都可以按时间的顺序相连接,比如散列函数,它是一种将任意长度的消息通过散列算法压缩到某一固定长度的消息摘要的函数,它主要用于信息安全领域中加密算法、文件检验、数字签名和鉴权协议等。
4.合约层
所谓合约层主要是指各种脚本代码、算法机制及智能合约等。智能合约是运行在区块链上的一段无须干预即可自动执行的代码,EVM 是智能合约运行的虚拟机,人类通过智能合约,无须任何中介干预即可实现资产的转移,同时也可以开发出一些有价值的去中心化应用。
以比特币为例,它是一种可编程的数字货币,合约层封装的脚本中规定了比特币的交易方式和交易过程中所涉及的各种细节。
基于智能合约还可以构建区块链应用,不需要从零学习区块链技术就可以方便地开发自己的区块链应用(DAPP)。如基于以太坊公链,开发者可以使用 Solidity语言开发智能合约,构建去中心化应用 ;基于 EOS,开发者可以使用 C++ 语言,编写自己的智能合约。
5.应用层
应用层封装了区块链的各种应用场景和案例,如基于区块链的跨境支付平台等,它也是去中心化应用 DAPP。一个完整的 DAPP 包含智能合约和 Web 系统,Web 系统通过接口调用智能合约。
本层类似于计算机中的各种软件程序,是普通人可以真正直接使用的产品,也可以理解为 B/S 架构的产品中的浏览器端(Browser)。
从目前的情况看,对于众多用户来讲,除数字货币外,还找不到现成的区块链应用。如果想让区块链技术快速走进寻常百姓,服务于大众,必须出现大量跟人们生活、娱乐工具相结合的应用。
区块链商业的技术架构解读(二)
中国信息通信研究院和可信区块链推进计划共同编写了《区块链白皮书(2018年)》,对区块链的技术体系做了总结,也提出了一套参考架构,包括基础设施、基础组件、账本、共识、智能合约、接口、应用、操作运维和系统管理 9 部分。以下内容值得深入研究。
1.基础组件层
基础组件层可以实现区块链系统网络中信息的记录、验证和传播。
在基础组件层之中,区块链是建立在传播机制、验证机制和存储机制基础上的一个分布式系统。
2.账本层
账本层负责区块链系统的信息存储,包括收集交易数据,生成数据区块,对本地数据进行合法性校验,以及将校验通过的区块添加到链上。
账本层有以下两种数据记录方式。
① 在基于资产的模型中,首先以资产为核心进行建模,然后记录资产的所有权,即所有权是资产的一个字段。
② 在基于账户的模型中,建立账户作为资产和交易的对象,资产是账户下的一个字段。
3.共识层
共识层负责综合协调以保证全网各节点数据记录的一致性。常见的共识机制可 以分为两大类。
(1) 概率性的共识机制
先写入数据,之后再达成共识,如 PoW、PoS、DPoS,大概率一致就达成共识,计算的复杂度较高。如果一次共识出现多个记账节点,就产生分叉,最终以最长链为准。节点数量可以随意改变,节点数越多,系统越稳定。
(2) 确定性的共识机制
先达成共识,之后再写入,确认一致之后再达成共识,共识即确认,网络复杂度高;它要求法定人数投票,各节点之间采用 P2P 广播沟通,没有分叉,如 PBFT、BFT 变种等;随着节点数增加,性能下降,节点数量不能随意改变。
从应用来看,为提升效率,在共识机制的使用上,需在安全性、可靠性、开放性等方面进行取舍,而且共识机制正在从单一向混合方向演进。
4.智能合约层
负责将区块链系统的业务逻辑以代码的形式实现、编译并部署,完成既定规则的条件触发和自动执行,最大限度地减少人工干预。
根据图灵完备与否,智能合约层分为以下两类。
① 图灵完备的智能合约有较强的适应性,可以对逻辑较复杂的业务操作进行编程,但有陷入死循环的可能。
② 图灵不完备的智能合约,不能进行复杂的逻辑操作,但更加简单、高效和安全。
智能合约是区块链安全风险的高发领域,在提升安全性能方面,有几种参考思维 :形式化验证、智能合约加密及规范合约语言的语法格式。
5.应用层
作为最终呈现给用户的部分,主要作用是调取智能合约层的接口,适配区块链的各类应用场景,为用户提供服务。这份白皮书将应用划成 3 种类型 :价值转移、存证及授权管理。
数字资产在不同账户之间转移。
将信息记录到区块链上,但没有资产转移。
(3) 授权管理类
利用智能合约控制数据访问,如数据共享。总结起来就是,区块是数据存储的容器,而 P2P 网络是保证区块链运行的基础协议,共识机制确保参与记账的节点在没有人干预的情况下可正常工作。应用层则让人们有了成熟的产品可以使用。
目前,一些公司搭建的区块链平台,如超级账本(Hyperledger Fabric)、R3 区块链联盟(R3CEV)、以太坊企业版等,均有独到之处。例如,以太坊经过数年的发展,应用场景已经多达 500 多个。
国内金融机构的区块链应用仍以国外的 Fabric 平台为主。不过,规模较大的参与者先后开源底层技术,这类似于当年安卓、iOS、黑莓等智能手机曾经走过的路。例如,深圳前海微众银行股份有限公司、上海万向区块链股份公司、矩阵元技术(深圳)有限公司联合宣布,开源三方共同搭建的区块链底层平台 BCOS(Block ChainOpen Source),进一步推动分布式商业生态系统的形成,区块链底层平台的格局初步显现。