第1章 区块链基础入门

区块链技术最初源自于中本聪(Satoshi Nakamoto)2008年提出的比特币(Bitcoin),其去中心化、开放性、信息不可篡改等特性将很可能会对金融、服务等一系列行业带来颠覆性的影响。2016年1月,中国人民银行在北京召开“数字货币”研讨会,探讨采用区块链技术发行“虚拟数字货币”的可行性[1],这一消息迅速在各大主流媒体和社区传播和热炒,于是“区块链”这个带着些神秘色彩的名词突然间成为热议的话题,接踵而来的是区块链技术在国内迅速升温,越来越多的区块链初创公司和相关研究机构小组相继成立,这带动了区块链技术高速发展,使其成为近年来最具革命性的新兴技术之一,甚至被认为是继大型机、个人电脑、互联网、移动/社交网络之后计算范式的第五次颠覆式创新,同时它还被誉为人类信用进化史上继血亲信用、贵金属信用、纸币信用之后的第四个信用里程碑[2]。

本章将对区块链技术进行全面剖析,从区块链的基础知识、发展历程、关键技术、产业现状、场景模式和主流平台等方面进行全景分析,使读者对区块链技术有一个整体而直观的认识,为区块链技术的进阶与实战打好基础。

1.1 区块链基础知识

学习一项新技术,必始于了解其基本概念。本节将从比特币讲起,引出区块链技术,然后介绍区块链技术入门所必备的基础知识,例如区块链的定义、相关基本概念和区块链的分类等。

1.1.1 从比特币到区块链

谈到区块链技术,人们往往会先联想到比特币,因为区块链技术最初是作为比特币的底层框架技术出现的。因此,我们在探究区块链技术之前,先来简单地了解一下区块链的起源——比特币。

早在20世纪80年代,人们就已经开始了“数字货币”的探索[3]。但是直到比特币出现,“数字加密货币”的想法才变成了现实[4],“数字货币”及其衍生应用才开始迅猛发展。比特币是第一个区块链应用,也是迄今为止规模最大、应用范围最广的区块链应用。在2008年11月,一个化名为中本聪的人在一篇“比特币:一种点对点的电子现金系统”论文中,描述了一种如何建立一套全新的、去中心化的点到点交易系统的方法[5],并将他在论文中提出的理念付诸实践,着手开发比特币的发行、交易和账户管理系统。2009年1月3日,比特币系统正式开始运行,比特币的第一个区块(也称“创世区块”)诞生了。不久后的2009年1月12日,中本聪通过比特币系统发送了10个比特币给密码学家哈尔•芬尼(Hal Finney),这是比特币系统自上线以来完成的第一笔交易。尽管充满了争议,但从技术角度来说,比特币是“数字货币”历史上一次了不起的创新。自2009年上线以来,它在没有任何中心机构运维参与的情况下,在全球范围内运行了8年多的时间,最大支持过单笔1.5亿美元的交易。而根据blockchain.info统计,截至2017年2月22日,平均每天有约总价值2.3亿元的28万笔交易写入比特币区块链账本中,截至2017年7月,比特币系统已累计生成超过47万个区块。专家预测,到2019年将会有500万比特币用户,这个不断增长的群体可以在在线商城中购买比特币,并把这些比特币放入他们的“数字钱包”,用来购买商品和服务[6]。

与传统货币和在比特币诞生之前的“数字货币”相比,比特币最大的不同是不依赖于任何中心化机构,而是仅仅依赖于其系统中完全透明的数学原理——加密和共识算法。这就是技术创新所带来的美好,人们不再需要为了信任某个机构而进行一系列的保护措施。这是比特币和区块链技术受到如此多关注和追捧的最主要原因。

比特币作为一种基于区块链技术创造出的“虚拟数字货币”,旨在解决之前的“数字货币”所存在的以下几个问题[7]:

 发行机构控制货币的发行以及相关政策,可以决定一切;

 以前的“数字货币”都无法做到匿名化交易;

 货币自身的价值无法得到保证;

 所持货币对于持币人来说不具备完全的安全性。

当前的银行系统作为货币的第三方机构,确实可以有代价地解决上面的几个问题,但是如果把交易范围扩大到全球范围,又有哪一所银行能确保它在全球都是可以信任的呢?于是,就有人提出是否可以设计出一套分布式的数据库系统,它在全球范围内都可访问,并完全中立、公正、安全。很多研究者都努力探索并提出了一些解决方案,但都由于种种原因未能真正被社会接纳,而比特币实现了这样的分布式账本技术。

从2014年开始,人们发现比特币的底层支撑技术区块链具有巨大的潜在应用价值,这正式引发了分布式账本(Distributed Ledger)技术的革新浪潮。随着探索者们的不断创新,区块链技术已经脱胎于比特币,在金融、贸易、物流、征信、物联网、共享经济等诸多领域崭露头角。

1.1.2 区块链定义

区块链技术本质上是一个去中心化的数据库,它是比特币的核心技术与基础架构,是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式[8]。狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改、不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式[9]。

区块链上存储的数据需由全网节点共同维护,可以在缺乏信任的节点之间有效地传递价值。相比现有的数据库技术,区块链具有以下技术特征。

1 . 块链式数据结构

区块链利用块链式数据结构来验证和存储数据,通过上文对区块链基本概念的介绍可以知道,每个区块打包记录了一段时间内发生的交易是对当前账本的一次共识,并且通过记录上一个区块的哈希值进行关联,从而形成块链式的数据结构。

2 . 分布式共识算法

区块链系统利用分布式共识算法来生成和更新数据,从技术层面杜绝了非法篡改数据的可能性,从而取代了传统应用中保证信任和交易安全的第三方中介机构,降低了为维护信用而造成的时间成本、人力成本和资源耗用。

3 . 密码学方式

区块链系统利用密码学的方式保证数据传输和访问的安全。存储在区块链上的交易信息是公开的,但账户的身份信息是高度加密的。区块链系统集成了对称加密、非对称加密及哈希算法的优点,并使用数字签名技术来保证交易的安全。

区块链系统的以上技术特征决定了其应用具有如下功能特征。

1 . 多中心

不同于传统应用的中心化数据管理,区块链网络中有多个机构进行相互监督并实时对账,从而避免了单一记账人造假的可能性,提高了数据的安全性。

2 . 自动化

区块链系统中的智能合约是可以自动化执行一些预先定义好的规则和条款的一段计算机程序代码,它大大提高了经济活动与契约的自动化程度。

3 . 可信任

存储在区块链上的交易记录和其他数据是不可篡改并且可溯源的,所以能够很好地解决各方不信任的问题,无需第三方可信中介。

1.1.3 区块链相关概念

区块链以密码学的方式维护一份不可篡改和不可伪造的分布式账本,并通过基于协商一致的规范和协议(共识机制)解决了去中心化的记账系统的一致性问题[10],其相关概念主要包括以下三个。

 交易(Transaction):区块链上每一次导致区块状态变化的操作都称为交易,每一次交易对应唯一的交易哈希值,一段时间后便会对交易进行打包。

 区块(Block):打包记录一段时间内发生的交易和状态结果,是对当前账本的一次共识。每个区块以一个相对平稳的时间间隔加入到链上,在企业级区块链平台中,共识时间可以动态设置。

 链(Chain):区块按照时间顺序串联起来,通过每个区块记录上一个区块的哈希值关联,是整个状态改变的日志记录。

图1.1展示的区块链主要结构可以帮助大家理解这些概念。

图像说明文字

区块链技术体系不是通过一个权威的中心化机构来保证交易的可信和安全,而是通过加密和分布式共识机制来解决信任和安全问题,其主要技术创新有以下4点。

1 . 分布式账本

交易是由分布式系统中的多个节点共同记录的。每一个节点都记录完整的交易记录,因此它们都可以参与监督交易合法性并验证交易的有效性。不同于传统的中心化技术方案,区块链中没有任何一个节点有权限单独记录交易,从而避免了因单一记账人或节点被控制而造假的可能性。另一方面,由于全网节点参与记录,理论上讲,除非所有的节点都被破坏,否则交易记录就不会丢失,从而保证了数据的安全性。

2 . 加密技术和授权技术

区块链技术很好地集成了当前对称加密、非对称加密和哈希算法的许多优点,并使用了数字签名技术来保证交易的安全性,其中最具代表性的是使用椭圆曲线加密算法生成用户的公私钥对和使用椭圆曲线数字签名算法来保证交易安全。打包在区块上的交易信息对于参与共识的所有节点是公开的,但是账户的身份信息是经过严格加密的。

3 . 共识机制

共识机制是区块链系统中各个节点达成一致的策略和方法。区块链的共识机制替代了传统应用中保证信任和交易安全的第三方中心机构,能够降低由于各方不信任而产生的第三方信用成本、时间成本和资本耗用。常用的共识机制主要有PoW、PoS、DPoS、Paxos、PBFT等,共识机制既是数据写入的方式,也是防止篡改的手段。

4 . 智能合约

智能合约是可以自动化执行预先定义规则的一段计算机程序代码,它自己就是一个系统参与者。它能够实现价值的存储、传递、控制和管理,为基于区块链的应用提供了创新性的解决方案[11-12]。

1.1.4 区块链分类

按照节点参与方式的不同,区块链技术可以分为:公有链(Public Blockchain)、联盟链(Consortium Blockchain)和私有链(Private Blockchain)。按照权限的不同,区块链技术可以分为:许可链(Permissioned Blockchain)和非许可链(Permissionless Blockchain)。前述的三大类区块链技术中,联盟链和私有链属于许可链,公有链属于非许可链。

1 . 公有链

公有链,顾名思义,就是公开的区块链。公有链是全公开的,所有人都可以作为网络中的一个节点,而不需要任何人给予权限或授权。在公有链中,每个节点都可以自由加入或者退出网络,参与链上数据的读写、执行交易,还可以参与网络中共识达成的过程,即决定哪个区块可以添加到主链上并记录当前的网络状态[13]。公有链是完全意义上的去中心化区块链,它借助密码学中的加密算法保证链上交易的安全。在采取共识算法达成共识时,公有链主要采取工作量证明(PoW,Proof of Work)机制或权益证明(PoS,Proof of Stake)机制等共识算法,将经济奖励和加密数字验证结合起来,来达到去中心化和全网达成共识的目的。在这些算法共识形成的过程中,每个节点都可以为共识过程做出贡献,也是我们俗称的“挖矿”,来获取与贡献成正比的经济奖励,也就是系统中发行的数字代币。

