logo资料库

区块链技术发展现状与展望.pdf

第1页 / 共14页
第2页 / 共14页
第3页 / 共14页
第4页 / 共14页
第5页 / 共14页
第6页 / 共14页
第7页 / 共14页
第8页 / 共14页
资料共14页,剩余部分请下载后查看
第42卷第4期自动化学报Vol.42,No.42016年4月ACTAAUTOMATICASINICAApril,2016区块链技术发展现状与展望袁勇1,2王飞跃1,3摘要区块链是随着比特币等数字加密货币的日益普及而逐渐兴起的一种全新的去中心化基础架构与分布式计算范式,目前已经引起政府部门、金融机构、科技企业和资本市场的高度重视与广泛关注.区块链技术具有去中心化、时序数据、集体维护、可编程和安全可信等特点,特别适合构建可编程的货币系统、金融系统乃至宏观社会系统.本文通过解构区块链的核心要素,提出了区块链系统的基础架构模型,详细阐述了区块链及与之相关的比特币的基本原理、技术、方法与应用现状,讨论了智能合约的理念、应用和意义,介绍了基于区块链的平行社会发展趋势,致力于为未来相关研究提供有益的指导与借鉴.关键词区块链,比特币,共识机制,智能合约,平行社会引用格式袁勇,王飞跃.区块链技术发展现状与展望.自动化学报,2016,42(4):481−494DOI10.16383/j.aas.2016.c160158Blockchain:TheStateoftheArtandFutureTrendsYUANYong1,2WANGFei-Yue1,3AbstractBlockchainisanemergingdecentralizedarchitectureanddistributedcomputingparadigmunderlyingBitcoinandothercryptocurrencies,andhasrecentlyattractedintensiveattentionfromgovernments,financialinstitutions,high-techenterprises,andthecapitalmarkets.Blockchain'skeyadvantagesincludedecentralization,time-seriesdata,collectivemaintenance,programmabilityandsecurity,andthusisparticularlysuitableforconstructingaprogrammablemonetarysystem,financialsystem,andeventhemacroscopicsocietalsystem.Inthispaper,weproposedabasicmodeloftheblockchainsystem,discussedtheprinciples,technologies,methodsandapplicationsofblockchainandtherelatedBitcoinsystems.Wealsodiscussedthesmartcontractanditsapplications,andpresentedthefuturetrendsofblockchain-enabledparalleledsocieties.Thispaperisaimedatprovidinghelpfulguidanceandreferenceforfutureresearchefforts.KeywordsBlockchain,Bitcoin,consensusmechanism,smartcontract,paralleledsocietyCitationYuanYong,WangFei-Yue.Blockchain:thestateoftheartandfuturetrends.ActaAutomaticaSinica,2016,42(4):481−494区块链是以比特币为代表的数字加密货币体系的核心支撑技术.区块链技术的核心优势是去中心化,能够通过运用数据加密、时间戳、分布式共识和经济激励等手段,在节点无需互相信任的分布式系统中实现基于去中心化信用的点对点交易、协调与协作,从而为解决中心化机构普遍存在的高成本、低效率和数据存储不安全等问题提供了解决方案.随着比特币近年来的快速发展与普及,区块链技术的收稿日期2016-02-22录用日期2016-03-02ManuscriptreceivedFebruary22,2016;acceptedMarch2,2016国家自然科学基金(71472174,71102117,61533019,71232006,61233001)资助SupportedbyNationalNaturalScienceFoundationofChina(71472174,71102117,61533019,71232006,61233001)本文责任编委林宗利RecommendedbyAssociateEditorLINZong-Li1.中国科学院自动化研究所复杂系统管理与控制国家重点实验室北京1001902.青岛智能产业技术研究院青岛2661093.国防科技大学军事计算实验与平行系统技术中心长沙4100731.TheStateKeyLaboratoryofManagementandControlforComplexSystems,InstituteofAutomation,ChineseAcademyofSciences,Beijing1001902.QingdaoAcademyofIntelli-gentIndustries,Qingdao2661093.ResearchCenterofMili-taryComputationalExperimentsandParallelSystem,NationalUniversityofDefenseTechnology,Changsha410073研究与应用也呈现出爆发式增长态势,被认为是继大型机、个人电脑、互联网、移动/社交网络之后计算范式的第五次颠覆式创新,是人类信用进化史上继血亲信用、贵金属信用、央行纸币信用之后的第四个里程碑[1].区块链技术是下一代云计算的雏形,有望像互联网一样彻底重塑人类社会活动形态,并实现从目前的信息互联网向价值互联网的转变.区块链技术的快速发展引起了政府部门、金融机构、科技企业和资本市场的广泛关注.2016年1月,英国政府发布区块链专题研究报告[2],积极推行区块链在金融和政府事务中的应用;中国人民银行召开数字货币研讨会探讨采用区块链技术发行虚拟货币的可行性,以提高金融活动的效率、便利性和透明度.美国纳斯达克于2015年12月率先推出基于区块链技术的证券交易平台Linq,成为金融证券市场去中心化趋势的重要里程碑;德勤和安永等专业审计服务公司相继组建区块链研发团队,致力于提升其客户审计服务质量.截止到2016年初,资本市场已经相继投入10亿美元以加速区块链领域的发
482自动化学报42卷展.初创公司R3CEV基于微软云服务平台Azure推出的BaaS(Blockchainasaservice,区块链即服务)服务,已与美国银行、花旗银行等全球40余家大型银行机构签署区块链合作项目,致力于制定银行业的区块链行业标准与协议.区块链技术起源于2008年由化名为“中本聪”(Satoshinakamoto)的学者在密码学邮件组发表的奠基性论文《比特币:一种点对点电子现金系统》[3],目前尚未形成行业公认的区块链定义.狭义来讲,区块链是一种按照时间顺序将数据区块以链条的方式组合成特定数据结构,并以密码学方式保证的不可篡改和不可伪造的去中心化共享总账(Decentral-izedsharedledger),能够安全存储简单的、有先后关系的、能在系统内验证的数据.广义的区块链技术则是利用加密链式区块结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用自动化脚本代码(智能合约)来编程和操作数据的一种全新的去中心化基础架构与分布式计算范式.区块链具有去中心化、时序数据、集体维护、可编程和安全可信等特点.首先是去中心化:区块链数据的验证、记账、存储、维护和传输等过程均是基于分布式系统结构,采用纯数学方法而不是中心机构来建立分布式节点间的信任关系,从而形成去中心化的可信任的分布式系统;其次是时序数据:区块链采用带有时间戳的链式区块结构存储数据,从而为数据增加了时间维度,具有极强的可验证性和可追溯性;第三是集体维护:区块链系统采用特定的经济激励机制来保证分布式系统中所有节点均可参与数据区块的验证过程(如比特币的“挖矿”过程),并通过共识算法来选择特定的节点将新区块添加到区块链;第四是可编程:区块链技术可提供灵活的脚本代码系统,支持用户创建高级的智能合约、货币或其他去中心化应用.例如,以太坊(Ethereum)平台即提供了图灵完备的脚本语言以供用户来构建任何可以精确定义的智能合约或交易类型[4];最后是安全可信:区块链技术采用非对称密码学原理对数据进行加密,同时借助分布式系统各节点的工作量证明等共识算法形成的强大算力来抵御外部攻击、保证区块链数据不可篡改和不可伪造,因而具有较高的安全性.区块链技术是具有普适性的底层技术框架,可以为金融、经济、科技甚至政治等各领域带来深刻变革.按照目前区块链技术的发展脉络,区块链技术将会经历以可编程数字加密货币体系为主要特征的区块链1.0模式、以可编程金融系统为主要特征的区块链2.0模式和以可编程社会为主要特征的区块链3.0模式[1].目前,一般认为区块链技术正处于2.0模式的初期,股权众筹和P2P借贷等各类基于区块链技术的互联网金融应用相继涌现.然而,上述模式实际上是平行而非演进式发展的,区块链1.0模式的数字加密货币体系仍然远未成熟,距离其全球货币一体化的愿景实际上更远、更困难.目前,区块链领域已经呈现出明显的技术和产业创新驱动的发展态势,相关学术研究严重滞后、亟待跟进.截止到2016年2月,以万方数据知识服务平台为中文数据源、以WebofScience和EIVillage为英文数据源的文献检索显示,目前篇名包含关键词“区块链/blockchain”的仅有2篇中文[5−6]和9篇英文文献[6−14].本文系统性地梳理了区块链的基本原理、核心技术、典型应用和现存问题,以期为未来研究提供有益的启发与借鉴.本文组织结构为:第1节概述区块链与比特币的发展史及二者的关系;第2节阐述区块链的基础架构模型及其关键技术;第3节和第4节分别概要总结了区块链技术的应用场景与现存的问题;第5节介绍智能合约及其在区块链领域的应用现状;第6节展望了区块链驱动的平行社会发展趋势;第7节总结本文内容.1比特币与区块链概述比特币是迄今为止最为成功的区块链应用场景.据区块链实时监控网站Blockchain.info统计显示,平均每天有约7500万美元的120000笔交易被写入比特币区块链,目前已生成超过40万个区块[15].加密货币市值统计网站coinmarketcap.com显示,截止到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].比特币本质上是由分布式网络系统生成的数字货币,其发行过程不依赖特定的中心化机构,而是依赖于分布式网络节点共同参与一种称为工作量证明(Proofofwork,PoW)的共识过程以完成比特币交易的验证与记录.PoW共识过程(俗称挖矿,每个节点称为矿工)通常是各节点贡献自己的计算资源来竞争解决一个难度可动态调整的数学问题,成功解决该数学问题的矿工将获得区块的记账权,并将当前时间段的所有比特币交易打包记入一个新的区块、按照时间顺序链接到比特币主链上.比特币系统同时会发行一定数量的比特币以奖励该矿工,并激励其他矿工继续贡献算力.比特币的流通过程依靠密码学方法保障安全.每一次比特币交易都会经过特殊算法处理和全体矿工验证后记入区块链,同时可以附带具有一定灵活性的脚本代码(智能合约)以实现可编程的自动化货币流通.由此可见,比特币和区块链系统一般具备如下五个关键要素,即公共的区块链账本、分布式的点对点网络系统、去中心化的共识算法、适度的经济激励机制以及可编程的脚本代码.区块链技术为比特币系统解决了数字加密货币领域长期以来所必需面对的两个重要问题,即双重支付问题和拜占庭将军问题[19].双重支付问题又称为“双花”,即利用货币的数字特性两次或多次使用“同一笔钱”完成支付.传统金融和货币体系中,现金(法币)因是物理实体,能够自然地避免双重支付;其他数字形式的货币则需要可信的第三方中心机构(如银行)来保证.区块链技术的贡献是在没有第三方机构的情况下,通过分布式节点的验证和共识机制解决了去中心化系统的双重支付问题,在信息传输的过程同时完成了价值转移.拜占庭将军问题是分布式系统交互过程普遍面临的难题,即在缺少可信任的中央节点的情况下,分布式节点如何达成共识和建立互信[20].区块链通过数字加密技术和分布式共识算法,实现了在无需信任单个节点的情况下构建一个去中心化的可信任系统.与传统中心机构(如中央银行)的信用背书机制不同的是,比特币区块链形成的是软件定义的信用,这标志着中心化的国家信用向去中心化的算法信用的根本性变革.比特币凭借其先发优势,目前已经形成体系完备的涵盖发行、流通和金融衍生市场的生态圈与产业链(如图1所示),这也是其长期占据绝大多数数字加密货币市场份额的主要原因.比特币的开源特性吸引了大量开发者持续性地贡献其创新技术、方法和机制;比特币各网络节点(矿工)提供算力以保证比特币的稳定共识和安全性,其算力大多来自于设备商销售的专门用于PoW共识算法的专业设备(矿机).比特币网络为每个新发现的区块发行一定数量的比特币以奖励矿工,部分矿工可能会相互合作建立收益共享的矿池,以便汇集算力来提高获得比特币的概率.比特币经发行进入流通环节后,持币人可以通过特定的软件平台(如比特币钱包)向商家支付比特币来购买商品或服务,这体现了比特币的货币属性;同时由于比特币价格的涨跌机制使其完全具备金融衍生品的所有属性,因此出现了比特币交易平台以方便持币人投资或者投机比特币.在流通环节和金融市场中,每一笔比特币交易都会由比特币网络的全体矿工验证并记入区块链.比特币是区块链技术赋能的第一个“杀手级”应用,迄今为止区块链的核心技术和人才资源仍大多在比特币研发领域.然而,区块链作为未来新一代的底层基础技术,其应用范畴势必会超越数字加密货币而延伸到金融、经济、科技和政治等其他领域.图1比特币生态圈Fig.1TheBitcoinecosystem
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.2Abasicframeworkofblockchain图3区块结构Fig.3Thestructureofblocks链式结构:取得记账权的矿工将当前区块链接到前一区块,形成最新的区块主链.各个区块依次环环相接,形成从创世区块到当前区块的一条最长主链,从而记录了区块链数据的完整历史,能够提供区块链数据的溯源和定位功能,任意数据都可以通过此链式结构顺藤摸瓜、追本溯源.需要说明的是,如果短时间内有两个矿工同时“挖出”两个新的区块加以链接的话,区块主链可能会出现暂时的“分叉”现象,其解决方法是约定矿工总是选择延长累计工
4期袁勇等:区块链技术发展现状与展望485作量证明最大的区块链.因此,当主链分叉后,后续区块的矿工将通过计算和比较,将其区块链接到当前累计工作量证明最大化的备选链上,形成更长的新主链,从而解决分叉问题[19].时间戳:区块链技术要求获得记账权的节点必须在当前数据区块头中加盖时间戳,表明区块数据的写入时间.因此,主链上各区块是按照时间顺序依次排列的.时间戳技术本身并不复杂,但其在区块链技术中的应用是具有重要意义的创新.时间戳可以作为区块数据的存在性证明(Proofofexistence),有助于形成不可篡改和不可伪造的区块链数据库,从而为区块链应用于公证、知识产权注册等时间敏感的领域奠定了基础.更为重要的是,时间戳为未来基于区块链的互联网和大数据增加了时间维度,使得通过区块数据和时间戳来重现历史成为可能.哈希函数:区块链通常并不直接保存原始数据或交易记录,而是保存其哈希函数值,即将原始数据编码为特定长度的由数字和字母组成的字符串后记入区块链.哈希函数(也称散列函数)具有诸多优良特点,因而特别适合用于存储区块链数据.例如,通过哈希输出几乎不能反推输入值(单向性),不同长度输入的哈希过程消耗大约相同的时间(定时性)且产生固定长度的输出(定长性),即使输入仅相差一个字节也会产生显著不同的输出值(随机性)等.比特币区块链通常采用双SHA256哈希函数,即将任意长度的原始数据经过两次SHA256哈希运算后转换为长度为256位(32字节)的二进制数字来统一存储和识别.除上述特点外,SHA256算法还具有巨大的散列空间(2256)和抗碰撞(避免不同输入值产生相同哈希值)等特性,可满足比特币的任何相关标记需要而不会出现冲突.Merkle树:Merkle树是区块链的重要数据结构,其作用是快速归纳和校验区块数据的存在性和完整性.如图3所示,Merkle树通常包含区块体的底层(交易)数据库,区块头的根哈希值(即Merkle根)以及所有沿底层区块数据到根哈希的分支.Merkle树运算过程一般是将区块体的数据进行分组哈希,并将生成的新哈希值插入到Merkle树中,如此递归直到只剩最后一个根哈希值并记为区块头的Merkle根.最常见的Merkle树是比特币采用的二叉Merkle树,其每个哈希节点总是包含两个相邻的数据块或其哈希值[22],其他变种则包括以太坊的Merklepatriciatree等[4].Merkle树有诸多优点:首先是极大地提高了区块链的运行效率和可扩展性,使得区块头只需包含根哈希值而不必封装所有底层数据,这使得哈希运算可以高效地运行在智能手机甚至物联网设备上;其次是Merkle树可支持“简化支付验证”协议,即在不运行完整区块链网络节点的情况下,也能够对(交易)数据进行检验[3].例如,为验证图3中交易6,一个没有下载完整区块链数据的客户端可以通过向其他节点索要包括从交易6哈希值沿Merkle树上溯至区块头根哈希处的哈希序列(即哈希节点6,5,56,78,5678,1234)来快速确认交易的存在性和正确性.一般说来,在N个交易组成的区块体中确认任一交易的算法复杂度仅为log2N.这将极大地降低区块链运行所需的带宽和验证时间,并使得仅保存部分相关区块链数据的轻量级客户端成为可能.非对称加密:非对称加密是为满足安全性需求和所有权验证需求而集成到区块链中的加密技术,常见算法包括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].公钥生成过程是不可逆的,即不能通过公钥反推出私钥.比特币的公钥和私钥通常
486自动化学报42卷图4比特币非对称加密机制Fig.4TheasymmetriccryptographyoftheBitcoinsystem保存于比特币钱包文件,其中私钥最为重要.丢失私钥就意味着丢失了对应地址的全部比特币资产.现有的比特币和区块链系统中,根据实际应用需求已经衍生出多私钥加密技术,以满足多重签名等更为灵活和复杂的场景.2.2网络层网络层封装了区块链系统的组网方式、消息传播协议和数据验证机制等要素.结合实际应用需求,通过设计特定的传播协议和数据验证机制,可使得区块链系统中每一个节点都能参与区块数据的校验和记账过程,仅当区块数据通过全网大部分节点验证后,才能记入区块链.组网方式:区块链系统的节点一般具有分布式、自治性、开放可自由进出等特性,因而一般采用对等式网络(Peer-to-peernetwork,P2P网络)来组织散布全球的参与数据验证和记账的节点.P2P网络中的每个节点均地位对等且以扁平式拓扑结构相互连通和交互,不存在任何中心化的特殊节点和层级结构,每个节点均会承担网络路由、验证区块数据、传播区块数据、发现新节点等功能.按照节点存储数据量的不同,可以分为全节点和轻量级节点.前者保存有从创世区块到当前最新区块为止的完整区块链数据,并通过实时参与区块数据的校验和记账来动态更新主链.全节点的优势在于不依赖任何其他节点而能够独立地实现任意区块数据的校验、查询和更新,劣势则是维护全节点的空间成本较高;以比特币为例,截止到2016年2月,创世区块至当前区块的数据量已经超过60GB.与之相比,轻量级节点则仅保存一部分区块链数据,并通过第2.1节提到的简易支付验证方式向其相邻节点请求所需的数据来完成数据校验.数据传播协议:任一区块数据生成后,将由生成该数据的节点广播到全网其他所有的节点来加以验证.现有的区块链系统一般根据实际应用需求设计比特币传播协议的变种,例如以太坊区块链集成了所谓的“幽灵协议”以解决因区块数据确认速度快而导致的高区块作废率和随之而来的安全性风险[4].根据中本聪的设计,比特币系统的交易数据传播协议包括如下步骤[3]:1)比特币交易节点将新生成的交易数据向全网所有节点进行广播;2)每个节点都将收集到的交易数据存储到一个区块中;3)每个节点基于自身算力在区块中找到一个具有足够难度的工作量证明;4)当节点找到区块的工作量证明后,就向全网所有节点广播此区块;5)仅当包含在区块中的所有交易都是有效的且之前未存在过的,其他节点才认同该区块的有效性;6)其他节点接受该数据区块,并在该区块的末尾制造新的区块以延长该链条,而将被接受区块的随机哈希值视为先于新区块的随机哈希值.需要说明的是,如果交易节点是与其他节点无连接的新节点,比特币系统通常会将一组长期稳定运行的“种子节点”推荐给新节点建立连接,或者推荐至少一个节点连接到新节点.此外,交易数据广播时,并不需要全部节点均接收到,而是只要足够多的节点做出响应即可整合进入区块账本中.未接收到特定交易数据的节点则可向邻近节点请求下载该缺失的交易数据[19].数据验证机制:P2P网络中的每个节点都时刻监听比特币网络中广播的数据与新区块.节点接收到邻近节点发来的数据后,将首先验证该数据的有效性.如果数据有效,则按照接收顺序为新数据建立存储池以暂存尚未记入区块的有效数据,同时继续向邻近节点转发;如果数据无效,则立即废弃该数据,从而保证无效数据不会在区块链网络继续传播.以比特币为例,比特币的矿工节点会收集和验证P2P网络中广播的尚未确认的交易数据,并对照预定义的标准清单,从数据结构、语法规范性、输入输出和数字签名等各方面校验交易数据的有效性,并将有效交易数据整合到当前区块中;同理,当某矿工
4期袁勇等:区块链技术发展现状与展望487“挖”到新区块后,其他矿工节点也会按照预定义标准来校验该区块是否包含足够工作量证明,时间戳是否有效等;如确认有效,其他矿工节点会将该区块链接到主区块链上,并开始竞争下一个新区块.由网络层设计机理可见,区块链是典型的分布式大数据技术.全网数据同时存储于去中心化系统的所有节点上,即使部分节点失效,只要仍存在一个正常运行的节点,区块链主链数据就可完全恢复而不会影响后续区块数据的记录与更新.这种高度分散化的区块存储模式与云存储模式的区别在于,后者是基于中心化结构基础上的多重存储和多重数据备份模式,即“多中心化”模式;而前者则是完全“去中心化”的存储模式,具有更高的数据安全性.2.3共识层如何在分布式系统中高效地达成共识是分布式计算领域的重要研究问题.正如社会系统中“民主”和“集中”的对立关系相似,决策权越分散的系统达成共识的效率越低、但系统稳定性和满意度越高;而决策权越集中的系统更易达成共识,但同时更易出现专制和独裁.区块链技术的核心优势之一就是能够在决策权高度分散的去中心化系统中使得各节点高效地针对区块数据的有效性达成共识.早期的比特币区块链采用高度依赖节点算力的工作量证明(Proofofwork,PoW)机制来保证比特币网络分布式记账的一致性.随着区块链技术的发展和各种竞争币的相继涌现,研究者提出多种不依赖算力而能够达成共识的机制,例如点点币首创的权益证明(Proofofstake,PoS)共识[23]和比特股首创的授权股份证明机制(Delegatedproofofstake,DPOS)共识机制[24]等.区块链共识层即封装了这些共识机制.PoW共识:中本聪在其比特币奠基性论文中设计了PoW共识机制,其核心思想是通过引入分布式节点的算力竞争来保证数据一致性和共识的安全性.比特币系统中,各节点(即矿工)基于各自的计算机算力相互竞争来共同解决一个求解复杂但验证容易的SHA256数学难题(即挖矿),最快解决该难题的节点将获得区块记账权和系统自动生成的比特币奖励.该数学难题可表述为:根据当前难度值,通过搜索求解一个合适的随机数(Nonce)使得图3中区块头各元数据的双SHA256哈希值小于或等于目标哈希值.比特币系统通过灵活调整随机数搜索的难度值来控制区块的平均生成时间为10分钟左右.一般说来,PoW共识的随机数搜索过程如下(参照图3区块结构)[19]:步骤1.搜集当前时间段的全网未确认交易,并增加一个用于发行新比特币奖励的Coinbase交易,形成当前区块体的交易集合;步骤2.计算区块体交易集合的Merkle根记入区块头,并填写区块头的其他元数据,其中随机数Nonce置零;步骤3.随机数Nonce加1;计算当前区块头的双SHA256哈希值,如果小于或等于目标哈希值,则成功搜索到合适的随机数并获得该区块的记账权;否则继续步骤3直到任一节点搜索到合适的随机数为止;步骤4.如果一定时间内未成功,则更新时间戳和未确认交易集合、重新计算Merkle根后继续搜索.符合要求的区块头哈希值通常由多个前导零构成,目标哈希值越小,区块头哈希值的前导零越多,成功找到合适的随机数并“挖”出新区块的难度越大.据区块链实时监测网站Blockchain.info显示,截止到2016年2月,符合要求的区块头哈希值一般有17个前导零,例如第398346号区块哈希值为“0000000000000000077f754f22f21629a7975cf···”.按照概率计算,每16次随机数搜索将会有找到一个含有一个前导零的区块哈希值,因而比特币目前17位前导零哈希值要求1617次随机数搜索才能找到一个合适的随机数并生成一个新的区块.由此可见,比特币区块链系统的安全性和不可篡改性是由PoW共识机制的强大算力所保证的,任何对于区块数据的攻击或篡改都必须重新计算该区块以及其后所有区块的SHA256难题,并且计算速度必须使得伪造链长度超过主链,这种攻击难度导致的成本将远超其收益.据估计,截止到2016年1月,比特币区块链的算力已经达到800000000Gh/s,即每秒进行8×1018次运算,超过全球Top500超级计算机的算力总和.PoW共识机制是具有重要意义的创新,其近乎完美地整合了比特币系统的货币发行、交易支付和验证等功能,并通过算力竞争保障系统的安全性和去中心性;PoW共识机制同时存在着显著的缺陷,其强大算力造成的资源浪费(如电力)历来为研究者所诟病,而且长达10分钟的交易确认时间使其相对不适合小额交易的商业应用.PoS共识机制:PoS共识是为解决PoW共识机制的资源浪费和安全性缺陷而提出的替代方案.限于篇幅,本文主要聚焦于PoS相对于PoW的创新之处.PoS共识本质上是采用权益证明来代替PoW中的基于哈希算力的工作量证明,是由系统中具有最高权益而非最高算力的节点获得区块记账权.权益体现为节点对特定数量货币的所有权,称为币龄或币天数(Coindays).币龄是特定数量的币与其最后一次交易的时间长度的乘积,每次交易都将会消
488自动化学报42卷耗掉特定数量的币龄.例如,某人在一笔交易中收到10个币后并持有10天,则获得100币龄;而后其花掉5个币后,则消耗掉50币龄.显然,采用PoS共识机制的系统在特定时间点上的币龄总数是有限的,长期持币者更倾向于拥有更多币龄,因此币龄可视为其在PoS系统中的权益.此外,PoW共识过程中各节点挖矿难度相同,而PoS共识过程中的难度与交易输入的币龄成反比,消耗币龄越多则挖矿难度越低.节点判断主链的标准也由PoW共识的最高累计难度转变为最高消耗币龄,每个区块的交易都会将其消耗的币龄提交给该区块,累计消耗币龄最高的区块将被链接到主链.由此可见,PoS共识过程仅依靠内部币龄和权益而不需要消耗外部算力和资源,从根本上解决了PoW共识算力浪费的问题,并且能够在一定程度上缩短达成共识的时间,因而比特币之后的许多竞争币均采用PoS共识机制.DPoS共识机制:DPoS共识机制的基本思路类似于“董事会决策”,即系统中每个股东节点可以将其持有的股份权益作为选票授予一个代表,获得票数最多且愿意成为代表的前101个节点将进入“董事会”,按照既定的时间表轮流对交易进行打包结算并且签署(即生产)一个新区块.每个区块被签署之前,必须先验证前一个区块已经被受信任的代表节点所签署.“董事会”的授权代表节点可以从每笔交易的手续费中获得收入,同时要成为授权代表节点必须缴纳一定量的保证金,其金额相当于生产一个区块收入的100倍.授权代表节点必须对其他股东节点负责,如果其错过签署相对应的区块,则股东将会收回选票从而将该节点“投出”董事会.因此,授权代表节点通常必须保证99%以上的在线时间以实现盈利目标[24].显然,与PoW共识机制必须信任最高算力节点和PoS共识机制必须信任最高权益节点不同的是,DPoS共识机制中每个节点都能够自主决定其信任的授权节点且由这些节点轮流记账生成新区块,因而大幅减少了参与验证和记账的节点数量,可以实现快速共识验证.除上述三种主流共识机制外,实际区块链应用中也衍生出了PoW+PoS、行动证明(Proofofac-tivity)等多个变种机制.这些共识机制各有优劣势,比特币的PoW共识机制依靠其先发优势已经形成成熟的挖矿产业链,支持者众多,而PoS和DPoS等新兴机制则更为安全、环保和高效,从而使得共识机制的选择问题成为区块链系统研究者最不易达成共识的问题.2.4激励层区块链共识过程通过汇聚大规模共识节点的算力资源来实现共享区块链账本的数据验证和记账工作,因而其本质上是一种共识节点间的任务众包过程.去中心化系统中的共识节点本身是自利的,最大化自身收益是其参与数据验证和记账的根本目标.因此,必须设计激励相容的合理众包机制,使得共识节点最大化自身收益的个体理性行为与保障去中心化区块链系统的安全和有效性的整体目标相吻合.区块链系统通过设计适度的经济激励机制并与共识过程相集成,从而汇聚大规模的节点参与并形成了对区块链历史的稳定共识.以比特币为例,比特币PoW共识中的经济激励由新发行比特币奖励和交易流通过程中的手续费两部分组成,奖励给PoW共识过程中成功搜索到该区块的随机数并记录该区块的节点.因此,只有当各节点通过合作共同构建共享和可信的区块链历史记录、并维护比特币系统的有效性,其获得的比特币奖励和交易手续费才会有价值.比特币已经形成成熟的挖矿生态圈,大量配备专业矿机设备的矿工积极参与基于挖矿的PoW共识过程,其根本目的就是通过获取比特币奖励并转换为相应法币来实现盈利.发行机制:比特币系统中每个区块发行比特币的数量是随着时间阶梯性递减的.创世区块起的每个区块将发行50个比特币奖励给该区块的记账者,此后每隔约4年(21万个区块)每区块发行比特币的数量降低一半,依此类推,一直到比特币的数量稳定在上限2100万为止[19].比特币交易过程中会产生手续费,目前默认手续费是万分之一个比特币,这部分费用也会记入区块并奖励给记账者.这两部分费用将会封装在每个区块的第一个交易(称为Coinbase交易)中.虽然现在每个区块的总手续费相对于新发行比特币来说规模很小(通常不会超过1个比特币),但随着未来比特币发行数量的逐步减少甚至停止发行,手续费将逐渐成为驱动节点共识和记账的主要动力.同时,手续费还可以防止大量微额交易对比特币网络发起的“粉尘”攻击,起到保障安全的作用.分配机制:比特币系统中,大量的小算力节点通常会选择加入矿池,通过相互合作汇集算力来提高“挖”到新区块的概率,并共享该区块的比特币和手续费奖励.据Bitcoinmining.com统计,目前已经存在13种不同的分配机制[25].主流矿池通常采用PPLNS(PayperlastNshares)、PPS(Paypershare)和PROP(PROPortionately)等机制.矿池将各节点贡献的算力按比例划分成不同的股份(Share),其中PPLNS机制是指发现区块后,各合作节点根据其在最后N个股份内贡献的实际股份比例来分配区块中的比特币;PPS则直接根据股份比例为各节点估算和支付一个固定的理论收益,采用此方式的矿池将会适度收取手续费来弥补其为各
分享到:
收藏