第42卷第4期自动化学报Vol.42,No.4 2016年4月ACTA AUTOMATICA SINICA April,2016
区块链技术发展现状与展望
袁勇1,2王飞跃1,3
摘要区块链是随着比特币等数字加密货币的日益普及而逐渐兴起的一种全新的去中心化基础架构与分布式计算范式,目前已经引起政府部门、金融机构、科技企业和资本市场的高度重视与广泛关注.区块链技术具有去中心化、时序数据、集体维护、可编程和安全可信等特点,特别适合构建可编程的货币系统、金融系统乃至宏观社会系统.本文通过解构区块链的核心要素,提出了区块链系统的基础架构模型,详细阐述了区块链及与之相关的比特币的基本原理、技术、方法与应用现状,讨论了智能合约的理念、应用和意义,介绍了基于区块链的平行社会发展趋势,致力于为未来相关研究提供有益的指导与借鉴.
关键词区块链,比特币,共识机制,智能合约,平行社会
引用格式袁勇,王飞跃.区块链技术发展现状与展望.自动化学报,2016,42(4):481−494
DOI10.16383/j.aas.2016.c160158
Blockchain:The State of the Art and Future Trends
YUAN Yong1,2WANG Fei-Yue1,3
Abstract Blockchain is an emerging decentralized architecture and distributed computing paradigm underlying Bitcoin and other cryptocurrencies,and has recently attracted intensive attention from governments,financial institutions,high-tech enterprises,and the capital markets.Blockchain s key advantages include decentralization,time-series data,collective maintenance,programmability and security,and thus is particularly suitable for constructing a programmable monetary system,financial system,and even the macroscopic societal system.In this paper,we proposed a basic model of the blockchain system,discussed the principles,technologies,methods and applications of blockchain and the related Bitcoin systems.We also discussed the smart contract and its applications,and presented the future trends of blockchain-enabled paralleled societies.This paper is aimed at providing helpful guidance and reference for future research efforts.
Key words Blockchain,Bitcoin,consensus mechanism,smart contract,paralleled society
Citation Yuan Yong,Wang Fei-Yue.Blockchain:the state of the art and future trends.Acta Automatica Sinica,2016, 42(4):481−494
区块链是以比特币为代表的数字加密货币体系的核心支撑技术.区块链技术的核心优势是去中心化,能够
通过运用数据加密、时间戳、分布式共识和经济激励等手段,在节点无需互相信任的分布式系统中实现基于去中心化信用的点对点交易、协调与协作,从而为解决中心化机构普遍存在的高成本、低效率和数据存储不安全等问题提供了解决方案.随着比特币近年来的快速发展与普及,区块链技术的
收稿日期2016-02-22录用日期2016-03-02
Manuscript received February22,2016;accepted March2,2016国家自然科学基金(71472174,71102117,61533019,71232006, 61233001)资助
Supported by National Natural Science Foundation of China (71472174,71102117,61533019,71232006,61233001)
本文责任编委林宗利
Recommended by Associate Editor LIN Zong-Li
1.中国科学院自动化研究所复杂系统管理与控制国家重点实验室北京100190
2.青岛智能产业技术研究院青岛266109
3.国防科技大学军事计算实验与平行系统技术中心长沙410073
1.The State Key Laboratory of Management and Control for Complex Systems,Institute of Automation,Chinese Academy of Sciences,Beijing100190
2.Qingdao Academy of Intelli-gent Industries,Qingdao266109
开源代码查询网站3.Research Center of Mili-tary Computational Experiments and Parallel System,National University of Defense Technology,Changsha410073研究与应用也呈现出爆发式增长态势,被认为是继大型机、个人电脑、互联网、移动/社交网络之后计算范式的第五次颠覆式创新,是人类信用进化史上继血亲信用、贵金属信用、央行纸币信用之后的第四个里程碑[1].区块链技术是下一代云计算的雏形,有望像互联网一样彻底重塑人类社会活动形态,并实现从目前的信息互联网向价值互联网的转变.
区块链技术的快速发展引起了政府部门、金融机构、科技企业和资本市场的广泛关注.2016年1月,英国政府发布区块链专题研究报告[2],积极推行区块链在金融和政府事务中的应用;中国人民银行召开研讨会探讨采用区块链技术发行虚拟货币的可行性,以提高金融活动的效率、便利性和透明度.美国纳斯达克于2015年12月率先推出基于区块链技术的证券交易平台Linq,成为金融证券市场去中心化趋势的重要里程碑;德勤和安永等专业审计服务公司相继组建区块链研发团队,致力于提升其客户审计服务质量.截止到2016年初,资本市场已经相继投入10亿美元以加速区块链领域的发
482自动化学报42卷
展.初创公司R3CEV基于微软云服务平台Azure 推出的BaaS(Blockchain as a service,区块链即服务)服务,已与美国银行、花旗银行等全球40余家大型银行机构签署区块链合作项目,致力于制定银行业的区块链行业标准与协议.
区块链技术起源于2008年由化名为“中本聪”(Satoshi nakamoto)的学者在密码学邮件组发表的奠基性论文《比特币:一种点对点电子现金系统》[3],目前尚未形成行业公认的区块链定义.狭义来讲,区块链是一种按照时间顺序将数据区块以链条的方式组合成特定数据结构,并以密码学方式保证的不可篡改和不可伪造的去中心化共享总账(Decentral-ized shared ledger),能够安全存储简单的、有先后关系的、能在系统内验证的数据.广义的区块链技术则是利用加密链式区块结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用自动化脚本代码(智能合约)来编程和操作数据的一种全新的去中心化基础架构与分布式计算范式.
区块链具有去中心化、时序数据、集体维护、可编程和安全可信等特点.首先是去中心化:区块链数据的验证、记账、存储、维护和传输等过程均是基于分布式系统结构,采用纯数学方法而不是中心机构来建立分布式节点间的信任关系,从而形成去中心化的可信任的分布式系统;其次是时序数据:区块链采用带有时间戳的链式区块结构存储数据,从而为数据增加了时间维度,具有极强的可验证性和可追溯性;第三是集体维护:区块链系统采用特定的经济激励机制来保证分布式系统中所有节点均可参与数据区块的验证过程(如比特币的“挖矿”过程),并通过共识算法来选择特定的节点将新区块添加到区块链;第四是
可编程:区块链技术可提供灵活的脚本代码系统,支持用户创建高级的智能合约、货币或其他去中心化应用.例如,以太坊(Ethereum)平台即提供了图灵完备的脚本语言以供用户来构建任何可以精确定义的智能合约或交易类型[4];最后是安全可信:区块链技术采用非对称密码学原理对数据进行加密,同时借助分布式系统各节点的工作量证明等共识算法形成的强大算力来抵御外部攻击、保证区块链数据不可篡改和不可伪造,因而具有较高的安全性.
区块链技术是具有普适性的底层技术框架,可以为金融、经济、科技甚至政治等各领域带来深刻变革.按照目前区块链技术的发展脉络,区块链技术将会经历以可编程数字加密货币体系为主要特征的区块链1.0模式、以可编程金融系统为主要特征的区块链2.0模式和以可编程社会为主要特征的区块链3.0模式[1].目前,一般认为区块链技术正处于2.0模式的初期,股权众筹和P2P借贷等各类基于区块链技术的互联网金融应用相继涌现.然而,上述模式实际上是平行而非演进式发展的,区块链1.0模式的数字加密货币体系仍然远未成熟,距离其全球货币一体化的愿景实际上更远、更困难.目前,区块链领域已经呈现出明显的技术和产业创新驱动的发展态势,相关学术研究严重滞后、亟待跟进.截止到2016年2月,以万方数据知识服务平台为中文数据源、以Web of Science和EI Village为英文数据源的文献检索显示,目前篇名包含关键词“区块链/blockchain”的仅有2篇中文[5−6]和9篇英文文献[6−14].本文系统性地梳理了区块链的基本原理、核心技术、典型应用和现存问题,以期为未来研究提供有益的启发与借鉴.
本文组织结构为:第1节概述区块链与比特币的发展史及二者的关系;第2节阐述区块链的基础架构模型
及其关键技术;第3节和第4节分别概要总结了区块链技术的应用场景与现存的问题;第5节介绍智能合约及其在区块链领域的应用现状;第6节展望了区块链驱动的平行社会发展趋势;第7节总结本文内容.
1比特币与区块链概述
比特币是迄今为止最为成功的区块链应用场景.据区块链实时监控网站Blockchain.info统计显示,平均每天有约7500万美元的120000笔交易被写入比特币区块链,目前已生成超过40万个区块[15].加密货币市值统计网站coinmarketcap显示,截止到2016年2月,全球共有675种加密货币,总市值超过67亿美元,其中比特币市值约占86%,瑞波币和以太币分别居二、三位[16].目前比特币供应量(即已经挖出的比特币数量)已经超过1500万枚,按照每枚比特币389.50美元的现行价格估算其总市值已超过59亿美元,在世界各国2015年GDP 排名中占据第144位(略低于欧洲的摩尔多瓦).换言之,在没有政府和中央银行信用背书的情况下,去中心化的比特币已经依靠算法信用创造出与欧洲小国体量相当的全球性经济体.预计到2027年,全球10%的GDP将会通过区块链技术存储[17].
比特币区块链的第一个区块(称为创世区块)诞生于2009年1月4日,由创始人中本聪持有.一周后,中本聪发送了10个比特币给密码学专家哈尔芬尼,形成了比特币史上第一次交易;2010年5月,佛罗里达程序员用1万比特币购买价值为25美元的披萨优惠券,从而诞生了比特币的第一个公允汇率.此后,比特币价格快速上涨,并在2013年11月创下每枚比特币兑换1242美元的历史高值,超过同期每盎司1241.98美元的黄金价格.据CoinDesk估算,目前全球约有6万商家接受比特币交易,其中中国
4期袁勇等:区块链技术发展现状与展望483
是比特币交易增长最为迅速的国家[18].
比特币本质上是由分布式网络系统生成的,其发行过程不依赖特定的中心化机构,而是依赖于分布式网络节点共同参与一种称为工作量证明(Proof of work,PoW)的共识过程以完成比特币交易的验证与记录.PoW共识过程(俗称挖矿,每个节点称为矿工)通常是各节点贡献自己的计算资源来竞争解决一个难度可动态调整的数学问题,成功解决该数学问题的矿工将获得区块的记账权,并将当前时间段的所有比特币交易打包记入一个新的区块、按照时间顺序链接到比特币主链上.比特币系统同时会发行一定数量的比特币以奖励该矿工,并激励其他矿工继续贡献算力.比特币的流通过程依靠密码学方法保障安全.每一次比特币交易都会经过特殊算法处理和全体矿工验证后记入区块链,同时可以附带具有一定灵活性的脚本代码(智能合约)以实现可编程的自动化货币流通.由此可见,比特币和区块链系统一般具备如下五个关键要素,即公共的区块链账本、分布式的点对点网络系统、去中心化的共识算法、适度的经济激励机制以及可编程的脚本代码.
区块链技术为比特币系统解决了数字加密货币领域长期以来所必需面对的两个重要问题,即双重支付问题和拜占庭将军问题[19].双重支付问题又称为“双花”,即利用货币的数字特性两次或多次使用“同一笔钱”完成支付.传统金融和货币体系中,现金(法币)因是物理实体,能够自然地避免双重支付;其他数字形
式的货币则需要可信的第三方中心机构(如银行)来保证.区块链技术的贡献是在没有第三方机构的情况下,通过分布式节点的验证和共识机制解决了去中心化系统的双重支付问题,在信息传输的过程同时完成了价值转移.拜占庭将军问题是分布式系统交互过程普遍面临的难题,即在缺少可信任的中央节点的情况下,分布式节点如何达成共识和建立互信[20].区块链通过数字加密技术和分布式共识算法,实现了在无需信任单个节点的情况下构建一个去中心化的可信任系统.与传统中心机构(如中央银行)的信用背书机制不同的是,比特币区块链形成的是软件定义的信用,这标志着中心化的国家信用向去中心化的算法信用的根本性变革.
比特币凭借其先发优势,目前已经形成体系完备的涵盖发行、流通和金融衍生市场的生态圈与产业链(如图1所示),这也是其长期占据绝大多数数字加密货币市场份额的主要原因.比特币的开源特性吸引了大量开发者持续性地贡献其创新技术、方法和机制;比特币各网络节点(矿工)提供算力以保证比特币的稳定共识和安全性,其算力大多来自于设备商销售的专门用于PoW共识算法的专业设备(矿机).比特币网络为每个新发现的区块发行一定数量的比特币以奖励矿工,部分矿工可能会相互合作建立收益共享的矿池,以便汇集算力来提高获得比特币的概率.比特币经发行进入流通环节后,持币人可以通过特定的软件平台(如比特币钱包)向商家支付比特币来购买商品或服务,这体现了比特币的货币属性;同时由于比特币价格的涨跌机制使其完全具备金融衍生品的所有属性,因此出现了比特币交易平台以方便持币人投资或者投机比特币.在流通环节和金融市场中,每一笔比特币交易都会由比特币网络的全体矿工验证并记入区块链.
比特币是区块链技术赋能的第一个“杀手级”应用,迄今为止区块链的核心技术和人才资源仍大多在比特币研发领域.然而,区块链作为未来新一代的底层基础技术,其应用范畴势必会超越数字加密货币而延伸到金融、经济、科技和政治等其他领域
.
图1比特币生态圈
Fig.1The Bitcoin ecosystem
484自动化学报42卷
比特币的现有技术、模式和机制,将会对区块链在新应用领域的发展提供有益的借鉴,而新领域的区块链创新也势必反过来促进解决比特币系统现存的问题.因此,比特币和区块链技术存在着协同进化、和谐共生而非相互竞争的良性反馈关系.
2区块链的基础模型与关键技术
本节将结合比特币系统的技术与应用现状,阐述区块链技术的基础模型、基本原理和关键技术,以及区块链在比特币系统之外的若干创新模式.现存的其他区块链应用大多都与比特币类似,仅在某些特定的环节或多或少地采用比特币模式的变种.
区块链技术的基础架构模型如图2所示.一般说来,区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成.其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等技术;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激励层将经济因素集成到区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封
装各类脚本、算法和智能合约,是区块链可编程特性的基础;应用层则封装了区块链的各种应用场景和案例.该模型中,基于时间戳的链式区块结构、分布式节点的共识机制、基于共识算力的经济激励和灵活可编程的智能合约是区块链技术最具代表性的创新点.
2.1数据层
狭义的区块链即是去中心化系统各节点共享的数据账本.每个分布式节点都可以通过特定的哈希算法和Merkle树数据结构,将一段时间内接收到的交易数据和代码封装到一个带有时间戳的数据区块中,并链接到当前最长的主区块链上,形成最新的区块.该过程涉及区块、链式结构、哈希算法、Merkle 树和时间戳等技术要素.
数据区块:如图3所示,每个数据区块一般包含区块头(Header)和区块体(Body)两部分.区块头封装了当前版本号(Version)、前一区块地址(Prev-block)、当前区块的目标哈希值(Bits)、当前区块PoW共识过程的解随机数(Nonce)、Merkle 根(Merkle-root)以及时间戳(Timestamp)等信息[21].比特币网络可以动态调整PoW共识过程的难度值,最先到正确的解随机数Nonce并经过全体矿工验证的矿工将会获得当前区块的记账权.区块体则包括当前区块的交易数量以及经过验证的、区块创建过程中生成的所有交易记录.这些记录通过Merkle树的哈希过程生成唯一的Merkle根并记入区块头
.
图2区块链基础架构模型
Fig.2A basic framework of
blockchain
图3区块结构
Fig.3The structure of blocks
链式结构:取得记账权的矿工将当前区块链接到前一区块,形成最新的区块主链.各个区块依次环环相接,形成从创世区块到当前区块的一条最长主链,从而记录了区块链数据的完整历史,能够提供区块链数据的溯源和定位功能,任意数据都可以通过此链式结构顺藤摸瓜、追本溯源.需要说明的是,如果短时间内有两个矿工同时“挖出”两个新的区块加以链接的话,区块主链可能会出现暂时的“分叉”现象,其解决方法是约定矿工总是选择延长累计工
4期袁勇等:区块链技术发展现状与展望485
作量证明最大的区块链.因此,当主链分叉后,后续区块的矿工将通过计算和比较,将其区块链接到当前累计工作量证明最大化的备选链上,形成更长的新主链,从而解决分叉问题[19].
时间戳:区块链技术要求获得记账权的节点必须在当前数据区块头中加盖时间戳,表明区块数据的写入时间.因此,主链上各区块是按照时间顺序依次排列的.时间戳技术本身并不复杂,但其在区块链技术中的应用是具有重要意义的创新.时间戳可以作为区块数据的存在性证明(Proof of existence),有助于形成不可篡改和不可伪造的区块链数据库,从而为区块链应用于公证、知识产权注册等时间敏感的领域奠定
了基础.更为重要的是,时间戳为未来基于区块链的互联网和大数据增加了时间维度,使得通过区块数据和时间戳来重现历史成为可能.
哈希函数:区块链通常并不直接保存原始数据或交易记录,而是保存其哈希函数值,即将原始数据编码为特定长度的由数字和字母组成的字符串后记入区块链.哈希函数(也称散列函数)具有诸多优良特点,因而特别适合用于存储区块链数据.例如,通过哈希输出几乎不能反推输入值(单向性),不同长度输入的哈希过程消耗大约相同的时间(定时性)且产生固定长度的输出(定长性),即使输入仅相差一个字节也会产生显著不同的输出值(随机性)等.比特币区块链通常采用双SHA256哈希函数,即将任意长度的原始数据经过两次SHA256哈希运算后转换为长度为256位(32字节)的二进制数字来统一存储和识别.除上述特点外,SHA256算法还具有巨大的散列空间(2256)和抗碰撞(避免不同输入值产生相同哈希值)等特性,可满足比特币的任何相关标记需要而不会出现冲突.
Merkle树:Merkle树是区块链的重要数据结构,其作用是快速归纳和校验区块数据的存在性和完整性.如图3所示,Merkle树通常包含区块体的底层(交易)数据库,区块头的根哈希值(即Merkle根)以及所有沿底层区块数据到根哈希的分支.Merkle树运算过程一般是将区块体的数据进行分组哈希,并将生成的新哈希值插入到Merkle树中,如此递归直到只剩最后一个根哈希值并记为区块头的Merkle根.最常见的Merkle树是比特币采用的二叉Merkle树,其每个哈希节点总是包含两个相邻的数据块或其哈希值[22],其他变种则包括以太坊的Merkle patricia tree等[4].Merkle树有诸多优点:首先是极大地提高了区块链的运行效率和
可扩展性,使得区块头只需包含根哈希值而不必封装所有底层数据,这使得哈希运算可以高效地运行在智能手机甚至物联网设备上;其次是Merkle树可支持“简化支付验证”协议,即在不运行完整区块链网络节点的情况下,也能够对(交易)数据进行检验[3].例如,为验证图3中交易6,一个没有下载完整区块链数据的客户端可以通过向其他节点索要包括从交易6哈希值沿Merkle树上溯至区块头根哈希处的哈希序列(即哈希节点6,5,56,78,5678,1234)来快速确认交易的存在性和正确性.一般说来,在N 个交易组成的区块体中确认任一交易的算法复杂度仅为log
2
N.这将极大地降低区块链运行所需的带宽和验证时间,并使得仅保存部分相关区块链数据的轻量级客户端成为可能.
非对称加密:非对称加密是为满足安全性需求和所有权验证需求而集成到区块链中的加密技术,常见算法包括RSA、Elgamal、Rabin、D-H、ECC (即椭圆曲线加密算法)等.非对称加密通常在加密和解密过程中使用两个非对称的密码,分别称为公钥和私钥.非对称密钥对具有两个特点,首先是用其中一个密钥(公钥或私钥)加密信息后,只有另一个对应的密钥才能解开;其次是公钥可向其他人公开、私钥则保密,其他人无法通过该公钥推算出相应的私钥.非对称加密技术在区块链的应用场景主要包括信息加密、数字签名和登录认证等,其中信息加密场景主要是由信息发送者(记为A)使用接受者(记为B)的公钥对信
息加密后再发送给B,B利用自己的私钥对信息解密.比特币交易的加密即属于此场景;数字签名场景则是由发送者A采用自己的私钥加密信息后发送给B,B使用A的公钥对信息解密、从而可确保信息是由A发送的;登录认证场景则是由客户端使用私钥加密登录信息后发送给服务器,后者接收后采用该客户端的公钥解密并认证登录信息.
以比特币系统为例,其非对称加密机制如图4所示:比特币系统一般通过调用操作系统底层的随机数生成器来生成256位随机数作为私钥.比特币私钥的总量可达2256,极难通过遍历全部私钥空间来获得存有比特币的私钥,因而是密码学安全的.为便于识别,256位二进制形式的比特币私钥将通过SHA256哈希算法和Base58转换,形成50个字符长度的易识别和书写的私钥提供给用户;比特币的公钥是由私钥首先经过Secp256k1椭圆曲线算法生成65字节长度的随机数.该公钥可用于产生比特币交易时使用的地址,其生成过程为首先将公钥进行SHA256和RIPEMD160双哈希运算并生成20字节长度的摘要结果(即hash160结果),再经过SHA256哈希算法和Base58转换形成33字符长度的比特币地址[19].公钥生成过程是不可逆的,即不能通过公钥反推出私钥.比特币的公钥和私钥通常