公有链通常也被称为公共链,它属于一种非许可链,不需要许可就可以自由参加退出。当前最典型的代表应用有比特币、以太坊(Ethereum)等。因其完全去中心化和面向大众的特性,公有链通常适用于“虚拟加密货币”和面向大众的一些金融服务以及电子商务等。

2 . 联盟链

联盟链不是完全去中心化的,而是一种多中心化或者部分去中心化的区块链。在区块链系统运行时,它的共识过程可能会受某些指定节点的控制。例如,在一个有15个金融机构接入的区块链系统中,每个机构都作为链上的一个节点,每确认一笔交易,都需要至少对10个节点进行确认(2/3确认),这笔交易或者这个区块才能被认可。联盟链账本上的数据与公有链的完全公开是不同的,只有联盟成员节点才可以访问,并且链上的读写权限、参与记账规则等操作也需要由联盟成员节点共同决定。由于联盟链场景中的参与者组成一个联盟, 参与共识的节点相对公有链而言会少很多,并且一般是针对某个商业场景,所以共识协议一般不采用与工作量证明类似的挖矿机制,同时也不一定需要代币作为激励机制,而是采用PBFT、RAFT这类适用于多中心化且效率较高的共识算法。同时,联盟链对交易的时间、状态、每秒交易数等与公有链有很大区别,所以它比公有链有更高的安全和性能要求。

联盟链属于一种许可链,意味着不是任何人都能自由加入网络中,而是需要一定的权限许可,才可以作为一个新的节点加入。当前联盟链典型的代表有Linux基金会支持的超级账本(Hyperledger)项目、R3区块链联盟开发的Corda,以及趣链科技推出的Hyperchain平台等。

3 . 私有链

私有链,是指整个区块链上的所有写入权限仅仅掌握在一个组织手里,而读取权限可以根据情况对外开放或者任意进行限制[14]。所以,私有链的应用场景一般是单一的企业内部总公司对分公司的管理方面,如数据库管理和审计等。相比于公有链和联盟链,私有链的价值主要体现在它可以提供一个安全、可追溯、不可篡改的平台,并且可以同时防止来自内部和外部的安全攻击。目前对于私有链确实存在着一些争议,有人认为私有链的意义不大,因为它需要依赖于第三方的区块链平台机构,所有的权限都被控制在一个节点中,已经违背了区块链技术的初衷,不能算一种区块链技术,而是已经存在的分布式账本技术。但是也有人认为私有链拥有很大的潜在价值,因为它可以给当前存在的许多问题提供一个很好的解决方案,比如企业内部规章制度的遵守、金融机构的反洗钱行为以及政府部门的预算和执行,等等。

与联盟链一样,私有链也属于一种许可链,不过它的许可权掌握在单一节点中,在有些场景中,私有链还被称为专有链。当下私有链的应用不是很多,开创者都在努力探索之中。当前已经存在的应用主要有英国币科学公司(Coin Sciences Ltd.)推出的多链(Multichain)平台,这个平台的宗旨是希望能帮助各企业快速地部署私链环境,提供良好的隐私保护和权限控制。

自诞生至今,区块链技术经历了三次大的技术演进,其典型代表平台为2009年的比特币、2013年的以太坊和2015年的Fabric和Hyperchain,其组织形态从资源消耗严重、交易性能低下、缺乏灵活控制机制的公有区块链,向高效共识、智能可编程、可保护隐私的联盟区块链转变。当前,Hyperchian平台的TPS(每秒事务处理量)已达到千甚至万量级,可以满足大部分商业场景的需要。将来,随着技术的进一步发展,基于联盟链的区块链商业应用将成为区块链应用的主要形态。

1.2 区块链发展历程

比特币所实现的基于零信任基础、真正去中心化的分布式系统,其实是解决一个30多年前由Leslie Lamport等人提出的拜占庭将军问题。区块链技术从诞生至今,其发展历程大致可以分为4个阶段:技术起源、区块链1.0、区块链2.0和区块链3.0,如图1.2所示。

图像说明文字

1.2.1 技术起源

区块链技术源于中本聪创造的比特币。比特币是中本聪站在巨人的肩膀上,基于前人的各种相关技术和算法,结合自己独特的创造性思维而设计出来的。下面简要介绍区块链相关基础技术的发展历史[15]。

1982年,Leslie Lamport等人提出拜占庭将军问题(Byzantine Generals Problem)[16],这是一个非常著名的、分布式计算领域的问题,旨在设法建立具有容错性的分布式系统,即在一个存在故障节点和错误信息的分布式系统中保证正常节点达到共识,保持信息传递的一致性。

1985年,Neal Koblitz和Victor Miller两人提出椭圆曲线密码学(Elliptic Curve Cryptography,ECC)[17-18],第一次将椭圆曲线用于密码学中,建立公开金钥加密演算法。相较于之前的RSA演算法,采用ECC的好处在于可用较短的金钥达到与RSA相同的安全强度。

1990年,David Chaum根据之前提出的密码学网络支付系统理念,实现了一个不可追踪密码学网络支付系统,称为eCash[19]。不过,这是一个中心化的系统,但区块链技术在隐私安全上借鉴了其很多设计。

1990年,Leslie Lamport针对自己在1982年提出的拜占庭将军问题,给出了一个解决方案——Paxos算法[20],Paxos共识算法能在分布式系统中达成高容错性的全网一致性。

1991年,Stuart Haber与W. Scott Stornetta提出了时间戳技术来确保电子文件安全[21],中本聪在比特币中也采用了这一技术,对账本中的交易进行追本溯源。

1992年,Scott Vanstone等人基于ECC提出了性能更好的椭圆曲线数字签名算法(Elliptic Curve Digital Signature Algorithm,ECDSA)[22]。

1997年,Adam Back发明了Hashcash,一种工作量证明算法[23],此演算法仰赖成本函数的不可逆特性,具有容易被验证但很难被破解的特性,最早被应用于阻挡垃圾邮件。其算法设计理念被中本聪改进之后,Hashcash成为比特币区块链节点达成共识的核心技术之一,是比特币的基石。

1998年,Wei Dai发表了匿名的分布式电子现金系统B-money[24],引入了工作量证明机制,强调点对点交易和不可篡改特性。不过在B-money中,并未采用Adam Back提出的Hashcash演算法。Wei Dai的许多设计也被比特币区块链所采用。

2005年,Hal Finney提出可重复使用的工作量证明机制(Reusable Proofs of Work,RPOW)[25],结合B-money与Adam Back提出的Hashcash演算法来创造密码学“货币”。

2008年,中本聪在一个隐秘的密码学讨论组发表了一篇关于比特币的论文,发明了比特币[5]。

从上述技术发展历史来看,区块链技术并不是一蹴而就的,而是一定背景和技术发展下的必然产物。关于区块链的核心技术,后续章节会进行系统性的详细介绍。

1.2.2 区块链1.0——“数字货币”

在区块链1.0阶段,区块链技术的应用范围主要集中在“数字货币”领域。在2009年比特币上线之后,由于比特币区块链解决了“双花问题”和“拜占庭将军问题”,真正扫清了“数字货币”流通的主要障碍,因而获得了极大的追捧,狗狗币、莱特币之类的“山寨”“数字货币”也开始大量涌现。这些“数字货币”在技术上与比特币十分类似,其架构一般都可分为三层:区块链层、协议层和货币层。区块链层作为这些“数字货币”系统的底层技术,是最核心部分,系统的共识过程、消息传递等核心功能都是通过区块链达成的。协议层则主要为系统提供一些软件服务、制定规则,等等。最后的货币层则主要是作为价值表示,用来在用户之间传递价值,相当于一种货币单位。

在区块链1.0阶段,基于区块链技术构建了很多去中心化数字支付系统,很好地解决了货币和支付手段的去中心化问题,对传统的金融体系有着一定的冲击。

1.2.3 区块链2.0——智能合约

在比特币和其他山寨币的资源消耗严重、无法处理复杂逻辑等弊端逐渐暴露后,业界逐渐将关注点转移到了比特币的底层支撑技术区块链上,产生了运行在区块链上的模块化、可重用、自动执行脚本,即智能合约。这大大拓展了区块链的应用范围,区块链由此进入2.0阶段。业界慢慢地认识到区块链技术潜藏的巨大价值。区块链技术开始脱离“数字货币”领域的创新,其应用范围延伸到金融交易、证券清算结算、身份认证等商业领域。涌现了很多新的应用场景,如金融交易、智能资产、档案登记、司法认证,等等。

以太坊是这一阶段的代表性平台,它是一个区块链基础开发平台,提供了图灵完备的智能合约系统。通过以太坊,用户可以自己编写智能合约,构建去中心化的DAPP。基于以太坊智能合约图灵完备的性质,开发者可以编程任何去中心化应用,例如投票、域名、金融交易、众筹、知识产权、智能财产,等等。目前在以太坊平台运行着很多去中心化应用,按照其白皮书说明,它们可以分为三种应用。第一种是金融应用,包括“数字货币”、金融衍生品、对冲合约、储蓄钱包、遗嘱这些涉及金融交易和价值传递的应用。第二种是半金融应用,它们涉及金钱的参与,但有很大一部分是非金钱的方面。第三种则是非金融应用,如在线投票和去中心化自治组织这类不涉及金钱的应用。

在区块链2.0阶段,以智能合约为主导,越来越多的金融机构、初创公司和研究团体加入了区块链技术的探索队列,推动了区块链技术的迅猛发展。

1.2.4 区块链3.0——超越货币、经济和市场

