区块链的技术原理和意义

2016-12-30 02:59卿苏德中国信息通信研究院产业与规划研究所工程师
信息通信技术与政策 2016年12期
关键词:哈希比特区块

卿苏德 中国信息通信研究院产业与规划研究所工程师

姜莹 中国信息通信研究院产业与规划研究所工程师

王秋野 中国信息通信研究院产业与规划研究所工程师

区块链的技术原理和意义

卿苏德 中国信息通信研究院产业与规划研究所工程师

姜莹 中国信息通信研究院产业与规划研究所工程师

王秋野 中国信息通信研究院产业与规划研究所工程师

当前,区块链技术引发世界的广泛关注和探讨。本文从区块链的定义和特点入手,研究探讨了区块链技术原理、数据结构、运行机制及区块链的分叉,阐述了区块链的重要意义。

区块链;分布式账本;SHA256

1 引言

从技术上来讲,区块链是一种分布式的记账方法。说到记账,经历了从实物记账向电子记账的演变。如图1所示,实物记账分别经过泥板标记、甲骨刻字、竹板刻书、纸质账本5个阶段;在20世纪60年代半导体微处理器的诞生,打孔计算机的出现,代表着记账进入了电子化时代;随着20世纪70年代IBM引领的大型计算机深入渗透至金融行业,7×24h的批处理替代了朝九晚五的人工记账;20世纪80年代~90年代的个人PC和局域网的发展,实现了内部协同和远程服务。随着互联网在21世纪初的兴起,无国界的跨境业务开始繁荣;随着梦网、3G、4G的代际跃迁,进入了移动金融时代,开始用智能手机管理自己的电子银行。与此同时,加密安全技术在20世纪80年代~21世纪初也得到了广泛发展,其中的哈希加密、椭圆曲线密码学、HashCash工作量证明机制,以及P2P网络后来的发展,即区块链,也叫分布式总账技术,奠定了坚实的技术基础。

图1 区块链(分布式账本)的演进历史

2 区块链的技术原理

(1)区块链的定义和特点

区块链的定义是一种分布式数据库,通过去中心化、去信任的方式,集体维护一个可靠数据库。传统数据库的4种操作可以简写为CURD,C代表创建、U代表更新、R代表读取、D代表删除。如图2所示,区块链作为分布式数据库,相当于是放弃了更新(U)和删除(D)操作,换来“无法篡改”和“不可抵赖”两个重要特点,依托P2P网络提供的分布式端对端网络的特点,可将之归结为CROSS原则。其中,R代表可追溯,依托区块彼此相连的链式结构,用户可以追溯至最初交易来查看整个交易过程;O代表开放,任何一个人都可以通过接入P2P网络来记账;第一个S代表安全,基于密码学的安全通信,以及工作量证明机制,无人可以篡改数据库中的数据;第二个S代表稳定。系统中任何节点的退出,都不会影响整个系统的稳定性,不会遇到中心化节点经常遇到的“单点故障”问题。具有CROSS特点的区块链技术可以改变现有的交易模式。在传统交易中,商家和消费者彼此不信任。为了保证对方可信,需要国家信用背书(如央行)或企业背书(如支付宝)的第三方机构。在证明自己合规的过程中,却把自己所有隐私信息都汇聚到第三方机构,还交了很多手续费,忍受着低效率的交易时滞。区块链技术逐步实现去中心化、去中介的过程,实现消费者和商家之间直接支付,极大地提升了交易效率,降低了交易成本。

图2 区块链的特性

(2)区块链的技术原语

如图3所示,区块链主要运用了4个基础技术,分别是哈希运算(SHA256)、数字签名、P2P网络和工作量证明(PoW)。

哈希加密算法(SHA256)

美国国家安全局研发,由美国国家标准与技术研究院(NIST)在2001年发布,属于SHA-2分支。将任何一串数据输入到SHA256将得到一个256位的Hash值(散列值)。其特点:相同的数据输入将得到相同的结果。输入数据只要稍有变化(如一个7变成了8)则将得到一个千差万别的结果,且结果无法事先预知。

图3 区块链的技术原语

数字签名

基于椭圆曲线加密技术的公私钥来实现。以下两个概念很重要:

第一,公私钥是非对称加密技术,公钥和私钥不同,但是可以基于私钥生成公钥。

第二,相关性,公钥加密的,对应的私钥才能解密。私钥加密的内容,对应的公钥才能解密。

P2P网络

