1.1.2 区块链技术的总体架构
区块链技术的总体架构和分类
“区块链”一词最早出现在中本聪的论文《比特币:一种点对点的电子现金系统》中,其中描述了一个完全不依赖任何第三方金融系统的、点对点的电子现金系统。这篇论文被视为比特币的白皮书,也有人称之为区块链的“创世圣经”。
在这篇论文中,中本聪对比特币网络的工作原理做了以下描述。
(1)我们可以把每一台参与组成比特币系统的计算机称为节点。
(2)每个节点将新交易收集到一个区块中。
(3)节点可以创建链上的下一个区块,并使用当前区块的哈希值作为新区块的“前一个哈希”字段值。
第3句话可以这样理解:对一个区块中的数据计算哈希值,并将其指向下一个区块的头部。用这种方式可以将区块串联成一个链条,这就是所谓的区块链,其示意如图1-1所示。为了便于理解,区块中包含的数据是经过简化的。
图1-1 区块链示意
哈希算法是一种加密算法,所谓“哈希值”是指数据经过哈希算法处理的结果。哈希算法将在1.1.3小节介绍。
从整体架构的角度来看,区块链应用可以分为存储层、网络层、扩展层和应用层4个层次,具体如图1-2所示。
图1-2 区块链的架构设计
1.存储层
存储层主要实现区块链的存储功能,其中涉及数据存储(存储格式、区块大小)和加密算法等技术细节。
2.网络层
网络层实现分布式网络编程,涉及网络通信(点对点通信)协议和共识算法等技术细节。共识算法包括比特币采用的工作量证明(Proof of Work,PoW,即谁的算力大,就由谁记账)和以太坊采用的权益证明(Proof of Stake,PoS,即谁的股权多,就由谁记账)。在分布式系统中,还有一个很常用的共识算法,就是投票,其会通过节点投票达成共识。
3.扩展层
扩展层是对经典区块链技术的补充和扩展。企业级应用是区块链扩展层的一个主要的发展方向。区块链技术在发展初期,应用场景多为公有链项目,所有人都可以选择参与。正因为这样,那时候很少有企业愿意应用区块链技术。另外一个因素,就是没有专门针对企业应用的区块链项目,而公有链项目大多需要使用数字货币支付。数字货币的价值浮动太大,企业很难控制项目的成本。
以Hyperledger Fabric为代表的具有完备权限控制和安全保障的企业级区块链,可以解决企业间的信用问题。产业链上下游的各环节,都可能发生企业间的信息交互和配合,如果用传统的线下记账方式,显然是低效的。很多企业都有自己的信息系统,但是它们彼此隔离,形成了一个个的“信息孤岛”。打通这些信息孤岛的成本是巨大的,而且存在彼此之间的信用问题。联盟链由产业链中相关企业共同开发、建设,信息上链后不可随意修改,可以解决企业间的信用问题。只要对相关企业做好科普工作,就可以大大提高企业间相互配合的效率,打通一个个信息孤岛,最终形成行业大数据。
4.应用层
应用层主要负责实现区块链技术在生产、交易、流通和社会生活中的应用。目前,区块链技术大规模应用的条件还不成熟。比较经典的区块链应用包括金融交易、存证、溯源、数字资产、公益(如慈善募捐、众筹等)等。
● 金融交易:区块链技术起源于数字货币,目前应用极为广泛的领域之一是金融交易,比如各种数字货币的钱包和交易所。支付宝、微信支付等平台都推出了与区块链相关的应用。
● 存证:区块链具有时间戳和不可篡改的特性,这两个特性决定了区块链技术可以用于数据的存证。目前在电子合同和知识产权等应用中已经使用区块链技术实现存证。
● 溯源:在商品流通的过程中,其通常要经过厂家(农户)、批发商、物流、仓储、零售商等诸多环节才能最终来到消费者手中,无论哪个环节出现问题都可能影响商品的质量。基于区块链的存证功能,可以将商品在各个环节的流通信息上链存证,从而有效避免假冒伪劣的情况发生。
● 数字资产:除了数字货币,现实生活中的一切资产都可以上链存证。链上数字资产流通(确权和转让)也是区块链技术的经典应用场景。
● 公益:公益活动对公平、公正、公开的要求很高,采用区块链技术可以有效地记录、保障善款的流向和使用,因此慈善募捐和众筹也是区块链技术的经典应用场景。