随着区块链技术的不断发展,区块链技术的低成本信用创造、分布式结构和公开透明等特性的价值逐渐受到全社会的关注,在物联网、医疗、供应链管理、社会公益等各行各业中不断有新应用出现。区块链技术的发展进入到了区块链3.0阶段[11]。在这一阶段,区块链的潜在作用并不仅仅体现在货币、经济和市场方面,更延伸到了政治、人道主义、社交和科学领域,区块链技术方面的能力已经可以让特殊的团体来处理现实中的问题。而随着区块链的继续发展,我们可以大胆构想,区块链技术或许将广泛而深刻地改变人们的生活方式,并重构整个社会,重铸信用价值。或许将来当区块链技术发展到一定程度时,整个社会中的每一个人都可作为一个节点,连接到一个全球性的去中心化网络中,整个社会进入区块链时代,然后通过区块链技术来分配社会资源,或许区块链将成为一个促进社会经济发展的理想框架。

1.3 区块链关键技术

通过对区块链基础知识和发展历程的介绍,相信读者已经对区块链有了一个较为直观的认识,本节将更进一步,深入介绍区块链的系统架构和关键技术。

1.3.1 基础模型

图1.3所示是区块链的基本架构,该图的绘制参考了《区块链技术发展现状与展望》[2]和工信部《中国区块链技术和应用发展白皮书(2016)》[9] 中的区块链架构图。区块链基本架构可以分为数据层、网络层、共识层、激励层、合约层和应用层:

 数据层封装了区块链的链式结构、区块数据以及非对称加密等区块链核心技术;

 网络层提供点对点的数据通信传播以及验证机制;

 共识层主要是网络节点间达成共识的各种共识算法;

 激励层将经济因素引入到区块链技术体系之中,主要包括经济因素的发行机制和分配机制;

 合约层展示了区块链系统的可编程性,封装了各类脚本、智能合约和算法;

 应用层则封装了区块链技术的应用场景和案例。

在该架构中,基于时间戳的链式结构、分布式节点间的共识机制和可编程的智能合约是区块链技术最具代表性的创新点。一般可以在合约层编写智能合约或者进行脚本编程,来构建基于区块链的去中心化应用。下面将对本架构中每一层所涉及的技术展开具体介绍。

图像说明文字

1.3.2 数据层

数据层是区块链的核心部分,区块链本质上是一种数据库技术和分布式共享账本,是由包含交易信息的区块从后向前有序连接起来的一种数据结构。该层涉及的技术主要包括:区块结构、Merkle树、非对称加密、时间戳、数字签名和哈希函数。时间戳和哈希函数相对比较简单,这里重点介绍一下区块结构、Merkle树、非对称加密和数字签名。

1 . 区块结构

每个区块一般都由区块头和区块体两部分组成。如图1.4所示,区块头部分包含了父区块哈希值、时间戳、Merkle根等信息,而区块体部分则包含着此区块中所有的交易信息。除此之外,每一个区块还对应着两个值来识别区块:区块头哈希值和区块高度。

图像说明文字

每一个区块都会有一个区块头哈希值,这是一个通过SHA256算法对区块头进行二次哈希计算而得到的32字节的数字指纹。例如,比特币的第一个区块的头哈希值为000000000019d6689c085 ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f。区块头哈希值可以唯一标识一个区块链上的区块,并且任何节点通过对区块头进行简单的哈希计算都可以得到该区块头的哈希值。区块头哈希也包含在区块的整体数据结构中,但是区块头的数据和区块体的数据并不一定一起存储,为了检索效率起见,在实现中可以将二者分开存储。

除了通过头哈希值来识别区块,还可以通过区块高度来对区块进行识别。例如高度为0和前面000000000019d6689c085ae165831e934ff763ae46a2a6c172b3f1b60a8ce26f所索引的区块都是第一个区块。但是与头哈希值不同的是,区块高度并不能唯一地标识一个区块。由于区块链存在着分叉情况,所以可能存在2个或以上区块的区块高度是一样的。

谈完了头哈希值和区块高度,下面介绍区块头的构造。以比特币为例,区块头是80字节,其详细结构如表1.1所示[7]。

图像说明文字

区块头由三组元数据组成,一组是引用父区块的哈希值数据,用于同前一区块进行相连。第二组即难度值、时间戳和随机数,这些都与挖矿竞争相关。第三组是Merkle根,是区块体中Merkle树的根节点。

2 . Merkle树

前面介绍了区块头哈希值、区块高度和区块头的结构,接着来看看区块体。区块体存储着交易信息,在区块中它们是以一棵Merkle树的数据结构进行存储的,而Merkle树是一种用来有效地总结区块中所有交易的数据结构。Merkle树是一棵哈希二叉树,树的每个叶子节点都是一笔交易的哈希值。同样以比特币为例,在比特币网络中,Merkle树被用来归纳一个区块中的所有交易,同时生成整个交易集合的数字指纹即Merkle树根,且提供了一种校验区块是否存在某交易的高效途径。生成一棵Merkle树需要递归地对每两个哈希节点进行哈希得到一个新的哈希值,并将新的哈希值存入Merkle树中,直到两两结合最终只有一个哈希值时,这个哈希值就是这一区块所有交易的Merkle根,存储到上面介绍的区块头结构中。

下面通过一个实例来对Merkle树进行进一步的介绍。图1.5是一棵只有4笔交易的Merkle树,即交易A、B、C和D。

图像说明文字

第一步,需要使用两次SHA256算法对每笔交易数据进行哈希运算,得到每笔交易的哈希值,这里可以得到HA、HB、HC、HD这4个哈希值,也就是这棵Merkle树的叶子节点。例如,

HA = SHA256(SHA256(交易A))

第二步,对两个叶子节点HA、HB的哈希值同样使用两次SHA256进行组合哈希运算,将会得到一个新的哈希值HAB,对HC、HD进行同样的操作将获得另一个哈希值HCD。例如,

HAB = SHA256(SHA256(HA+HB))

第三步,对现有的两个哈希值HAB、HCD进行第二步中的组合运算,最后将得到一个新的哈希值HABCD,此时我们已经没有了其他同高度节点,所以最后的HABCD就是这一棵Merkle树的Merkle根。之后将这个节点的32字节哈希值写入到区块头部Merkle根字段中。Merkle树的整个形成过程结束。

HABCD = SHA256(SHA256(HAB+HCD))

因为Merkle树是一棵二叉树,所以它需要偶数个叶子节点,也就是偶数笔交易。但是在很多情况下,某个区块的交易数目会出现奇数笔。对于这种情况,Merkle树的解决方案是将最后一笔交易进行一次复制,以此构造成偶数个叶子节点,这种偶数个叶子节点的二叉树也称为平衡树。

图1.6展示的是一棵更大的Merkle树,由16个交易构成。通过图示,可以发现,不管一个区块中有一笔交易还是十万笔交易,最终都能归纳成一个32字节的哈希值作为Merkle树的根节点。

图像说明文字

当需要证明交易列表中的某笔交易存在时,一个节点只需计算log2N个32字节的哈希值,就可以形成一条从Merkle树根到特定交易的路径,Merkle树的效率如表1.2所示[7]。

图像说明文字

图像说明文字

3 . 非对称加密与数字签名

非对称加密是区块链技术中用于安全性需求和所有权认证时采用的加密技术,常见的非对称加密算法有RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)和ECDSA(椭圆曲线数字签名算法),等等[9-26]。与对称加密算法不同的是,非对称加密算法需要两个密钥:公开密钥(public key)和私有密钥(private key)。基于非对称加密算法可使通信双方在不安全的媒体上交换信息,安全地达成信息的一致。公开密钥是对外公开的,而私有密钥是保密的,其他人不能通过公钥推算出对应的私钥。每一个公开密钥都有其相对应的私有密钥,如果我们使用公开密钥对信息进行了加密,那么则必须有对应的私有密钥才能对加密后的信息进行解密;而如果是用私有密钥加密信息,则只有对应的公开密钥才可以进行解密。在区块链中,非对称加密主要用于信息加密、数字签名等场景。

在信息加密场景中,如图1.7所示,信息发送者A需要发送一个信息给信息接收者B,需要先使用B的公钥对信息进行加密,B收到后,使用自己的私钥就可以对这一信息进行解密,而其他人没有私钥,是没办法对这个加密信息进行解密的。

图像说明文字

而在数字签名场景中,如图1.8所示,发送者A先用哈希函数对原文生成一个摘要(Digest),然后使用私钥对摘要进行加密,生成数字签名(Signature),之后将数字签名与原文一起发送给接收者B;B收到信息后使用A的公钥对数字签名进行解密得到摘要,由此确保信息是A发出的,然后再对收到的原文使用哈希函数产生摘要,并与解密得到的摘要进行对比,如果相同,则说明收到的信息在传输过程中没有被修改过。

图像说明文字

1.3.3 网络层

网络层是区块链平台信息传输的基础,通过P2P的组网方式、特定的信息传播协议和数据验证机制,使得区块链网络中的每个节点都可以平等地参与共识与记账。下面将详细介绍区块链平台网络层中的P2P网络架构、信息传输机制和数据验证机制。

1 . P2P网络架构

区块链网络架构一般采用的是基于互联网的P2P(peer-to-peer)架构,在P2P网络中,每台计算机每个节点都是对等的,它们共同为全网提供服务。而且,没有任何中心化的服务端,每台主机都可以作为服务端响应请求,也可以作为客户端使用其他节点所提供的服务。P2P通信不需要从其他实体或CA获取地址验证,因此有效地消除了篡改的可能性和第三方欺骗[27]。所以P2P网络是去中心化和开放的,这也正符合区块链技术的理念。

在区块链网络中,所有的节点地位均等且以扁平式拓扑结构相互连通和交互,每个节点都需要承担网络路由、验证区块数据、传播区块数据等功能。在比特币网络中,存在着两类节点,一类是全节点,它保存着区块链上所有的完整数据信息,并需要实时地参与区块链数据的校验和记录来更新区块链主链。另一类是轻节点,它只保存着区块链中的部分信息,通过简易支付验证(SPV)方式向其他相邻的节点请求数据以便完成数据的验证[2]。

2 . 传输机制