根据比特币协议,区块链采用一种无结构的P2P网络。P2P网络分为有结构和无结构两种,区别在于路由规则的制定方面。有结构的P2P网络,例如Chord,利用一致性哈希表(DHT)构建每个节点的路由表。无结构的P2P网络代表是钮特拉(Gnutella),节点之间的路由靠广播的方式。一个节点要想查找一个文件,首先问其邻居有没有这个文件,他的邻居再问各自的邻居有没有,如此迭代。这样容易形成广播风暴,因此一般设置一个网络TTL,来限制广播传播的范围。

工作量证明机制

简单理解就是一份证明,用来确认你做过一定量的工作。工作量是信任产生的基础。在区块链中,通过解决一个数学难题来证明自己的工作量。这个数据难题就是,对一个数字串进行两次SHA256运算,如果得到的数小于一个指定的值,就算成功。否则,要通过不断的尝试试错,来求解这个数。一般来说,指定的结果值,前面都是多个零开头,例如图3中对于固定的上下文,随机数选择123456,得到的值小于指定值,从而解决了该数学难题。这里充分利用了SHA256加密算法的伪随机性。

(3)区块链的数据结构

如图4(a)所示,一个区块链依托于一个P2P网络。节点可以有4种功能,即钱包、完整的区块链拷贝、挖矿和路由。路由功能是每个节点必需的,前3个功能,根据节点自己的需求来定。对于一个区块链拷贝来说,它记录了从2009年,中本聪建立创世区块以来,系统运行时记录的所有交易记录。如图4(b)所示,区块链分为区块头和区块体。区块头包含版本号、上一个区块的哈希值、Merkle根节点哈希值、时间戳、难度值、随机数和交易记录这些字段。区块与区块之间彼此相连,构成的一个链式结构,叫做区块链。这跟以前编写C语言,用指针实现链表是一个道理。不过,这里的指针,不是内存地址,而是将上一个区块的区块头,使用两次SHA256加密算法,得到的哈希值。

图4 区块链的数据结构

区块头没有包含任何交易记录信息,怎么能保证交易记录不被篡改?答案是,为了提高区块链的校验效率,把一个区块里的所有交易记录,构建成Merkle树这样的二叉树结构。如图4(c)所示,如果交易记录是奇数,图中的3个记录,剩下的二叉树节点由自己填补:图中的交易2和自己构成了一个二叉树。以此类推,直到根节点。二叉树的两个交易记录哈希值直接串联,作为下一个二叉树的输入。通过这种方式,如果有人更改任何一个交易记录,按照前面SHA256加密哈希的特性,Merkle根节点就会变动很大,以致其他节点在验证区块链的哈希值时,能够很明显地发现问题。

如图4(d)所示,区块体里记录了所有这个区块时间段里产生的交易记录,一个区块体至少包括一个交易,Coinbase交易,即创建这个区块,系统赠送给矿工的比特币交易。交易记录也是前后相连的链式结构,上一个交易记录的2次SHA256哈希值,说明了比特币的来源。如果需要交易,通过节点A的私钥,产生A的数字签名,和交易记录中的公钥相互验证授权,然后就可以按照节点B的地址,将比特币发送给节点B了。

(4)区块链的运行机制

如图5所示,用户A想把比特币支付给用户B,首先要知道用户B的钱包地址。B可以通过钱包,产生一对公私钥,通过一些处理,得到新的私钥和钱包B的地址。通过数字签名,B将钱包地址发给A。A根据B的地址,发起一个交易,通过自己的数字签名授权,将这个交易发给B,这时B已经收到了这些比特币,但是还不能用,因为没有得到系统的确认。之后,A向全网内所有人广播,告诉其他节点有关交易的信息。类似的交易重复发生,直到区块确权时间到,矿工们开始竞争记账权。首先,计算Merkle根节点的哈希值,然后不断调整区块头中的随机数,争取小于系统的设定值,此为工作量证明。第一个算出结果的矿工,得到系统给予的比特币奖励,也向全网广播这个消息。其他节点在收到该消息时,结束工作量证明,并对区块进行验证(随机数),如果验证合格,将区块接入到区块链的末尾。

相关的技术实现细节如下:

地址生成机制

图5 区块链的运行机制

B通过钱包,生成256位的私钥,基于椭圆曲线加密算法,得到有前缀的512位公钥哈希字符串;经过SHA256算法,得到256位的哈希加密字符串;通过RIPEMD160算法,得到160位的公钥哈希字符串;使用Base58算法,将二进制字符串翻译成人眼可识别的字符串,也就是B钱包的地址。

