您好,欢迎访问三七文档
2016年11月ChineseJournalofNetworkandInformationSecurityNovember201600107-1第2卷第11期网络与信息安全学报Vol.2No.11区块链技术综述沈鑫1,裴庆祺1,刘雪峰2(1.西安电子科技大学通信工程学院,陕西西安710071;2.西安电子科技大学网络与信息安全学院,陕西西安710071)摘要:区块链是一种广泛应用于新兴数字加密货币的去中心化基础架构,随着比特币的逐渐被接受而受到关注和研究。区块链技术具有去中心化,区块数据基本不可篡改、去信任化等特性,因此受到企业尤其是金融机构的追捧。阐述了区块链技术的核心技术原理,探讨了区块链技术的应用以及所存在的监管问题、安全问题,旨在对区块链技术的相关研究提供帮助。关键词:区块链;数字货币;去中心化;分布式;共识机制中图分类号:TP319文献标识码:Adoi:10.11959/j.issn.2096-109x.2016.00107SurveyofblockchainSHENXin1,PEIQing-qi1,LIUXue-feng2(1.SchoolofTelecommunicationsEngineering,XidianUniversity,Xi’an710071,China;2.SchoolofCyberEngeering,XidianUniversity,Xi’an710071,China)Abstract:WiththewidespreadofBitcoin,blockchainservingasthebuildingblockofdigitalcurrencybecomesahotspotinindustryandacademia.Duetothedecentrationofnetwork,theunforgeabilityofblockdata,etc.,blockchainhasattractedmoreandmoreattentionsfromfinancialinstitutions.Theessentialtheoryandcoretechniqueofblockchainweresurveyed,andtheissuesofmanagementandsecurityproblemsofblockchainbasedapplicationswerediscussed.Tohelpimprovetheblockchaintechniquesisthegoal.Keywords:blockchain,digitalcurrency,decentralization,distribution,consensusmechanism1引言区块链是比特币的基础支撑技术,首次出现在中本聪(SatoshiNakamoto)发表的《比特币:一种点对点式的电子现金系统》[1],文中详细描述了如何建立一套全新的、去中心化的、不需要信任基础的点到点交易体系的方法,其可实现性已经被自2009年运行至今的比特币所证明。区块链技术的突出优势在于去中心化设计,通过运用加密算法、时间戳、树形结构、共识机制和奖励机制,在节点无需信任的分布式网络中实现基于去中心化信用的点到点交易,解决了目前中心化模式存在的可靠性差、安全性低、高成本、低效率等问题。虽然近几年比特币快速发展,但其交易的匿名性和作为货币的发行权无法被掌握,多数国家机构不承认其货币属性,而区块链凭借其独特的优势,吸引众多目光,相关研究和应用一时之间呈现井喷的趋势。区块链技术更是被认为是继大型计算机、个人计算机、互联网、移动社交之后的第5次颠覆式计算范式,是人类信用进化史上继血亲信用、贵金属信用、央行纸币信用之后的第4个里程碑[2]。广义的区块链技术有望彻底重塑人类社会活动形态,为金融、科技、文化、政治等领域带来深刻的变革。收稿日期:2016-07-15;修回日期:2016-10-11。通信作者:沈鑫,shenxinzh@gmail.comChaoXing·12·网络与信息安全学报第2卷截至2016年9月,有关区块链的学术研究成果仍然寥寥无几[3~18],相关知识产权和专利也是一片空白,区块链领域更是呈现出技术和产业创新驱动的发展趋势[19~27]。本文系统地梳理了区块链技术的相关内容,包括区块链的起源、发展现状、基本原理、核心特点、相关应用及其存在的问题,为以后的研究提供启发和借鉴。2区块链概述文献[1]中所描述的区块链是一种按照时间顺序将数据区块用类似链表的方式组成的数据结构,并以密码学方式保证不可篡改和不可伪造的分布式去中心化账本,能够安全存储简单的、有先后关系的、能在系统内进行验证的数据[5]。区块链的出现解决了数字货币的两大问题:双重支付问题以及拜占庭将军问题[28~33]。双重支付问题是同一笔钱被使用了超过一次,是在原有的以物理实体(纸币)为基础的传统金融体系中自然可避免的问题。在区块链出现之前的数字货币,都是通过可信任的中心化第三方机构来保证,以前是银行,现在是支付宝、微信支付等。区块链技术通过共识机制和分布式账本,不需要可信第三方就可以解决双重支付的问题是数字货币的一大突破。拜占庭将军问题(Byzantinegeneralsproblem)[15]是现实世界问题的模型化,适用于分布式网络的简单抽象为“在缺少可信中心节点的情况下,分布式节点怎么达成共识建立互信的问题”。区块链使用“工作量证明”(PoW,proofofwork)及“权益证明”(proofofstake)或其他的共识机制,再加上加密技术,使一个不可信网络变成可信的网络,所有参与者可以在某些方面达成一致,而无需信任单个节点。区块链具有去中心化、网络健壮、灵活性、安全可信等特点。首先,区块链采用纯数学的方法建立分布式节点间的信任关系,形成去中心化的可信分布式系统,产生交易、验证交易、记录交易信息、进行同步等活动均是基于分布式网络完成的,是彻彻底底的去中心化。其次,区块链采用独特的经济激励机制来吸引节点完成工作(如挖矿),促使节点提供算力或其他资源,保证整个分布式网络的顺利运行。整个分布式网络所容纳的节点越多,其健壮性越强,除非一半以上的节点同时出现问题,否则分布式网络将会一直安全运行。再次,区块链提供用户可编程的脚本系统,大大增加了区块链应用的灵活性。在比特币中,脚本不是很成熟,多用于交易的用途;而在以太坊(Ethereum)中,更加完备、功能更加强大的脚本系统智能合约,使更为复杂更为高级的分布式应用得以实现[34]。最后,区块链的安全性是加密技术所保证的,整个分布式网络所提供的算力是非常惊人的,想要篡改区块链中的数据,不仅只是在理论上可行,而且所花费的电力、设备等成本也是得不偿失的。下面通过描述比特币的工作过程来一窥区块链的全貌。比特币网络的全节点无时无刻不在进行数学运算(挖矿、工作量证明),每个节点贡献自己的算力来竞争解决一个动态可调整的数学问题(进行SHA256运算的结果小于某个值),成功解决该数学问题的节点将获得一定数量的比特币(初始50比特币,每挖出210000个区块减少一半)以及该区块的记账权,该节点将当前时间段的所有交易打包计入一个新的区块,获得基于自愿原则的交易手续费,所有的交易都会经过算法处理(SHA256),并且经过验证,产生一定格式的区块(按一定格式计算出的包含前一区块信息的块头,由树形结构组织的交易数据构成块体),最后将该区块链接到主链上。整个比特币网络周而复始,比特币网络顺利运行。“挖矿”是所有节点通过数学运算达成共识的过程,由于非对称算法SHA256的性质,理论上保证记账权获得的随机性。一笔交易数据经全部节点验证通过后,进行SHA256运算,与其他交易两两匹配,再进行SHA256运算,直到最后剩下一个“树根”,矿工将上一区块的散列值(SHA256运算结果)、时间戳、本区块的计算难度值、一个随机数和本区块的“树根”(Merkle树根)打包成块头,加上“交易树”(Merkletree)作为块体,形成完整的区块添加到区块链上。由于每个区块都带有前一区块的特征,想要篡改一个区块的交易记录,必须要重新计算该块之后的所有区块,需要修改时间越久的区块,所花费的算力越大,一般来说,一个区块后面有6个区块,就无法被修改了(根据比00107-2ChaoXing第11期沈鑫等:区块链技术综述·13·特币网络算力以及现有计算设备综合考虑)。3区块链架构与关键技术详解本节使用比特币和以太坊的区块链架构为实例,详细描述区块链技术的基础架构、基本原理以及核心技术。比特币和以太坊是2种具代表性的区块链技术应用,一个是区块链技术的起源,另一个是区块链2.0的代表应用,市面上其他使用区块链技术的数字货币大都与之雷同,所以,比特币和以太坊的基础架构是研究学习区块链技术的重要实例。比特币和以太坊的基础架构如图1所示。图1中虚线表示的是以太坊与比特币的不同之处。总体来说,数字货币的区块链系统包含底层的交易数据、狭义的分布式账本、重要的共识机制、完整可靠的分布式网络、网络之上的分布式应用这几个要素。底层的数据被组织成区块这一数据结构,各个区块按照时间顺序链接成区块链,全分布式网络的各个节点分别保存一份名为区块链的分布式账本,网络中使用P2P协议进行通信,通过共识机制达成一致,基于这些基础产生相对高级的各种应用。在该架构中,不可篡改的区块链数据结构、分布式网络的共识机制、工作量证明机制和愈发灵活的智能合约是具代表性的创新点。图1区块链基础架构3.1底层数据在区块链系统中,底层数据并不是存储在区块链中的数据,这些原始数据需要进一步加工才能被写入区块内。底层数据最根本的是交易记录,其他的数据只是为了对消息记录进行封装。交易数据:交易数据是带有一定格式的交易信息,以比特币为例,一条比特币交易信息应包含以下字段:4B的版本信息,用来明确这笔交易参照的规则;1~9B的输入计数器,表示被包含的输入数量;变长字节的输入,表示一个或多个交易输入(地址);1~9B的输出计数器,表示被包含的输出数量;变长字节的输出,表示一个或多个输出(地址);4B的时钟时间,表示一个UNIX时间戳或区块号[35]。时间戳:时间戳被用来加盖在区块头中,确定了区块的写入时间,同时也使区块链具有时序的性质,时间戳可以作为区块数据的存在性证明,有助于形成不可篡改不可伪造的分布式账本。更为重要的是,时间戳为未来给予区块链技术的互联网和大数据增加了时间维度,使通过区块数据和时间戳来重现历史成为可能[5]。SHA256算法:区块链不会直接保存明文的原始交易记录,只是将原始交易记录经过散列运算,得到一定长度的散列值,将这串字母与数字组成的定长字符串记录进区块。比特币使用双SHA256散列函数,将任意长度的原始交易记录经过2次SHA256散列运算,得到一串256bit的散列值,便于存储和查找。散列函数具有单向性、定时性、定长性和随机性的优点。单项性指由散列值无法反推得到原来的输入数据(理论上可以,实际几乎不可能),定时性指不同长度的数据计算散列值所需要的时间基本一样,定长性指输出的散列值都是相同长度,随机性指2个相似的输入却有截然不同的输出。同时,SHA256函数也是比特币所使用的算力证明,矿工们寻找一个随机数,使新区块头的双SHA256散列值小于或等于一个目标散列值,并且加入难度值,使这个数学问题的解决时间平均为10min,也就是平均每10min产生一个新的区块。Merkle树:Merkle树是区块链技术的重要组成部分,将已经运算为散列值的交易信息按照二叉树形结构组织起来,保存在区块的块体之中。Merkle树的生成过程:将区块数据分组进行散列函数运算,将新的散列值放回,再重新拿出2个00107-3ChaoXing·14·网络与信息安全学报第2卷数据进行运算,一直递归下去,直到剩下唯一的“Merkle根”。比特币采用经典的二叉Merkle树,而以太坊采用了改进的MerklePatricia树。Merkle树的优点:良好的扩展性,不管交易数据怎么样,都可以生成一颗
本文标题:区块链技术综述
链接地址:https://www.777doc.com/doc-5197970 .html