在新的区块数据生成后,生成该数据的节点会将其广播到全网的其他节点以供验证。目前的区块链底层平台一般都会根据自身的实际应用需求,在比特币传输机制的基础上重新设计或者改进出新的传输机制,如以太坊区块链集成了所谓的“幽灵协议”,以解决因区块数据确认速度快而导致的高区块作废率和随之而来的安全性风险[28]。这里我们以中本聪设计的比特币系统为例,列出其传输协议的步骤如下[5]:

(1) 比特币交易节点将新生成的交易数据向全网所有节点进行广播;

(2) 每个节点都将收集到的交易数据存储到一个区块中;

(3) 每个节点基于自身算力在区块中找到一个具有足够难度的工作量证明;

(4) 当节点找到区块的工作量证明后,就向全网所有节点广播此区块;

(5) 只有包含在区块中的所有交易都有效且之前未存在过,其他节点才认同该区块的有效性;

(6) 其他节点接收该数据区块,并在该区块的末尾制造新的区块以延长链,而将被接收的区块的随机哈希值视为新区块的前序区块哈希值。

如果交易的相关节点是一个未与其他节点相连接的新节点,比特币系统通常会将一组长期稳定运行的“种子节点”推荐给新节点以建立连接,或者推荐至少一个节点连接新节点。此外,进行广播的交易数据并不需要全部节点都接收到,只要有足够多的节点做出响应,交易数据便可整合到区块链账本中。而未接收到完整交易数据的节点可以向临近节点请求下载缺失的交易数据[7]。

3 . 验证机制

在区块链网络中,所有的节点都会时刻监听网络中广播的交易数据和新产生的区块。在接收到相邻节点发来的数据后,会首先验证该数据的有效性,若数据有效则按接收顺序为新数据建立存储池来暂存这些数据,并且继续向临近节点转发;若数据无效则立即废弃该数据,从而保证无效数据不会在区块链网络中继续传播。验证有效性的方法是根据预定义好的标准,从数据结构、语法规范性、输入输出和数字签名等各方面进行校验。对于新区块的校验同理,某节点产生出新区块后,其他节点按照预定义的标准对新区块的工作量证明、时间戳等方面进行校验,若确认有效,则将该区块链接到主区块链上,并开始争取下一个区块的记账权。

1.3.4 共识层

Leslie Lamport于1982年提出著名的拜占庭将军问题,引发了无数研究者探索解决方案。如何在分布式系统中高效地达成共识是分布式计算领域的一个重要研究课题。区块链的共识层的作用就是在不同的应用场景下通过使用不同的共识算法,在决策权高度分散的去中心化系统中使得各个节点高效地达成共识。

最初,比特币区块链选用了一种依赖节点算力的工作量证明共识(Proof of Work,PoW)机制来保证比特币网络分布式记账的一致性。之后随着区块链技术的不断演进和改进,研究者陆续提出了一些不过度依赖算力而能达到全网一致的算法,比如权益证明共识(Proof of Stake,PoS)机制、授权股份证明共识(Delegated Proof of Stake,DPoS)机制、实用拜占庭容错(Practical Byzantine Fault Tolerance,PBFT)算法,等等。下面我们对这几种共识算法进行简单介绍[29]。

1 . PoW(工作量证明机制)

PoW机制诞生于1997年 Adam Back 设计的Hashcash系统,它最初被创造出来用于预防邮件系统中漫天遍地的垃圾邮件[11]。2009年,中本聪将PoW机制运用于比特币区块链网络中,作为达成全网一致性的共识机制。从严格意义上讲,比特币中所采用的是一种可重复使用的Hashcash工作证明,使得生成工作证明量可以是一个概率意义上的随机过程[29]。在该机制中,网络上的每一个节点都在使用SHA256哈希算法运算一个不断变化的区块头的哈希值。共识要求算出的值必须等于或者小于某个给定的值[30]。在分布式网络中,所有的参与者都需要使用不同的随机数来持续计算该哈希值,直到达到目标为止。当一个节点得出了确切的值,其他所有的节点必须相互确认该值的正确性。之后,新区块中的交易将被验证以防欺诈。然后,用于计算的交易信息的集合会被确认为认证结果,用区块链中的新区块表示。在比特币中,运算哈希值的节点被称作“矿工”,而PoW的过程被称为“挖矿”。由于认证的计算是一个耗时的过程,所以也提出了相应的激励机制(例如向矿工授予一小部分比特币)。总的来说,工作量证明就是对于工作量的证明,每个区块加入到链上,必须得到网络参与者的同意验证,矿工对它完成了相对应的工作量。PoW的优点是完全的去中心化和分布式账簿。缺点也很明显,即消耗资源:挖矿行为造成了大量的资源浪费,同时PoW达成共识的周期也比较长,比特币网络会自动调整目标值来确保区块生成过程大约需要10分钟,因此它不是很适合商业运用。

2 . PoS(股权证明机制)

PoS的想法源于尼克•萨博(Nick Szabo),是PoW的一种节能替代选择,它不需要用户在不受限制的空间中找到一个随机数,而是要求人们证明货币数量的所有权,因为其相信拥有货币数量多的人攻击网络的可能性更低。由于基于账户余额的选择是非常不公平的,因为单一最富有的人势必在网络中占主导地位,所以提出了许多解决方案,结合股权来决定谁来创建下一个块。其中,Blackcoin使用随机选择来预测下一个创建者,而Peercoin则倾向于基于币龄来选择。Peercoin首次开创性地实现了真正的股权证明,它采用工作量证明机制发行新币,采用股权证明机制维护网络安全,这也是“虚拟货币”历史上的一次创举。同比特币网络要求证明人执行一定量的工作不同,该机制只需要证明人提供一定数量“数字货币”的所有权即可。在股权证明机制中,每当创建一个区块时,矿工需要创建一个称为“币权”的交易,这个交易会按照一定的比例预先将一些币发给矿工。然后股权证明机制根据每个节点持有代币的比例和时间,依据算法等比例地降低节点的挖矿难度,以加快节点寻找随机数的速度,缩短达成共识所需的时间[31]。与PoW相比,PoS可以节省更多的能源,更有效率。但是,由于挖矿成本接近于零,因此可能会遭受攻击。且PoS在本质上仍然需要网络中的节点进行挖矿运算,所以它同样难以应用于商业领域。

3 . DPoS(股份授权证明机制)

DPoS由比特股(Bitshares)项目组发明[32]。股权拥有者选举他们的代表来进行区块的生成和验证。DPoS类似于现代企业董事会制度,比特股系统将代币持有者称为股东,由股东投票选出101名代表,然后由这些代表负责生成和验证区块。持币者若想成为一名代表,需先用自己的公钥去区块链注册,获得一个长度为32位的特有身份标识符,股东可以对这个标识符以交易的形式进行投票,得票数前101位被选为代表。代表们轮流产生区块,收益(交易手续费)平分。如果有的代表不老实生产区块,很容易被其他代表和股东发现,他将立即被踢出“董事会”,空缺位置由票数排名102的代表自动填补。DPoS的优点在于大幅减少了参与区块验证和记账的节点数量,从而缩短了共识验证所需要的时间,大幅提高了交易效率。从某种角度来说,DPoS可以理解为多中心系统,兼具去中心化和中心化优势。

4 . PBFT(实用拜占庭容错算法)

这个算法最初出现在MIT的Miguel和Barbara Liskov的学术论文中[33],初衷是为一个低延迟存储系统所设计,降低算法的复杂度,该算法可以应用于吞吐量不大但需要处理大量事件的数字资产平台。它允许每个节点发布公钥,任何通过节点的消息都由节点签名,以验证其格式。验证过程分为三个阶段:预备、准备、落实。如果已经收到超过1/3不同节点的批准,服务操作将是有效的。使用PBFT,区块链网络N个节点中可以包含f个拜占庭恶意节点,其中f =(N-1)/ 3。 换句话说,PBFT确保至少2 f + 1个节点在将信息添加到分布式共享账簿之前达到共识。目前,HyperLedger联盟、中国ChinaLedger 联盟等诸多区块链联盟都在研究和验证这个算法的实际部署和应用。

1.3.5 激励层

激励层作为将经济因素引入区块链技术的一个层次,其存在的必要性取决于建立在区块链技术上的具体应用需求。这里以比特币系统为例,对其激励层进行介绍。

在比特币系统中,大量的节点算力资源通过共识过程得以汇聚,从而实现区块链账本的数据验证和记账工作,因而其本质上是一种共识节点间的任务众包过程[2]。在去中心化系统中,共识节点本身是自利的,其参与数据验证和记账工作的根本目的是最大化自身收益。所以,必须设计合理的激励机制,使得共识节点最大化自身收益的个体行为与区块链系统的安全性和有效性相契合,从而使大规模的节点对区块链历史形成稳定的共识。

比特币采用PoW共识机制,在该共识中其经济激励由两部分组成:一是新发行的比特币;二是交易流通过程中的手续费。两者组合在一起,奖励给PoW共识过程中成功计算出符合要求的随机数并生成新区块的节点。因此,只有当各节点达成共识,共同合作来构建和维护区块链历史记录及其系统的有效性,当作奖励的比特币才会有价值。

1 . 发行机制

在比特币系统中,新区块产生发行比特币的数量是随着时间阶梯型递减的。从创世区块起,每个新区块将发行50个比特币奖励给该区块的记账者,此后每隔约4年(21万个区块),每个新区块发行的比特币数量减少一半,以此类推,一直到比特币的数量稳定在上限2100万为止[7]。前文提到过,给记账者的另一部分奖励是比特币交易过程中产生的手续费,目前默认的手续费是1/10000个比特币。两部分费用会被封装在新区块的第一个交易(称为Coinbase交易)中。虽然现在每个新区块的总手续费与新发行的比特币相比要少得多,但随着时间推移,未来比特币的发行数量会越来越少,甚至停止发行,到那时手续费便会成为共识节点记账的主要动力。此外,手续费还可以起到保障安全性的作用,防止大量微额交易对比特币系统发起“粉尘攻击”。

2 . 分配机制

