区块链技术与应用综述
2021-07-19王飞
姜 鑫 王飞
(甘肃政法大学网络空间安全学院,甘肃 兰州 730070)
1 引言
早在2008年,一篇名为《比特币:一种点对点式的电子现金系统》[1]的文章引起了学界广泛的关注,化名为中本聪的学者首次在世界范围内提出了一种电子加密货币——比特币(bitcoin),比特币的基础支撑技术就是区块链技术,区块链技术被描述为一个分布式账本,具有去中心化、不可篡改和可信赖等特性。区块链技术结合了许多传统信息技术的内容,如分布式数据存储、分散且独立的点对点的事务处理,智能化的共识机制,可编程的智能合约,非对称加密技术等。在大型计算机、个人计算机、互联网、移动社交四次颠覆式计算范式后,区块链技术被认为是第五次颠覆式计算范式[2]。
2 相关概念简介
2.1 区块链的特性
2.1.1 去中心化
区块链去中心化的概念为:区块链的整个运作过程是基于整个分布式系统各个节点共同完成的,分布式节点间的信任关系是依赖于纯数学方法而不是中心机构,从而使得分布式系统成为一个去中心化的可信任的系统[3]。相较于中心化的应用,用户既是信息提供方,也是信息参与方。
2.1.2 不可篡改
区块链使用哈希值来保证区块链数据的不可篡改,区块链中每一个区块的块头都保存着上一个区块块头的哈希值,而块头中包含了存储在本区块中的所有交易,一旦其中一个交易被篡改,哈希值必定会发生改变,必须更改掉后面所有区块块头的哈希值才能保持一致,这就给篡改数据带来了海量的工作量。从区块链的整体架构来看,账本由全体节点维护,群体协作的共识过程和强关联的数据结构保证节点数据一致且基本无法被篡改,进一步使数据可验证和追溯[4]。
2.1.3 可信赖
区块链的数据交换完全依赖于数学算法,或者说依赖于每个节点的算力来组成强大的系统总体计算能力,在没有人为干预的情况下也可以防御外部攻击。参与者可以在无信任的环境中,甚至在完全匿名的情况下完成交易。区块链保护交易双方的隐私,并保证了交易双方的安全和可信度。此外,区块链上的每个节点都完整地储存了所有的交易内容,只要不超过该区块链中所有节点的51%被黑客所操纵,区块链中的数据就是可信的。
2.2 区块链类型
根据区块链的特性,我们通常把区块链分为公有链、联盟链和私有链,如表1所示。
表1 区块链分类
2.3 区块链基础架构
目前区块链基础架构划分使用最广泛的,是袁勇等人[3]提出的区块链技术的基础架构模型,整体架构由数据层、网络层、共识层、激励层、合约层和应用层组成总共六层结构。
其中,数据层封装了基础区块以及相关的非对称加密技术和哈希函数,以及时间戳等内容。网络层包括分布式组网机制、数据传播机制和数据验证机制。共识层主要封装了网络节点的各种共识算法,比如常用的PoW和PoS等算法。激励层将经济因素整合到区块链技术体系中,是区块链金融相关应用的核心部分,主要包括经济激励的发行机制和分配机制;合约层主要封装了各种脚本,算法和智能合约,用于实现区块链最基础的可编程功能;应用层封装了区块链的各种应用场景和案例。
3 区块链的关键技术
3.1 共识机制
共识机制[4]是区块链的核心内容,在中心化的网络中,由于只有一个中心节点,几乎不需要考虑共识的问题,而在分布式的系统中,节点想要达成共识来保证数据的一致性是一件比较困难的事。目前区块链中最常使用工作量证明(PoW)来保证各个账本之间数据的一致性,并防止区块链出现分叉,这也是最早比特币所使用的共识机制。共识机制的思想是通过区块链中节点间的算力竞赛来达成对数据的共识,所有节点都可以参与到“挖矿”的竞赛中,通过计算一个随机数(Nonce),以使块头的双SHA256 的哈希值小于或等于某个值,快速计算该随机数的节点将获得计费权和出块奖励。
3.2 智能合约
智能合约[5-6]可以理解为是一个可自动执行的计算机程序并被部署于区块链之中,可以根据开发者的需求对智能合约进行编程,是目前区块链相关应用开发的核心部分。曹傧等人[7]根据智能合约的定义,提出了智能合约的运行原理模型,如图1所示。
图1 智能合约运行原理[7]
基于区块链的智能合约技术可以应用于多个场景之中[8],如共享经济、物联网、金融资产处理、数字支付、多重签名合约、云计算等多个应用场景。目前的智能合约使用的是IF-THEN 的合约模式,是按一套固定的逻辑来执行的,并不能算是智能。在未来,随着人工智能技术的不断发展,IFTHEN 的合约模式将会被WHAT-IF[3]的模式取代,使得智能合约变得更加智能化,以满足未来更加复杂的需求场景。
3.3 Merkle树
拥有记账权的节点将系统中的合法交易打包进区块后,将该区块加入进区块链中,这些交易在区块中就是以Merkle树的结构来存储的,如图2所示。
图2 Merkle树中的交易哈希[9]
区块链中的Merkle树包含了根哈希值(Root Hash),以及各个分支哈希值和组成分支哈希值的单个叶子哈希值,叶子即每个单独的交易。这样的结构使得Merkle 树具有验证区块中交易数据的存在性和完整性的功能。例如,要验证图2中的交易Tx3存在性和完整性,一个没有保存整个区块链数据的节点,可以向其它存储完整数据的全节点请求从Tx3至根部的哈希值序列(即哈希节点Hash2、Hash3、Hash23、Hash01、Root Hash),通过比较哈希值来快速确定交易Tx3是否存在或被篡改。
3.4 非对称加密技术
密码学中的非对称加密[10]需要一个密钥对即公钥和私钥,其中公钥相较于私钥可以被公开,而私钥只有持有者本人知道,通过公钥是无法推算出私钥的。常见的非对称加密算法有RSA、Rabin、Elgamal、椭圆曲线密码和数字签名等,消息的发送者使用公钥或私钥对明文进行加密,将密文发送给接收方,接收方用相对应的密钥就可以解密。
4 区块链的应用
随着近几年来对区块链技术的不断探索和研究[11-13],人们开始尝试在各个传统领域中引入区块链的概念来提升数据安全和数据共享效率,其中,就包括一些比较关键的领域,如医疗、供应链、网络空间安全、能源互联网等。
4.1 区块链与医疗信息
进入21世纪以来,随着互联网的不断普及,医疗机构将所有信息转入了线上,把信息存储到本地管理系统的数据库之中,但其中心化的应用模式造成了许多问题与不便。随着区块链技术的发展,其在医疗机构中的数据安全和数据共享方面的优势逐渐显现出来。薛腾飞等人[14]提出了基于区块链技术的医疗数据共享模型,使用改进后的共识机制来实现各个医疗机构间的数据共享。梅颖[15]将区块链用于安全存储医疗记录,有利于病人对自己个人信息的控制和隐私医疗数据的安全。巫光福等人[16]在联盟链的框架内,提出了基于(p,α,k)匿名隐私算法的EHR隐私信息问题的解决方案。
4.2 区块链与供应链
将供应链中的信息放到区块链上,不仅保证了供应链中各个环节的信息不会被篡改,而且通过将供应链过程中的各个角色入链,可以显著提高信息共享效率。汪传雷等人[17]通过研究区块链与供应链物流信息资源的关系,提出了一种基于区块链的供应链物流信息生态圈模型,完善了供应链物流信息生态。朱建明等人[18]通过分析区块链的特性和结构,创造性地提出了基于区块链的B2B+B2C供应链动态多中心协同认证模型。陆尧等人[19]通过将区块链、比特币协议确定性分层钱包与多重签名技术相结合,提出了基于比特币技术的供应链管控与溯源方案,解决了传统供应链管理方案中的一些常见的问题。
4.3 区块链与网络空间安全
区块链的特性可以有效保证数据的安全性问题,篡改其中一个数据就会导致整个链条的哈希值发生变化,只要绝大多数的节点是诚实节点,就不会影响到整个系统的安全。陈烨等人[20]通过研究区块链在管理体系和物联网中的应用方法,提出了基于区块链技术的网络安全机制,有利于提升网络空间的安全性。刘宇等人[21]利用了联盟链的特性,提出了一种基于联盟区块链的体域网信息安全方案,有利于保障无线体域网传感器数据的安全和降低传感器功耗。黄克振等人[22]利用区块链的一般特性,提出了一种基于区块链的网络安全威胁情报共享模型,有效提高网络攻击防御方响应能力和防御效果。
4.4 区块链与能源互联网
和传统的中心化应用一样,能源互联网数据安全和数据共享问题存在着诸多安全性问题,而将能源互联网部署在区块链上,可以很好地避免此类问题的出现。郭佳程等人[23]通过基于侧链的三层网络协同工作链码体系和分布式能源动态调度机制,提出了一种基于区块链技术的可信分布式能源共享网络,提高了能源互联网的网络性能、隐私安全和能源调度能力。邰雪等人[24]利用区块链中的智能合约技术,提出了一种能源互联网中基于区块链的电力交易和阻塞管理方法,提高了电力交易效率和阻塞管理方法的稳定性。
4.5 区块链与其它领域
在未来,区块链与新技术和主流发展方向的结合将会是一种新趋势,比如,5G和人工智能等新技术,智慧城市[25-27]等主流发展方向。5G作为最高效的新一代无线通信技术,对于实现万物互联的社会经济体系是十分必要,区块链技术可以利用自己在数据安全方面的优势,应用于5G之中帮助解决许多安全问题,许丹丹等人[28]通过对比区块链与5G技术,探索未来5G与区块链可能的应用场景;人工智能技术是近年来的热门技术,其关键在于机器学习和深度学习算法,而这些算法都需要大量的数据集作为支持,Kim等人[29]利用区块链验证联合学习框架下的分发模型的完整性,并根据计算成本提供相应的激励,优化整体学习效果;智慧城市是指利用ICT优化公共资源利用效果、提高居民生活质量、丰富设施信息化能力的研究领域,Bao等[30]利用区块链高效认证和管理用户标识,保护车主的身份、位置、车辆信息等个人数据。
5 结束语
本文介绍了区块链的主要特性,包括去中心化、不可篡改和可信赖,以及区块链的三种类型:私有链、联盟链和公有链,把区块链系统分为了6层,整体架构由数据层、网络层、共识层、激励层、合约层和应用层组成。还介绍了区块链中的关键技术如共识机制、智能合约、Merkle 树和非对称加密技术,最后总结区块链目前的热门应用领域,介绍了区块链在几大传统领域中的应用,如医疗、供应链、网络空间安全和能源互联网,关注了区块链与最新技术和主流发展方向的结合。区块链作为目前数据安全和数据共享领域的热门技术,把区块链技术与新技术的结合,将会是未来研究的趋势。