消息交互机制

在发送真正的广播之前,用户A将用户B交易的真实ID,通过Inv消息(InventoryMessage)发送给用户A在P2P网络中的所有邻居节点,邻居节点在收到Inv消息之后,会返回Getdata消息至用户A,用来“拉取”交易ID对应的交易详情。在邻居节点收到交易的所有信息之后,验证交易的合法性。主要看每个输入的比特是否是未使用的比特币,输入和输出的比特币必须相等。如果合法,重复用户A的动作,实现交易消息的广播。值得注意的是,这里的消息刷新是每100ms刷新一次。而且,A并不是把所有的交易记录都发给B,而是随机选取1/4交易记录发给B,然后B再跟他的邻居或者A拉取剩下的3/4交易记录,这种设计是为了降低网络的负载。

区块确认机制

上下文固定,只能通过随机数的不断尝试来进行暴力破解,争取小于系统要求的门限值。最后的胜出者将区块链入区块链的末尾,这里一定要指出,只是链接到末尾,而不是确认。区块链为了防止51%攻击,延迟6个区块再对这个区块进行确认。

(5)区块链的分叉和51%攻击

区块链的分叉是指同一时间段内全网不止一个节点能计算出随机数,即会有多个节点在网络中广播它们各自打包好的临时区块(都是合法的)。某一节点若收到多个针对同一前续区块的后续临时区块,则该节点会在本地区块链上建立分支,多个临时区块对应多个分支。该僵局的打破要等到下一个工作量证明被发现,而其中的一条链条被证实为是较长的一条,那么在另一条分支链条上工作的节点将转换阵营,开始在较长的链条上工作。其他分支将会被网络彻底抛弃。

区块链的分叉衍生出双花问题和51%攻击。双花问题,即双重支付,是指同一笔钱同时用作不同交易。一般来说,区块链可以有效杜绝这个问题。因为在同一个区块时间里,矿工有全局所有的交易记录,能够轻松识别同一份比特币被用到了两个不同的地方;如果不在同一个区块时间,那么经过一个区块的确认,权限已经转移,需要后者的私钥才能进行授权。目前,双花问题会跟51%攻击一起,被黑客用来进行撤销攻击。例如,黑客给B发送100比特币,B收到比特币以后,开始向黑客发送货物或商品。但是黑客通过新建一个区块分支,其中将交易改为100比特币交易给自己,然后开始和系统产生区块链的速率进行竞争。当黑客篡改的区块链高度大于系统区块链高度时,系统开始认可黑客的区块链,达到篡改交易数据的目的。

这个过程可以建模成二项式随机过程。其中,一个诚实节点创建新区块的概率为p,攻击者创建新区块的概率为q,p+q=1。

当Z等于-1时,区块链高度差等于-1,也就是意味着,黑客捏造的区块链超过系统生成的区块链,攻击成功。如图6(a)所示,当概率p等于51%时,经过模拟仿真,经过15轮的竞争,黑客达到了Z=-1,获得了成功,这就是“51%攻击”中,数字51的由来。如果攻击者不足网络全部算力的51%能进行有效攻击么?答案是可以,因为根据工作量证明机制,只要计算出一个符合规则的数就算是成功,答案并不唯一,有一点运气成分在里面。如图6(a)所示,图线并非是直线,有时也会有波动。

系统需要延迟6个区块用于确认。如图6(b)所示,当攻击者哈希比率恒定,延迟确认区块数越多,双花攻击成功率越低,要证明的工作量越多。但是在延迟区块大于6之后,减少的概率明显越来越低。此外,考虑到交易的延迟带来的用户体验差的因素,比特币区块链把延迟确认区块数定为6。

3 区块链的技术分类和意义

(1)区块链的技术分类(见图7)

从区块链的发展来看,区块链经历了3个阶段:

首先是记录价值信息,例如记录比特币的历史交易信息、记录山寨币的虚拟资产信息。

其次是记录商品服务的交易和位置信息,例如为管理产品交易和服务开发应用程序、为共享经济的物权交易开发应用程序。

第三是制定未来的规则,这个是智能合约的阶段。从智能合约以后,称之为区块链2.0时代,以前的称之为区块链1.0时代。

图6 区块链的51%攻击

图7 区块链的技术分类