随着比特币挖矿生态圈的成熟,“矿池”出现在人们的视野中。大量的小算力节点通过加入矿池而联合起来,相互合作汇集算力来提高获得记账权的概率,并共享生成新区块得到的新发行比特币和交易手续费奖励。据Bitcoinminning.com统计,目前已经存在13种不同的分配机制[34]。现今主流矿池通常采用PPLNS(Pay Per Last N Shares)、PPS(Pay Per Share)和PROP(PRO Portionately)等机制。在矿池中,根据各个节点贡献的算力,按比例划分为不同的股份。PPLNS机制在产生新的区块后,各合作节点根据其在最后N个股份内贡献的实际股份比例来分配奖励;PPS则直接根据股份比例为各节点估算和支付一个固定的理论收益,采用此方式的矿池将会适度收取手续费来弥补其为各个节点承担的收益不确定性风险;PROP机制则根据节点贡献的股份按比例地分配奖励[2]。

1.3.6 合约层

合约层封装了各类脚本、算法和智能合约,是区块链可编程性的体现。比特币本身就具有简单脚本的编写功能,而以太坊极大地强化了编程语言协议,理论上可以编写实现任何功能的应用[28]。如果把比特币看成是全球账本的话,以太坊可以看作一台“全球计算机”,任何人都可以上传和执行任意的应用程序,并且程序的有效执行能得到保证。如果说数据、网络和共识三个层次作为区块链底层“虚拟机”,分别承担数据表示、数据传播和数据验证功能,合约层则是建立在区块链虚拟机之上的商业逻辑和算法,是实现区块链系统灵活编程和操作数据的基础。包括比特币在内的“数字加密货币”大多采用非图灵完备的简单脚本代码来编程控制交易过程,这也是智能合约的雏形。随着技术的发展,目前已经出现以太坊等图灵完备的可实现更为复杂和灵活的智能合约的脚本语言,使得区块链能够支持宏观金融和社会系统的诸多应用。

智能合约的概念可以追溯到1995年,是由学者尼克•萨博提出[35]并进行如下定义的:“一个智能合约是一套以数字形式定义的承诺,包括合约参与方可以在上面执行这些承诺的协议。”其设计初衷是希望通过将智能合约内置到物理实体来创造各种灵活可控的智能资产。但由于计算手段的落后和应用场景的缺失,智能合约在当时并未受到研究者的广泛关注[2]。

区块链技术的出现对智能合约进行了新的定义并使其成为了可能。智能合约作为区块链技术的关键特性之一,是运行在区块链上的模块化、可重用、自动执行的脚本,能够实现数据处理、价值转移、资产管理等一系列功能。合约部署的时候被虚拟机编译成操作码存储在区块链上,对应地会有一个存储地址。当预定的条件发生时,就会发送一笔交易(transaction)到该合约地址,全网节点都会执行合约脚本编译生成的操作码,最后将执行结果写入区块链[28,36-37]。作为一种嵌入式程序化合约,智能合约可以内置在任何区块链数据、交易或资产中,形成可由程序自行控制的系统、市场或资产。智能合约不仅为金融行业提供了创新性的解决方案,同时也能在社会系统中的信息、资产、合同、监管等事务管理中发挥重要作用。

基于区块链技术的智能合约不仅可以发挥智能合约在成本效率方面的优势,还可以避免恶意行为对合约正常执行的干扰。智能合约可以应用到任何一种数据驱动的业务逻辑中,以太坊首先看到了区块链和智能合约的契合,发布了白皮书《以太坊:下一代智能合约和去中心化应用平台》[28],构建了内置有图灵完备编程语言的公有区块链,使得任何人都能够创建合约和去中心化应用。

智能合约与区块链的结合,丰富了区块链本身的价值内涵,其特性有以下3点[38-39]:

 用程序逻辑中的丰富合约规则表达能力实现了不信任方之间的公平交换,避免了恶意方中断协议等可能性;

 最小化交易方之间的交互,避免了计划外的监控和跟踪的可能性;

 丰富了交易与外界状态的交互,比如可信数据源提供的股票信息、天气预报等。

1.4 区块链产业现状

新技术的发展离不开市场和产业的推动,对于区块链技术的学习,仅仅了解其技术原理是不够的,还需知晓当前相关产业的发展情况。本节将从区块链技术的发展态势、政府对区块链技术的发展规划以及区块链产业生态图谱这3个维度,对区块链产业的发展现状进行分析介绍。

1.4.1 区块链发展态势

据统计,截止到2017年底,全球已有20多个国家开始投资发展区块链技术,并且有将近80%的银行表示会启动区块链项目,有90多个中央银行加入了区块链讨论,以及90多个公司加入了区块链联盟,与区块链技术相关的风险投资累计超过了20亿美元,并且产生了3000多个区块链相关专利[40]。

在“数字货币”方面,截至2017年6月28日,共有928个“数字加密货币”,其中722个有市值统计,总市值超过了一千亿美元。其中,比特币市值423.36亿美元,占比39.89%;以太币市值301亿美元,占比28.36%;瑞波币市值106亿美元,占比10%。前三大“数字加密货币”合计占比78.25%,第4~10名合计占比8.81%,第11~50名合计占比9.54%,其余672个币种仅占3.40%。这些数据表明区块链技术在“数字加密货币”领域充分展现了它的价值[41]。

ICO(Initial Coin Offering)是与“数字货币”密切相关的概念,是基于“数字货币”的项目初期资金筹措方式,早期参与ICO众筹的人员可以获得初始产生的“数字货币”作为回报。最早的ICO项目可追溯到2013年7月的Mastercoin项目,该项目通过比特币进行ICO众筹,生成对应的Mastercoin代币并分发给众筹参与者。知名的以太坊项目的初始研发资金也是通过ICO的方式筹得的。然而,因为不易监管,ICO融资方式极易被投机者利用。特别是2017年以来,国内ICO融资项目数量迅速爆发,2017年1至4月上线8个ICO项目,5月上线9个,6月上线了27个,导致ICO充斥着投机行为和泡沫,监管层给予了高度关注,9月4日,央行、银监会等七部门发布通告,宣布任何组织和个人不得非法从事代币发行融资活动。随后,主要“数字货币”均应声迅速下跌。ICO的狂热从侧面反映了区块链产业受关注的程度,但想借助区块链热度进行短期投机炒作甚至诈骗的行为注定不能长久,只有踏踏实实地进行区块链技术创新,才能迎来真正的技术爆发期。

下面来看看大数据平台所展示的一些与区块链技术相关的信息。据统计,在谷歌趋势中,区块链技术按区域显示的搜索热度排行中,印度排名第一,然后依次是澳大利亚、印度尼西亚、加拿大、英国和美国。这个排名与国家人口数量有关,但也与国家对区块链技术的关注度有很大的关系。谷歌趋势目前并没有中国的数据,因此暂时不清楚中国和其他国家对于区块链技术的搜索热度对比。但为了探究区块链在中国的热度以及趋势情况,通过与谷歌趋势类似的百度指数平台进行分析,发现在国内区块链的热度从2015年8月开始,一直呈上升趋势,这或许与2015年10月首届全球区块链峰会的召开和宣传有关,之后更多的人接触和关注区块链这一新技术。到2016年1月,中国央行召开研讨会,讨论采用区块链技术发行“数字货币”的可能性,推动区块链的百度指数继续显著提升。直至2016年6月,由于全球闻名的、也是当时最大的众筹项目DAO被黑客攻击而被迫采用通过硬分叉的措施解决这一事件带来的损失,导致区块链的价值和安全性受到了大众质疑,相对应的百度指数出现了明显下滑。而到2016年8月,工信部发布区块链发展白皮书,肯定了区块链技术的价值,指数又开始再次反弹,并稳步提升。2017年,随着全球区块链金融(杭州)峰会、工信部首届中国区块链开发大赛等大型区块链活动的举办,区块链的热度持续攀升。

通过以上一系列数据分析,可以发现,在短短的两三年时间内,区块链这一新兴技术发展得如此之快,态势如此之猛烈。这不禁让人联想到了前些年的互联网,互联网实现了信息传播和分享,而区块链技术宣告了互联网从传递信息的信息互联网向转移价值的价值互联网的进化。

1.4.2 区块链政府规划

随着区块链技术的不断发展,各国对区块链的认知程度逐渐提高,政府相关部门纷纷对区块链技术予以关注、探讨和推动,并推出相应发展规划,如图1.9所示。

图像说明文字

首先,来看一下国际组织对区块链技术的关注情况。2016年初联合国社会发展部发布了一篇题为《“加密货币”以及区块链技术在建立稳定金融体系中的作用》的报告,提出了应用区块链技术构建一个稳定的金融体系的想法,并认可了区块链技术在金融领域的价值和发展潜力。后来,国际基金组织也针对“数字货币”发布了题为《关于“加密货币”的探讨》的分析报告,对使用区块链技术构建“数字加密货币”的未来进行了具体详细的分析[42]。

在美洲地区,多个国家政府都表明了对区块链技术的支持态度。比如2015年11月10日,美国司法部举行了“数字货币”峰会,意在探讨区块链技术在“数字货币”应用的可能性。之后,美国证券交易所同意批准了在区块链上进行公司股票的交易,美国商品期货交易委员会在关注区块链技术的同时,将比特币视为大宗商品来进行监管监督,对区块链技术给予认可。2016年7月29日,22名美国参议员致函美联储要求对区块链技术发展进行指导,2016年9月12日,美国众议院通过了一项要求支持区块链技术的无约束力的决议[43]。2016年9月28日,美联储主席耶伦向外透露美联储正致力于对区块链技术进行深入研究探讨[40]。

