区块链技术及其应用综述
2020-09-22付保川徐小舒吴征天
付保川, 徐小舒, 赵 升, 陆 悠, 吴征天
(苏州科技大学 电子与信息工程学院,江苏 苏州215009;苏州智慧城市研究院,江苏 苏州215009)
1 区块链技术概述
区块链技术(Blockchain Technology,BT)是利用加密链式数据块来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用智能合约来编程并操作数据,一种全新的去中心化基础架构与分布式计算范式[1]。 其突出特点是不依赖于第三方可信机构,实现无信任关系节点之间的价值通信。
1.1 区块链的定义
区块链(Blockchain)是一种由多方共同维护,使用加密技术保证信息传输和访问安全,按照时间序列存储的分布链式结构数据库[2]。 每个区块作为区块链存储的基本单位,记录着该区块形成时间段内所发生的所有交易信息。
区块链可被广义地定义为公有链与许可链两类。 公有链是最先出现的区块链,是目前应用最广泛的区块链,任意节点均可无限制地加入其中;许可链是针对私有化系统定制的区块链,分为私有链和联盟链,其节点需经过授权方可加入其中[3]。 联盟链和私有链的应用方向不同,私有链适用于某一机构内部,参与节点通常为机构中不同的人员或部门;联盟链则是由一个或多个利益共同体中的多个部门作为节点组构而成。
严格来讲,区块链并不是一项新技术,而是加密解密技术、点对点(Peer to Peer,P2P)网络、分布式存储技术等多项技术的交叉与融合,是众多加密数字货币背后的底层核心技术,因此区块链具有“无中心化”和“自信任化”的特点。
1.2 区块链技术的发展
区块链技术的发展可分为三个阶段:虚拟货币阶段、数字金融阶段、价值网络阶段。
1.2.1 虚拟货币阶段 自中本聪于2008年发表论文《比特币:一种点对点电子现金系统》[4],区块链技术正式登上历史舞台。中本聪阐释了区块链技术是构建比特币数据结构与交易信息加密传输的基础技术。该阶段又称区块链1.0 阶段,虚拟货币通过模仿、修改比特币脚本文件、发行机制进入市场,其中以比特币与莱特币[5]为发展主力。 但由于比特币协议的拓展性较差,在此阶段出现的区块链系统中,用户均无法定义新的符号,导致区块链技术应用发展受限。
1.2.2 数字金融阶段 为了突破区块链1.0 系统延展性差的限制,智能合约(Smart Contract,SC)技术应运而生,区块链发展进入2.0 阶段。 2013年12月,Buterin 正式启动以太坊(Ethereum)区块链项目[6]。 相较于比特币系统,以太坊不仅是一个分布式数据库,更像是一台面向全球的计算机,其提供了图灵完备的编程语言Solidity 和去中心化的以太坊虚拟机(Ethernet Virtual Machine,EVM), 并首次将智能合约应用于区块链[7]。2015年12月Linux 基金会发起了Hyperledger 开源区块链项目,通过创建分布式账本的公开标准,实现虚拟和数字形式的价值交换[8]。Hyperledger 最受关注的项目是Fabric。不同于以太坊,Fabric 是面向企业推出的区块链平台,引入成员管理服务[9]。 2016年2月,BigchainDB 公司发布了可扩展的区块链数据库BigchainDB[10],其本质是结合了区块链属性的分布式数据库。 2016年4月,R3 公司发布了为金融机构定制设计的分布式账本平台Corda[11]。 由于R3 公司注重保障数据仅对交易双方及监管可见的交易隐私性[12],所以Corda 的本质更像是一个去中心化数据库。 同年,英国政府发布区块链专题研究报告,这预示着政府层面开始关注区块链技术[13]。 2019年6月,美国发布《国防部数字现代化战略》,明确将探索区块链技术在网络安全领域的应用;德国积极支持区块链发展,颁布《德国区块链战略》,明确了区块链技术在稳定金融、激发创新等五大领域采取优先行动;2018年,欧盟立法机构通过《区块链:前瞻性贸易政策》决议,推动区块链在该地区自由贸易和商业领域的应用[2]。
区块链在我国的发展也备受关注。2016年10月,国内的众享比特团队发布了号称全球首个基于区块链技术的数据库应用平台ChainSQL[14]。 同时工信部发布《中国区块链技术和应用发展白皮书》,区块链技术迎来了第一个官方指导文件[15]。 2017年1月,中国人民银行推动的基于区块链的数字票据交易平台测试成功。2017年5月,由中国电子技术标准化研究院、万向控股、蚂蚁金服、微众银行、平安保险等起草的《区块链参考架构》正式发布,号称国内首个区块链标准[16]。 2018年10月,工业和信息化部信息中心发布了中国区块链产业发展报告(2018)[17],对我国区块链产业发展进行了总结与展望。 2019年10月,政府主张将区块链技术作为自主创新的重要突破口,推进区块链与经济社会的创新发展、融合发展。
1.2.3 价值网络阶段 在第二发展阶段,区块链以智能合约为技术支撑,在金融领域落地的成果较多。 随着物联网与大数据的快速发展,社会对行业间互信、数据安全、系统运行效率等方面的要求越来越高,这些需求推动着区块链进入3.0 阶段。该阶段以去中心化应用、去中心化自治组织为代表。因此,区块链网络以去中心化架构为基础、以分布式共识为价值导向,彻底改变现有网络以服务器为中心的网络格局,形成无中心化的全分布式结构,并在北京、杭州、上海、深圳等城市,进行区块链赋能智慧城市的探索实践[2],取得了良好的应用效果。
2 区块链技术体系架构及主要特点
区块链作为多种计算机技术组合而成的技术集合,具有层次化体系结构,各层职能不一,但相互支撑。其中,共识层解决陌生节点之间信任问题;合约层赋予区块链良好的延展性。 文中将针对这三个内容做简要介绍。
2.1 层次化体系结构
目前各类区块链平台所采用的体系架构大同小异,均可划分为数据层、网络层、共识层、合约层和应用层五个层次。 其体系结构如图1 所示。
图1 区块链的层次化体系结构
2.1.1 数据层 数据层包含数据结构、 数据模型以及区块存储,是区块链体系架构的基础层,是一个分布式账本[18],存储交易或账户的信息[19]。 Merkle 树基于交易数据哈希存储块内信息,决定了区块链“不可篡改”的特点。 数据区块按时间戳排列,由哈希指针连接成链式结构,决定了区块链“可追溯”的特点。
2.1.2 网络层 区块链网络层是无第三方中心机构监督的分布式网络, 基于P2P 技术实现分布式结构,基于TCP/IP 通信协议实现点对点通信。 其每一节点都担任着接受以及转发信息的角色。 而分布式网络特性决定了每个节点都拥有系统的所有信息,单个节点被攻击不会影响系统的正常运转。 这种P2P 网络既是一种技术要点也是一种思想。 P2P协议旨在去除中心化结构、分权至用户,从而实现了区块链网络去中心化的结构特性。 区块链平台通常选择完全分布式且可容忍单点故障的P2P 协议作为网络传输协议,每个节点均拥有路由发现、广播交易、广播区块、发现新节点等功能[8],决定了区块链具有“无中心化”的特点。
2.1.3 共识层 区块链网络没有中心节点的监管,网络维护的责任需要多方一起承担,这就需要一个机制来保证各节点能够达成共识。 一旦共识达成,在区块中的交易信息就正式上链生效,同时会给网络中每个节点提供备份[20]。 共识层提供共识机制(Consensus Mechanism)决定了区块链具有“自信任化”的特点,是保证区块链网络具有良好秩序的核心。
2.1.4 合约层 合约层封装了各类代码脚本及算法机制,是实现区块链可编程的关键。 其提供的按照用户需求进行编程的脚本系统,可以更好地克服比特币脚本功能单一所带来的不足[21]。智能合约可按需进行编码并部署到区块链中,由平台自动执行。 智能合约的运用标志着区块链从以比特币为代表的数字货币向社会化应用的转移。
2.1.5 应用层 应用层是区块链与应用系统进行交互的标准接口层。 它包含了区块链的各类应用场景,用户无需掌握区块链的专业知识,只需调用应用层提供的标准接口即可使用应用层所定义的各种应用[22]。
2.2 共识机制
共识机制是共识层的主要组成部分,是决定区块链“自信任化”特性的核心,因为在区块链网络中,所有节点地位相当,不存在任意层次化结构,且均以扁平化拓扑结构连接,所以在无监管的网络中,调动所有节点参与共识的达成,以及区块的验证变得极为重要[23]。与此同时,随着区块链技术的快速发展,区块链的共识已成为学术界、工业界的研究热点[24-25]。
区块链本质上是无中心化的分布式数据库。 分布式数据库主要采用Paxos[26-27]和Raft[28]等算法来解决分布式一致性问题。 然而此类算法需假设节点忠诚且需由特定的机构维护,这与区块链网络中节点之间互不了解、互不信任的特点相冲突,所以这两种算法不能用于区块链网络的共识。 区块链常用的共识机制有工作量证明(Proof of Work,PoW)、权益证明(Proof of Stake,PoS)、实用拜占庭容错算法(Practical Byzantine Fault Tolerance,PBFT)等。 其中PoW 是比特币所用的共识机制,其安全性是以牺牲性能为代价的,因为要想在此机制中伪造或修改节点的信息需要全网至少51%的算力,随着PoW 证明机制的发展,对算力资源需求的不断增长带来了高能耗问题[29-33];为弥补PoW 的不足,King 等[34]提出了PoS 共识算法,即将节点所拥有的货币量及币龄总和作为证明;此外,在区块链中采用PBFT 算法[35],能较好地解决传统拜占庭容错算法的低效率问题。 目前,非许可链多使用PoW 及PoS 共识,而带许可证明机制的联盟链使用PBFT 算法较多。 共识算法的选择与区块链类型高度相关。
2.3 智能合约
智能合约由Nick Szabo 于1997年提出,其基本思想是将合同条款(抵押品等)翻译成代码,将其嵌入可自行执行的设备(硬件或软件)中,使得合约不能被破坏或者违约的成本极其高昂,从而尽量减少参与交易各方对可信中介的依赖以避免恶意或意外情况的发生[36-37]。
不同于互联网的蓬勃发展,智能合约因缺乏可信系统的保障,导致多方信任无法建立、执行机制难以实现等问题,因此,其发展受到限制。 而区块链的分布式共识机制则为此类问题的解决提供了有效借鉴,从而为智能合约的具体实现提供了技术支撑。 从本质上讲,智能合约是由事件驱动、部署于分布式账本上的计算机程序,其原理类似于程序设计的If-Then 语句[38],其工作方式类似于数据库管理系统的存储过程[39]。 智能合约位于区块链合约层,其地址唯一,基于交易来触发执行。 智能合约一旦部署到区块链中就可以自动执行,任一方均不可更改。 正是智能合约的不可更改性,奠定了互联网乃至社会信任体系的基础。
3 区块链技术的典型应用
区块链技术特有的分布式特征,克服了集中式系统对服务器的安全依赖,使得系统从第三方统筹监管机制向分布式自治机制的过渡成为可能,它不仅有效地解决了金融领域无中心监管下各陌生节点之间的信任问题,而且奠定了向其他行业渗透发展的基础[40]。到目前为止,区块链已成功应用于医疗、微电网、智慧交通、供应链管理以及智慧城市的政务管理等多个行业[41-46]。 在此给出几类典型应用。
3.1 应用于医疗数据管理
医疗数据在业内具有较高的使用价值,适当共享有利于现代医学的发展,医疗信息因其涉及大量个人隐私,所以需要采取有效的安全措施来保障系统数据的安全。因此,如何兼顾电子医疗数据(Electronic Medical Record System,EMRs)的保护与共享一直是困扰着医疗行业信息化健康发展的难题。
Azaria 等[47]提出的基于区块链的医疗数据管理系统MedRec,实现了一种处理EMRs 的创新方法。 将EMRs 记录到一个综合日志中,通过公私钥加密技术分配访问权限给患者及医院,并允许医疗利益相关者参与网络的维护,从而提高了EMRs 的可审核性、互操作性及可访问性。 Kuo 等[48]提出的ModelChain 基于信息量共识机制(ProofofInformation,PoI),通过加入线上机器学习,进一步提高了保护EMRs 的能力。 然而,PoI 是在PoW 基础上提出的改进算法,在实现节点的共识上,所需算力巨大且对硬件要求高,不利于降低成本及能耗。 张超等[49]在此基础上创新性地提出了联盟式医疗区块链系统Medical Chain,它基于PBFT 共识机制,对算力要求小且参与的实体有政府背书,具有一定公信力,并由卫生管理部门严格监管。 因此,将区块链应用于医疗系统,不仅解决了EMRs 安全和隐私保护的问题,而且增加了数据管理的灵活性,使患者看病更便捷、隐私更安全,医学研究组织获取数据更可靠,较好地兼顾了EMRs 的保护与共享等多种需求。
3.2 应用于微电网管理
如今能源系统正朝着更分散的模式发展,各类能源与储能系统(Energy Storage System,ESS)相辅相成。这将使点对点能源传输在微电网架构中成为可能, 推动微电网管理系统 (Microgrid Management System,MMS)的集成化发展。 微电网中的电能提供商、用户可作为MMS 中节点,参与能源交易信息的打包与验证。系统中共识机制用于监督节点之间的投票活动并确保全网数据的准确一致。 智能合约用于自动完成交易信息的传输及相关操作[50]。
F.Imbault 等[51]将区块链技术应用到工业操作系统Predix 中,设计了绿色证书交易实例,模拟其他代理的行为并评估生态区的扩展潜力,在生态区内进行演示。 他们成功搭建了具有可扩展物理资产定义的私有链,能在测量设备上实现边缘计算的可扩展的框架,以及三个分别用于能源监控、环境影响、用户配置的界面,并将其集成在Predix 框架内。 2016年, 美国能源公司LO3 与区块链技术公司ConsenSys 共同开发了Tansactive Grid 项目,该项目采用点对点的直接能源交易,项目借助于以太坊平台将发电量作为依据创建代币,开发的智能合约实现了用户产电、用电及交易数据的采集与上链[52]。
随着公共和私营部门的自发电和微电网业务的发展,与能源相关的资产将更加分散,区块链技术不仅能满足微电网管理系统的分布式实现,还可以利用加密技术、数字签名等技术要点为相关资产的追溯提供保障,既提高了系统运行的鲁棒性,又降低了系统运行成本。
3.3 应用于智能交通系统
随着移动互联网、大数据和人工智能技术的快速发展,智能交通系统(Intelligent Transportation System,ITS)对人们的生活产生了深远的影响。 与此同时,ITS 趋于中心化的弊端,以及交易对象之间信任机制不成熟等问题则成为其进一步发展的制约因素。
Yong Y 等[53]对基于区块链的智能交通系统(Blockchain-based Intelligent Transportation System,B2ITS)进行研究,建立了面向智能交通领域的区块链模型,并在五层架构基础上结合智能交通系统的特点提出了激励层概念, 将经济奖励纳入区块链, 构建了并行运输管理系统 (Parallel Transportation Management System,PTMS)的安全架构体系。 B2ITS 成功实现了实时乘车共享[54],其基本原理遵循Yong Y 等[53]提出的原则。Saranti 等[55]将区块链用于自动驾驶汽车系统,建立了一个更加安全可信的公共交通系统。该系统具有灵活性高、服务面广、交易快捷安全等特点。
从该实例可以看出,区块链不仅解决了陌生节点间的信任问题,保证了节点权益,提高了交通系统的处理效率,还可以用来完善运输市场信任机制,提升市场监管能力与治理水平。 因此,区块链技术具有在应用中革新交通系统中心化趋势的潜力,可用于建立安全、可信和分散的自治交通系统,从而更好地利用传统交通系统基础设施和运输资源。
3.4 应用于供应链管理
在节能减排及互联网经济较快发展的背景下,供应链管理(Supply Chain management,SCM)作为协调企业间正常合作关系的途径,急需结合当今产业集成化特点进行更新优化,其中最需解决的是链上成员间的信任问题。
曹洋等[56]分析了当前建筑供应链内参与各方信息交流机制存在的不足,针对效率低下、第三方监管安全性差等问题,结合区块链去中心化的技术特点,设计提出了基于区块链的建筑供应链信息共享管理系统架构,有机衔接建筑供应链内多方治理机制。黄宇翔等[57]提出了一种基于区块链技术的供应链可信数据管理方案,通过将贸易规则编写为智能合约,并设计了适用于供应链系统的共识机制,为供应链的贸易数据管理提供了新思路。
在区块链技术中,时间戳、加密算法和共识算法的部署,决定了区块链具有“防篡改”、“可追溯”的特性,这恰好可以确保在供应链领域交易各方之间的公开性、透明性,在整个的交易链条上形成一个完整数据信息流,使得参与交易的各方能够及时发现供应链系统中存在的问题。
4 总结与展望
综上所述,区块链技术的快速发展及其在多个行业领域的成功应用,为区块链技术在非金融领域的应用进行了有效的探索。 在区块链体系架构中,非对称加密技术的运用能够保证数据信息的加密;数字签名技术的使用实现了数据信息的“不可伪造”、“可追溯”。 与此同时,学术界针对区块链的多种算法研究,保证了区块链系统在实际应用中的数据安全及系统稳定[58-62];进而文献[63-66]基于区块链的审计技术、自动访问控制管理协议等进行了系统化的研究,使得区块链具有数据安全的保障能力和隐私数据的控制能力,能够满足不同行业对安全性的多种需求。此外,对于交易信息依赖性较强的行业,通过部署区块链共识算法等技术途径,可以较好地解决交易效率和规范性的问题。
因此,区块链技术的成功应用将会给众多行业带来巨大变化,尤其是对于综合性强的智慧城市而言,通过引入区块链分布式账本,可以较好地解决跨部门、跨领域的数据融合,为打通智慧城市中已经存在的“信息孤岛”提供有效的途径与方法[2],因此,区块链为提升新型智慧城市建设与管理的协调能力,提供了可行的解决方案和有效的探索实践。
当然,目前区块链技术在实际应用中仍存在着不少问题,例如分布式存储结构对各物理节点的硬件要求高、区块链系统吞吐量小、交易信息处理速率低、共识机制仍存在漏洞、智能合约有被攻击的可能等。 这些问题仍制约着区块链技术在实际场景中的应用宽度,而解决此类问题的关键在于各领域要构筑良好的区块链发展环境。 因此,需要学术界在共识机制、加密技术等领域进行深入研究,不断优化区块链的系统安全和工作效率;需要区块链相关企业针对各类用户及应用场景开发出更为稳定、高效的产品;需要政府在区块链技术研发与智慧城市应用等方面积极作为,在区块链产业培育与发展、政策引导、资金支持、创新环境给予大力支持。 做好多领域协同,才能推动区块链技术及产业的健康发展。