从发展分类来看,一类是证明机制。可以将证明机制从工作量证明机制改为其他证明机制,例如股权证明机制(PoS)、拜占庭容错机制(PBFT)等;一类是刚刚说的,记录对象的不同;还有一类是入网许可的变动,以前的区块链是公共链,允许所有人接入,现在发展成联盟链和私有链,只有加入联盟的,才能链入区块链,或者直接在一个公司内部,部署区块链,叫做私有链;最后,还有一种是混合链,既可以公有接入,也能够支持企业私有化。

(2)区块链的意义

主要从从学术意义、应用意义和战略意义3个方面来看。

学术意义

在无信任的环境下,在整个网络中的任意节点建立起共识机制,而无需担心数据被篡改。区块链技术主要解决了“拜占庭将军问题”。拜占庭将军问题是指,在整个网络中的任意节点都无法信任与之通信的对方时,创建出共识基础来进行安全的信息交互而无需担心数据被篡改。

应用意义

随着数据库从集中式纵向扩展,向分布式横向扩展发展,纵向扩展就是通过添加内存、存储和CPU,增强单台机器的性能,这种纵向扩展会遇到吞吐量瓶颈等问题。分布式数据库通过横向扩展,提升了吞吐量和计算效率,也开启了大数据时代。分布式数据库主要分为以Storm为代表的流数据库,Hadoop为代表的批处理数据库,以Spark为代表的内存数据库和以Neo4j为代表的图形数据库。区块链的意义在于,增加了一个分支,基于时间轴的分布式数据库。

战略意义

基于创建信任的机器,促进价值的全球流动。如果说基于TCP/IP的第一代互联网实现了信息的全球流动,像WWW和HTTP协议,区块链就是把各个机构和个人映射到虚拟世界,基于数学这种人类文明的最大公约数,汇集世界上不同人群、不同权利群体的共识,实现了价值,或者说资产的全球实时流动。

华为站点能效SEE正式成为国际标准

近日,华为提出的站点能效SEE(SiteEnergyEfficiency)通过国际电信联盟ITU(InternationalTelecom Union)认证,ITU-TL.1350∶EnergyEfficiencyMetricsofBaseStationSite正式成为通信能源领域的国际标准。该标准的确立历经两年严谨的讨论与反复验证,将帮助全球电信运营商与铁塔运营商优选站点级高效整体解决方案有据可依,并能更好地衡量现网能源效率,制定更有效的能效提升计划,践行节能减排工作。

近两年,华为一直致力于积极推动该能效标准的国际化,通过业内各种展会对能效理念和成果进行推广,并相继在澳洲、中东、欧洲等地联合全球领先运营商和业界权威咨询机构举办全球能效专题峰会,深入研讨ICT能效话题和标准,SEE已获得广泛认同与支持。

华为携手产业伙伴成立边缘计算产业联盟

华为昨日宣布与6家联盟发起单位成立边缘计算产业联盟,并参加在京举行的首届边缘计算产业峰会。本次峰会题为“产业协同智赢未来”,华为与纵横OT、IT、CT领域的产业领袖和行业专家共同探讨边缘计算产业未来。在此次峰会上,华为阐释了在边缘计算产业中的定位和贡献,并展示了在能源、交通、智慧城市等行业中的数字化创新和实践应用。

边缘计算产业联盟(EdgeComputingConsortium,ECC)由华为技术有限公司、中国科学院沈阳自动化研究所、中国信息通信研究院、英特尔公司、ARM和软通动力信息技术(集团)有限公司6家单位共同发起组建。本次大会上,边缘计算产业联盟正式发布《边缘计算产业白皮书》,在业界首次提出“OICT”理念,旨在搭建边缘计算产业合作平台,推动OT与ICT产业的开放协作。

Technologyprincipleandsignificanceofblockchain

QINGSude,JIANGYing,WANGQiuye

At present,blockchain technology is a hotspot which caused the world wide attention and discussion.This article startswiththedefinitionandcharacteristicsoftheblockchain,thendiscussestheblockchaintechnologyprinciple,datastructure,operationmechanismandbifurcationofblockchain,andfinallyexpoundsthesignificanceoftheblockchain.

blockchain;distributedledger;SHA256

2016-11-20)

猜你喜欢
哈希比特区块
基于特征选择的局部敏感哈希位选择算法
哈希值处理 功能全面更易用
区块链:一个改变未来的幽灵
文件哈希值处理一条龙
区块链:主要角色和衍生应用
区块链+媒体业的N种可能
读懂区块链
比特币还能投资吗
比特币分裂
比特币一年涨135%重回5530元