在欧洲地区,各国对区块链技术的态度总体上都比较积极。早在2013年8月,德国就第一个宣布承认比特币的合法地位,并将其纳入监管体系。同时德国政府还表示,比特币可以作为私人货币和货币单位[41]。2014年11月,英国财政部官员发表声明说“数字货币”以及“数字货币”交易不受国家监管,但2015年3月,英国财政部发布“数字货币”相关报告,提出将商议“数字货币”的监管模式并制定出一个“最佳的”监管框架[42]。2016年年初,英国政府发布了一份有关分布式账本技术的研究报告,第一次从国家层面上对区块链技术的未来与发展进行了探讨、分析和建议。而俄罗斯央行在2016年上半年发布的一项研究计划中表示,他们将对区块链技术在金融领域的应用进行探索研究,这与其对比特币的态度有着比较大的差距[9]。2017年,俄罗斯央行发布的信息显示他们已成立了一个专门研究前沿科技及金融市场创新技术的工作小组,对分布式账本、区块链技术及多种金融科技领域的新成果展开调查和研究。欧洲中央银行也开始探索如何将区块链技术应用于证券和支付结算系统中。

在亚太地区,澳大利亚中央银行对区块链技术的态度表现得非常积极,他们表态支持银行对分布式账本技术进行探索,提议全面发布“数字货币”澳元,充分利用区块链技术的优势来革新传统的金融系统。新加坡总理呼吁银行和监管机构密切关注区块链等新技术的发展,不断改进自身技术,创新商业模式,提高服务水平。2015年11月16日,日本经济产业省召开了一个Fintech会议,讨论金融科技的发展与应用,其中还专门对区块链技术的发展和未来进行了具体的分析讨论。2016年2月3日,韩国央行发布了一篇题为《分布式账本技术和“数字货币”的现状和启示》的分析报告,对区块链技术和“数字货币”的现状以及分布式账本技术进行了积极研究和探讨[42]。

最后来看看我国政府部门对区块链技术的推动情况。2016年2月,中国人民银行行长周小川在谈到“数字货币”相关问题时就曾提及,区块链技术是一项推出“数字货币”可选的技术,并提到人民银行部署了重要力量研究探讨区块链应用技术[44]。他认为,目前区块链还存在着比较多的问题,比如区块链技术需要巨大的计算资源以及存储资源,同时区块产生的时间太长,还没办法应对金融交易的规模。2016年9月9日,中国人民银行副行长范一飞在2015年度银行科技发展奖评审领导小组会议中提出,各机构应主动探索系统架构转型,积极研究建立灵活、可延展性强、安全可控的分布式系统架构,同时应加强对区块链等新兴技术的持续关注,不断创新服务和产品,提升普惠金融水平。2016年年底,国务院将区块链技术纳入“十三五”国家信息化规划[45],对于国内区块链技术来说是一个巨大的推进。2017年1月,央行推动的基于区块链的数字票据交易平台已测试成功。此举说明中国央行紧跟金融科技的国际前沿趋势,力求把握对金融科技应用的前瞻性和控制力、探索实践前沿金融服务的决心和努力。

1.4.3 区块链生态图谱

区块链技术是具有普适性的底层技术框架,可以为金融、经济、科技甚至政治等各领域带来深刻变革[2]。区块链在发展的初期阶段,即区块链1.0阶段,主要作为“数字货币”(比特币)体系的技术支撑,只实现单一的支付功能,所以在这个阶段,区块链的应用和基础平台是紧密耦合的。但随着以以太坊为首的新一代区块链平台的出现,区块链进入了2.0阶段,在这个阶段,区块链应用和基础平台开始解耦。以以太坊为例,其提供了更加完善的区块链基础协议以及图灵完备的智能合约语言,使我们可以在其平台上开发各种各样的去中心化应用。甚至可以将以太坊类比为一个全新的互联网TCP/IP协议,依赖这个协议及其提供的各种API接口,帮助开发者开发去中心化应用或将原有的一些互联网应用移植再造到一个去中心化的网络中。于是,整个区块链产业链开始衍生出了各个不同的生态层次[46]。

区块链产业链的参与者可分为4个层次:应用层、中间服务层、基础平台层和辅助平台层[43]。其中,应用层主要为最终用户(个人、企业、政府)服务,开发者基于不同的用户需求开发不同的去中心化应用来为不同的行业服务;中间服务层主要帮助客户对各种基于区块链底层技术的应用进行二次开发,为其使用区块链技术改造业务流程提供便捷的工具和协议;基础平台层主要聚焦于区块链的基础协议和底层架构,为整个社会的区块链生态发展提供技术支持;辅助平台层并不是区块链产业链的主要参与者,但其同样是区块链产业发展非常重要的外部辅助力量,包括基金、媒体和社区等。

总的来说,区块链的应用可以分为两类。

第一类,基于区块链分布式记账的特点开发的应用,包括身份验证、权益证明、资产鉴证等。

第二类,利用区块链的去中心化体系开发的各种去中心化应用,从技术的可行性角度来看,目前所有涉及价值传递的行业皆可通过区块链技术进行底层重构。

图1.10是当前区块链产业的生态图谱,展示了部分公司和机构在各自领域应用区块链技术的情况。总的来说,整个区块链产业包括底层平台、上层应用、技术研究、媒体及社区、投资等生态领域。在区块链底层平台领域,以以太坊、Fabric、Hyperchain为代表的开发平台对区块链底层技术进行革新,为基于区块链的去中心化应用提供底层技术支撑。在上层应用领域,开发者在各行各业展开了应用场景探索,如以Ripple、Circle公司为代表的金融服务领域,以Factom公司为代表的公证防伪领域,以Skuchain公司为代表的供应链领域,等等。除此之外,各地也开始成立区块链联盟或区块链实验室专门研究区块链相关技术,各大金融公司也开始参与区块链项目的投资,更有网络媒体及社区对区块链技术的相关信息进行报道与讨论。

图像说明文字

虽然区块链技术被认为是一种未来具有广泛应用前景的新技术,但近年来由于在“数字货币”领域信息难以监管,“数字货币”平台一度成为了恶意炒作人员快速非法获利的渠道。2017年9月,国家先后明令禁止了ICO融资和“虚拟货币”交易,有效地遏制了相关非法炒作行为,保障了区块链产业的健康发展。

1.5 区块链应用场景

当前,区块链技术已经在诸多领域展现了应用前景,许多机构和组织都对区块链技术产生了浓厚的兴趣,正在为区块链在本领域的落地进行积极的探索,本节将对当前区块链的主要应用场景进行分析和介绍。

1.5.1 数字票据

传统的纸质票据存在着易丢失、易伪造和被篡改等风险。通过引入区块链技术,可以将票据信息、状态记录在区块链平台。一笔票据交易一旦生成,区块链上的各节点首先对交易进行验证,一旦各节点达成“共识”,便把该条交易记录于区块链上,且“不可篡改”。区块链内存在多个副本,增加了内容被恶意篡改的成本,因此相对于传统票据,具有更高的安全性。另外,传统的票据行业,各个机构之间的对账与清算相对比较复杂,而区块链技术通过各个节点共同记账、相互验证的方式,可有效地提高资金清算的效率。同时,各个机构也保持了相对独立的业务自主性,从而实现了效率与灵活的完美平衡。由于参与方存在互信问题,传统的票据流通审核繁琐,变现困难,难以实现互通互利。通过将票据信息登记在区块链平台上,利用区块链扩展成本低、交易步骤简化的特性,将票据转变为客户可持有、可流通、可拆分、可变现的具有一定标准化程度的数字资产。

1.5.2 供应链金融

传统的供应链金融平台一般由单个金融机构主导,难以实现同业间的扩展和推广。区块链技术让参与方只需专注于业务系统对接区块链平台即可,可实现全行业的快速覆盖。供应链上企业之间的贸易信息、授信融资信息,以及贸易过程中涉及的仓储、物流信息均登记在区块链上,且信息不可篡改,保证了资产的真实有效,降低了企业融资成本和银行授信成本。跨机构信息通过区块链的共识机制和分布式账本保持同步,通过访问任意一个节点即可获取完整的交易数据,打破信息孤岛。机构通过访问内部区块链节点即可获得完整的交易数据,增强企业间的信用协作。通过将应收账款、承兑汇票、仓单等资产凭证记录在区块链上,并支持转让、质押等相关操作,实现了资产数字化,并通过区块链构造了一个数字化的、可以点对点传输价值的信用系统,实现了区块链上的价值传输。这一可信赖的价值传输系统既提高了需求方的融资能力,又提高了供应方的监管能力,为金融系统健康稳定提供了根本保障。通过智能合约控制供应链流程,减少人为交互,提升产业效率。无需中心平台审核确认,通过传感器探测真实仓储、物流信息,使用无线通信网络发送可信数据到区块链验证节点,保证满足合约条件时,自动触发相关操作,减少操作失误。

1.5.3 应收账款

传统的应收账款通过线下交易确认的方式完成,而伪造交易、篡改应收账款信息等风险的存在降低了交易参与方的信任感。将应收账款的全流程操作通过区块链平台进行,实现了应收账款交易的全程签名认证并且不可抵赖,同时使用智能合约实现权限和状态控制,使得应收账款更加安全可控,构建了高度可信的交易平台。应收账款交易流程中参与方众多,业务复杂,面对传统应收账款的融资申请,金融机构需要进行大量的贸易背景审查。区块链平台通过时间戳来记录整个应收账款的生命周期,从而使得所有的市场参与者都可以看到资金流和信息流,排除了票据造假的可能性。传统的应收账款由于存在互信问题,在交易市场上流通困难。应收账款以数字资产的方式进行存储、交易,不易丢失和无法篡改的特点使得新的业务模式可以快速推广,在提高客户资金管理效率的同时降低使用成本,并在不同企业间形成互信机制,使得多个金融生态圈可以通过区块链平台互通互利,具有良好的业务价值和广阔的发展空间。

1.5.4 数据交易

数据作为特殊商品具有独特性,存在被复制、转存的风险,按照商品流通中介模式建立的数据中介平台构成了对数据交易双方权益的潜在威胁,变成了数据交易的一个障碍。只有建立符合数据特性的信息平台,通过技术机制而不是仅凭承诺来保障数据的安全和权益,做到让数据交易双方真正放心,才能加速数据的顺畅流动。通过区块链技术对数据进行确权,能够有效保障数据所有方的权益,杜绝数据被多次复制转卖的风险,把数据变成受保护的虚拟资产,对每笔交易和数据进行确权和记录。利用区块链的可追溯和不可篡改等特性,可以确保数据交易的合规、有效,激发数据交易的积极性,促成数据市场的规模性增长。

1.5.5 债券交易

债券业务是需要多家机构共同参与的一项业务,在其发行、交易等流程中,各机构之间需要通过传统的邮寄或者报文转发的形式进行信息的同步与确认。债券发行交易如果通过中心化系统实现,可能会存在人工操作性失误或恶意篡改的风险。使用区块链技术之后,系统可以由区块链底层来保证数据的同步与一致,降低不同机构系统之间对接的时间、人力和资金成本,从依靠基于业务流的低效协同升级为不依靠任何中介而由平台保证基本业务流程的低成本、高效率、高可信协作系统。而且传统的中心化系统很多信息都封闭在机构内部,无法对外部系统进行及时、有效的监管,监管会存在盲区。利用区块链技术,监管机构以节点的形式加入区块链,实时监控区块链上的交易。同时,智能合约使得债券在整个生命周期中具备限制性和可控制性,也可以有效提高监管效能。由于区块链的数据完整和不可篡改性,对任何价值交换历史记录都可以追踪和查询,能够清晰查看和控制债券的流转过程,从而保证债券交易的安全性、有效性和真实性,有效防范市场风险。同时,基于区块链技术可避免第三方机构对账清算的工作,从而有效提升债券交易的清算效率。

1.5.6 大宗交易

基于区块链技术的大宗交易平台,可以实现各清算行之间大宗交易的实时清算,提高大宗交易效率,为业务开展提供便利。智能合约控制大宗交易流程,减少人为交互,提升处理效率。无需中心平台审核确认,保证报价满足撮合条件时,自动触发相关操作,减少操作失误。交易所和清算所可以互为主备,负责所有交易数据定序广播,发起共识。实时灾备容错,发生重大故障可以秒级切换主节点。接入节点发生故障,通过内置算法快速恢复历史数据,避免交易数据丢失。会员和银行接入端独立处理查询,数据实时同步,减轻主节点压力。监管节点实时获取相关交易数据,监管机构对大宗交易进行实时监管。

1.5.7 其他场景

区块链是一种可以进行价值传输的协议,除了上述场景之外,还可应用于其他一切与价值转移有关的场景,如数字版权、公证、身份认证、社会公益,等等。

在消费金融领域,阳光保险公司用区块链技术作为底层技术架构推出了“阳光贝”积分,用户在享受普通积分功能的基础上,还能以“发红包”的形式将积分向朋友转赠,并可与其他公司发行的积分进行互换[51]。

在数字版权领域,知识产权侵权现象严重,基于区块链技术可以通过时间戳、哈希算法对作品进行确权,证明知识产权的存在性、真实性和唯一性,并可对作品的全生命周期进行追溯,极大地降低了维权成本[52]。

在医疗领域,患者私密信息泄露情况时有发生,2015年4月,Factom宣称与医疗记录和服务方案供应商Healthnautica展开合作,研究运用区块链技术保护医疗记录以及追踪账目,为医疗记录公司提供防篡改数据管理[53]。

在教育领域,目前学生信用体系不完整,无历史数据信息链,这导致政府和用人企业无法获得完整、有效的信息,利用区块链技术对学生的学历信息进行存储,可以解决信息不透明及容易被篡改的问题,有利于构建良性的学生信用体系[54]。

在社会公益领域,慈善机构想要获得群众的支持,就必须具有公信力,而信息的透明则是必要条件之一,蚂蚁金服等公司已开始把区块链技术应用于公益捐赠平台,这为加速公益透明化提供了一种可能[55]。区块链技术也可用于政府信息公开领域,帮助政府部门实施公共治理及服务创新,提升政府部门的效率及效力[56]。

关于区块链的应用场景还有很多,区块链的未来存在着无限的可能,这需要更多优秀的公司、企业和人才加入到区块链技术的探索队伍中,这样才能使区块链技术得到更快、更好的发展。人们有理由期待在区块链技术的范式下,又一次“大航海时代”的来临,将给各行各业和社会带来一次重构。

1.6 区块链主流平台

本节将对当前主流的区块链平台进行简介和对比分析。

比特币(Bitcoin)是第一个区块链应用,使用工作量证明机制来达成网络节点的共识,由于比特币网络任何人都可以加入,没有访问权限,因此它是一个公有链,不支持智能合约,但是可以支持一些图灵不完备的编程脚本来进行一些简单的操作编程。其公网TPS小于7。

以太坊(Ethereum)是一个图灵完备的区块链一站式开发平台,采用多种编程语言实现协议,采用Go语言写的客户端作为默认客户端(即与以太坊网络交互的方法支持其他多种语言的客户端)。基于以太坊平台之上的应用是智能合约,这是以太坊的核心。智能合约配合友好的界面,外加一些额外的小支持,可以让用户基于合约搭建各种各样的DApp应用,这样使得开发人员开发区块链应用的门槛大大降低。目前以太坊正在正式运行1.0版本,使用PoW共识机制,公网TPS约为100。

Hyperledger Fabric是Linux基金会成立的Hyperledger联盟所推出的一个孵化中的项目,目前正在构建标准化的数字账本[57],它旨在使用区块链技术帮助新创公司、政府和企业联盟之间减少工作的花费和提高效率。因此,它不是面向公众的,而是服务于公司、企业、组织等联盟团体,属于联盟链。平台设计所使用的是Go语言,共识算法则是PBFT算法。同样,它也是支持智能合约编程的,在Fabric中有自己的学名,叫Chaincode。另外,Chaincode仅在验证节点上执行,且运行在被隔离的沙盒中,目前采用Docker作为执行Chaincode的容器[58]。Fabric的公网TPS约为3000。

比特股(BitShares)是一个点对点的多态数字资产交易系统,是DPoS共识机制的鼻祖。它提供的BitUSD等锚定资产是虚拟币历史上最重要的变革之一,能够极大地消除“虚拟货币”被人诟病的波动性大的问题。此外,比特股内置了强大的账户权限设定、灵活的多重签名方式、白名单等特性,足以满足企业级的功能定制需求[59]。比特股区块链是一个公有链,其核心技术框架采用C++语言进行开发,公网TPS大于500。

公证通(Factom)利用比特币的区块链技术来革新商业社会和政府部门的数据管理和数据记录方式[60]。利用区块链技术帮助各种应用程序的开发,包括审计系统、医疗信息记录、供应链管理、投票系统、财产契据、法律应用、金融系统等。建立在公证通基础之上的应用程序寻求能够直接利用区块链实现追踪资产和实现合约,而不用将交易记录写入区块链,公证通在自己的架构中记录条目。公证通中的政策和奖励机制与PoS机制有相似之处。与其不同之处在于,公证通中只有一小部分的用户权益能够被认可。只有已经提交到系统的权益有投票权,而可转移的Factoid权益没有投票权,避免了PoS机制的“股份磨损”和“没有人进行PoS”的问题[59]。公证通的核心技术框架采用Go语言开发,TPS为27左右。

瑞波(Ripple)是世界上第一个开放的支付网络,它引入了一个共识机制RPCA,通过特殊节点的投票,在很短的时间内就能够对交易进行验证和确认[61]。瑞波客户端不需要下载区块链,它在普通节点上舍弃掉已经验证过的总账本链,只保留最近的已验证总账本和一个指向历史总账本的链接,因而同步和下载总账本的工作量很小[59]。瑞波核心技术框架采用C++语言进行开发,公网TPS小于1000。

未来币(Nextcoin,NXT)是第二代去中心化“虚拟货币”,它使用全新的代码编写,不是比特币的山寨币。它第一个采用100%的股权证明PoS算法,有资产交易、任意消息、去中心化域名、账户租赁等多种功能,部分实现了透明锻造功能。透明锻造机制使得每一个用户客户端可以自动决定哪个服务器节点能够产生下一个区块,让客户端可以直接将交易发送到这个节点,从而使得交易的时间达到最短。实时和高优先级的交易可以通过支付额外的费用来被优先处理[59]。未来币的核心技术框架所采用的开发语言是Java,TPS小于1000。

Hyperchain是杭州趣链科技开发的一个满足行业需求的联盟区块链技术基础平台,通过整合并改进区块链开源社区和研究领域的最前沿技术,集成了高性能的可靠共识算法RBFT,兼容开源社区的智能合约开发语言和执行环境,同时在记账授权机制和交易数据加密等关键特性上进行了强化,并且提供了功能强大的可视化Web管理控制台对区块链节点、账簿、交易和智能合约等进行高效管理[62]。Hyperchain与Fabric一样采用了模块化设计理念,分为共识算法、权限管理、多级加密、智能合约引擎、节点管理、区块池、账本存储、数据存储8个核心模块,旨在服务于票据、存单、股权、债券、登记、供应链管理等数字化资产、金融资产商业应用,并且其系统吞吐量可达到每秒处理上万笔交易,这在当前的区块链平台中是首屈一指的。

表1.3中列出了各个平台所使用的共识机制、所属区块链类型、平台开发所采用的语言、是否支持智能合约以及每秒事务处理量(TPS)性能指标,以供读者进行更直观的统计和对比。

图像说明文字

从上面的平台介绍和对比中可以看出,当前区块链平台使用的共识算法各有不同,对于不同的应用场景,相应的共识机制有各自的优点和不足。平台类型主要是公有链和联盟链这两种,私有链应用较少。平台设计所使用的编程语言主要是Go和C++,因为区块链网络所处环境是一个分布式网络,需要高并发和高效率的操作执行。是否支持智能合约与每个平台所面向的场景和所提供的服务有关,比如以太坊、Hyperledger Fabric、Hyperchain等作为底层平台,一般都需要提供智能合约功能,而对于某些应用平台,智能合约则不一定是必需的。区块链平台的性能则随着区块链技术的发展在不断地提升,在某些应用场合已基本满足商业应用的要求,其中Hyperchain平台的TPS已达到了10000,在区块链性能方面具有显著优势。

1.7 本章小结

本章对区块链技术进行了全景分析,介绍了区块链的基础知识和发展历程,对其关键技术和特性进行了详细的讲解,并结合时代背景分析了区块链的产业现状,选取了一些典型的应用场景进行阐述,最后对当前的区块链主流平台进行了介绍与对比,使读者对区块链技术有一个初步的了解和认识,为之后的进阶和实战打下基础。

参考文献

[1] 林晓轩. 区块链技术在金融业的应用[J]. 中国金融, 2016(8): 17-18.

[2] 袁勇, 王飞跃.区块链技术发展现状与展望[J]. 自动化学报, 2016(4):481-494.

[3] Grinberg R. Bitcoin: An Innovative Alternative Digital Currency[J]. Social Science Electronic Publishing, 2011.

[4] 端宏斌. 比特币悖论[J]. 中国经济和信息化, 2013(11): 27-28.

[5] Nakamoto, Satoshi. Bitcoin: A peer-to-peer electronic cash system. 2008: 28.

[6] Irni E K, Corina S, Sarah C, et al. Exploring Motivations among Bitcoin Users[J]. CHI Confernece Extended Abstracts on Human Factors in Computing Systems. 2016(5): 2872.

[7] Antonopoulos, Andreas M. Mastering Bitcoin: unlocking digital cryptocurrencies(精通比特币). O’Reilly Media, Inc, 2014.

[8] 区块链+:无中介驱动的世界[EB/OL].http://36kr. com/p/5053134. Html, 2016.

[9] 工信部-中国区块链技术和应用发展白皮书(2016) [EB/OL]. https://img2. btc123. com/file/0/chinabolck- chaindevwhitepage2016. pdf, 2016.

[10] Raval, Siraj. Decentralized Applications: Harnessing Bitcoin’s Blockchain Technology. O’Reilly Media, Inc. pp. 1, 2. ISBN 1491924527. Retrieved 6 November 2016.

[11] Swan, Melanie. Blockchain: Blueprint for a new economy. (区块链:新经济蓝图)O’Reilly Media, Inc. , 2015.

[12] Pilkington M. Blockchain technology: principles and applications[J]. Research Handbook on Digital Transformations, edited by F. Xavier Olleros and Majlinda Zhegu. Edward Elgar, 2016.

[13] Wikipedia, 区块链, [EB/OL]. https://zh. wikipedia. org/zh-hans/区块链, 2017.

[14] Croman K, Decker C, Eyal I, et al. On scaling decentralized blockchains[C]//Proc. 3rd Workshop on Bitcoin and Blockchain Research. 2016.

[15] 区块链技术演进史 [EB/OL]. http://tech. hexun. com/2016-04-25/183507891. html, 2016.

[16] Lamport L, Shostak R E, Pease M C, et al. The Byzantine Generals Problem[J]. ACM Transactions on Programming Languages and Systems, 1982, 4(3): 382-401.

[17] Koblitz N. Elliptic curve cryptosystems[J]. Mathematics of Computation, 1987, 48(177): 203-209.

[18] Miller V S. Use of Elliptic Curves in Cryptography[C]. International cryptology conference, 1985: 417-426.

[19] Chaum D, Fiat A, Naor M, et al. Untraceable electronic cash[C]. International cryptology conference, 1990: 319-327.

[20] Lamport L. A theorem on atomicity in distributed algorithms[J]. 1990, 4(2):59-68.

[21] Haber S, Stornetta W S. How to time-stamp a digital document[J]. Journal of Cryptology, 1991, 3(2): 99-111.

[22] Johnson D H, Menezes A, Vanstone S A, et al. The Elliptic Curve Digital Signature Algorithm (ECDSA)[J]. International Journal of Information Security, 2001, 1(1): 36-63.

[23] Back A. Hashcash-A Denial of Service Counter-Measure[C]// USENIX Technical Conference. 2002.

[24] Dai, Wei. B-money[EB/OL]. http://www. weidai. com/bmoney. txt, 1998.

[25] Finney H. RPOW-Reusable Proofs of Work [EB/OL]. http://cryptome. org/rpow. html, 2004.

[26] 李鸿. 一种基于椭圆曲线的部分盲签名方案[J]. 宿州师专学报, 2004(1):89-91.

[27] Adiseshu H, T. V Lakshman. The Internet Blockchain: A Distributed, Tamper-Resistant Transaction Framework for the Internet. ACM. 2016(11). 205.

[28] Buterin, Vitalik. Ethereum: A next-generation smart contract and decentralized application platform[EB/OL]. https://github. com/ethereum/wiki/wiki/% 5BEnglish% 5D-White-Paper (2014).

[29] 区块链核心技术演进之路-共识机制演进(1) [EB/OL]. http://www. 8btc. com/blockchain-tech-consensus- mechanism, 2016.

[30] 杨涛. 浅析比特币的非货币属性[J]. 时代金融, 2014(1):93-94, 96.

[31] King S, Nadal S. Ppcoin: Peer-to-peer crypto-currency with proof-of-stake[J]. Self-published paper, 2012(8), 19.

[32] Daniel L, Charles H, Stan L. Bitshare:A Peer-to-Peer Polymorphic Digital Asset Exchange[J]. Self-published paper, 2013(9), 11.

[33] Castro M, Liskov B. Practical Byzantine fault tolerance[C]//OSDI. 1999, 99: 173-186.

[34] Bitcoinmining Article [EB/OL]. https://www. bitcoinmining. com/bitcoin-mining-pools, 2015.

[35] Szabo N. The idea of smart contracts, 1997[J]. 1997.

[36] Delmolino K, Arnett M, Kosba A E, et al. Step by Step Towards Creating a Safe Smart Contract: Lessons and Insights from a Cryptocurrency Lab[J]. IACR Cryptology ePrint Archive, 2015: 460.

[37] Kosba A, Miller A, Shi E, et al. Hawk: The blockchain model of cryptography and privacy-preserving smart contracts[J]. University of Maryland and Cornell University, 2015.

[38] Luu L, Chu D H, Olickel H, et al. Making smart contracts smarter[C]//Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security. ACM, 2016: 254-269.

[39] Juels A, Kosba A, Shi E. The ring of gyges: Using smart contracts for crime[J]. aries, 2015, 40: 54.

[40] 从无大同世界, 区块链去中央化不是无国界, [EB/OL]. http://server.zol.com.cn/630/6304620.html?keyfrom=front, 03, 2017.

[41] 区块链的产业生态现状, [EB/OL]. http://www. xianjichina. com/news/details_28596. html, 03, 2017.

[42] 唐文建, 吕雯, 黄浩. 区块链如何重新定义世界, 2016.

[43] 2016—2020年区块链技术深度调研及投资前景预测报告, 2016.

[44] 中国区块链应用研究中心. 图解区块链[M]. 首都经济贸易大学出版社. 2016:50-51.

[45] 国务院. 国务院关于印发“十三五”国家信息化规划的通知[R]. 2016.

[46] 区块链研究报告:应用场景、商业模式及产业链[EB/OL]. http://3g.ifeng.com/news/sharenews.f?aid= 110489342&mid=, 06,2016.

[47] 麦肯锡报告, 区块链:银行业游戏规则的颠覆者[EB/OL]. http://www.mckinsey.com.cn/wp-content/uploads/2016/05/%E5%8C%BA%E5%9D%97%E9%93%BE. pdf, 2016.

[48] 高盛. 区块链技术每年能够为资本市场节约60亿美元[R]. 2016.

[49] 张健. 区块链:定义未来金融与经济新格局, 2016.

[50] 供应链区块链融资Skuchain 无纸化时代的到来 [EB/OL]. http://chainb. com/?P=Cont&id=1336, 07, 2016.

[51] 阳光保险成为国内首家推出区块链应用的金融企业 [EB/OL]. http://about. sinosig. com/common/ news/ html/144363. html, 2016.

[52] 知识产权服务遇到区块链:天作之合[EB/OL]. http://www. z3z4. com/a/4lyft1s, 09, 2016.

[53] 浅谈区块链+医疗[EB/OL]. http://www. onesheng. cn/news/118016. html, 11, 2016.

[54] 区块链技术及其在教育领域的初步探索[EB/OL]. http://www.ndedu.gov.cn/html/xwzx/jyxxh/2017/01/10/64a0c253-ffc0-4dbe-9654-1077c36d5e40. html, 2016.

[55] 区块链能否让“郭美美”远离慈善[EB/OL]. http://www.it-times.com.cn/sbdj/57659. j.html, 2016.

[56] 区块链技术对于政府治理创新的影响[EB/OL].http://www.echinagov.com/knowledge/CIO/46723.html, 2016.

[57] Sarah Underwood. Blockchain Beyond Bitcoin[J]. Communications of the ACM, 2016(11):16.

[58] Cachin C. Architecture of the Hyperledger Blockchain Fabric[J]. 2016.

[59] 区块链主流开源技术体系介绍[EB/OL]. http://blog. csdn. net/elwingao/article/details/52679475, 2016.

[60] Snow P, Deery B, Lu J, et al. Factom: Business Processes Secured by Immutable Audit Trails on the Blockchain[J]. 2014.

[61] Moreno-Sanchez P, Zafar M B, Kate A. Listening to whispers of ripple: Linking wallets and deanonymizing transactions in the ripple network[J]. Proceedings on Privacy Enhancing Technologies, 2016(4): 436-453.

[62] 趣链科技. Hyperchain白皮书. 2016.

目录

  • 序一
  • 序二
  • 前言
  • 第一部分 区块链基础
  • 第1章 区块链基础入门
  • 第二部分 开源区块链平台
  • 第2章 以太坊深入解读
  • 第3章 以太坊应用开发基础
  • 第4章 Hyperledger Fabric深入解读
  • 第5章 Hyperledger Fabric应用开发基础
  • 第三部分 企业级区块链平台 Hyperchain
  • 第6章 企业级区块链平台核心原理剖析
  • 第7章 Hyperchain应用开发基础
  • 第四部分 区块链应用案例
  • 第8章 以太坊应用实战案例详解
  • 第9章 企业级区块链应用实战案例详解