区块链与量子计算

2018-06-15 01:17郭炜立杨宇光
信息安全研究 2018年6期
关键词:私钥公钥比特

郭炜立 杨宇光

(北京工业大学信息学部 北京 100124) (yesguoweili@163.com)

区块链是比特币等新型数字加密货币体系的核心技术.其优点是去中心化,而且能通过运用数字加密、时间戳、智能合约和经济激励的手段,在每个节点之间都不需要相互信任的分布式系统中实现去中心化信用的点对点之间的交易,从而能够解决很多中心化机构都普遍存在的低效率、高成本以及存储不安全等问题.在2016年10月18日,由工业和信息化部信息化和软件服务业司以及国标委指导下,中国区块链技术和产业发展论坛编写的《中国区块链技术和应用发展白皮书(2016)》[1]指出,区块链是分布式数据存储、点对点传输、加密算法、共识机制等计算机技术在互联网时代的创新应用模式.随着近几年比特币的不断普及与发展,区块链技术也呈现出越来越火热的态势,被人们认为是在大型机、个人电脑、互联网、移动社交网络之后计算范式的第5次颠覆式创新,是人类信用进化史上继血亲信用、贵金属信用、央行纸币信用之后的第4个里程碑[2].

2008年由一名化名为“中本聪”的学者在密码学邮件组发表的论文《比特币:一种点对点电子现金系统》[3],开启了区块链技术的新篇章.但目前在行业内还没有形成公认的区块链定义.从狭义上来讲,区块链技术是一种特定的数据结构,它按照时间顺序将每个数据区块以链的方式组合而成,并且是采用密码学方式保证的不可伪造及不可篡改的去中心化共享总账本(decentralized shared ledger),能存储在时间上有先后顺序的、简单的、可以在系统内验证的数据.区块链技术的广义定义则是利用密码学方式加密链式区块结构来验证与存储数据,利用共识算法来更新数据,用智能合约来编程和操作数据,是一种去中心化的基础架构与分布式计算范式.区块链技术具有去中心化、时序数据、共同维护、能编程、安全等特点.首先是去中心化.区块链应用纯数学方法建立分布式节点之间的信任,所以能形成去中心化的安全可信的分布式系统.第二是时序数据.区块链的链式区块结构带有时间戳,所以在存储数据时能为其增加时间维度,从而使数据具有极强的可追溯性和可验证性.第三是共同维护.区块链系统采用经济激励机制使分布式系统中所有节点都可参与数据区块的验证过程(类似于比特币的“挖矿”过程),通过共识算法来选择特定的节点,将新的区块添加到区块链上.第四是可编程.用户可以使用区块链技术提供的灵活的脚本代码系统来创建高级智能合约或其他的去中心化应用.例如,以太坊(Ethereum)平台为用户提供了图灵完备的脚本语言,以构建任何可以精确定义的智能合约或交易类型[4].最后是安全.区块链技术采用的数据加密系统是基于非对称密码学原理,同时利用工作量证明等共识算法形成的强大算力抵御外部攻击,能够保证区块链数据不可篡改和不可伪造,所以具有较高的安全性.

1 区块链技术分析

区块链是把数学、密码学、演算法和经济模块等技术整合在一起形成的一种新型的存储、记录和表达方式.其中区块链的核心技术主要包括以下几个方面.

1.1 区块和链

区块链由一个个的数据区块连接在一起而形成,数据区块分为区块头(Header)和区块体(Body)两部分.其中区块头包括当前区块版本号(Version)、前一个区块的散列值(Perv-block)、当前区块的目标散列值(Bits)、当前区块PoW共识过程的解随机数(Nonce)、Merkle根节点散列值(hashMerkleRoot)以及时间戳(Timestamp).区块体中包括当前区块的交易数目(TransactionCounter)和经过验证的、区块创建过程中生成的所有的交易记录(Transactions).这些记录将通过Merkle树的散列运算过程生成独一无二的Merkle根并记入区块头.每一数据区块都是通过“前一区块的散列值”指向前一个区块,从而形成一个巨大的链条,该链条可以一直追溯至源头即创世区块,创世区块的“前一区块的散列值”为0.Merkle根的生成过程是将区块主体中所有交易的散列值逐级两两散列计算而形成,其主要作用是用于检验一笔交易是否存在于这个区块中.比特币网络系统可以动态调整PoW共识过程的难易程度,第1个找到正确的解随机数Nonce,且通过全体矿工验证的矿工会获得目前区块的记账权.值得一提的是,如果2个矿工在短时间内同时“挖出”2个新的区块并且加以链接,区块主链就可能会出现“分叉”现象,解决分叉问题的方法是约定矿工选择延长累计工作量证明(PoW)最大的区块链.简单来说就是当主链产生分叉后,后续区块的矿工通过计算和比较,把区块链连接到当前累计工作量证明最大的备选链上,形成长度更长的新主链,进而解决了分叉问题.区块链通过添加时间戳来记账,使其形成了一个不可篡改且不能伪造的交易数据库.

1.2 非对称加密

非对称加密是在加密和解密过程中分别使用公钥和私钥2个非对称的密码.非对称密钥对具有2个特点:1)用其中的一个密钥(公钥或私钥) 加密信息,该加密信息只有用另一个对应的密钥才能解开;2)公钥可以公开、私钥则需要保密,任何人无法通过公钥推算出相应的私钥.以比特币系统为例,其通过调用操作系统的随机数生成器生成一串256 b的随机数来作为私钥,这样生成的比特币私钥总量可达,而且极难通过遍历所有的私钥空间来获得存有比特币的私钥[5].为了方便识别,如图1所示,通过Base58和SHA256散列算法转换,将256 b二进制形式的比特币私钥转换成50个字符长度的且易于识别和书写的私钥给用户;而比特币的公钥是由私钥先经过Secp256k1椭圆曲线算法计算后生成长度为65 B的随机数.该公钥可用于比特币交易时使用的地址,成过程为先将公钥进行RIPEMD160和SHA256散列运算并生成长度为20 B的hash160结果,再经过SHA256散列算法和Base58转换形成33个字符的比特币地址[6].区块链的所有权信任基础是基于数学的,利用非对称加密算法保障交易数据的安全可信,每一个节点都配备一个私钥和公钥,而且公钥的生成过程不可逆.公钥公开给区块链网络上的所有的节点,但私钥仅本节点拥有.交易时用私钥加密后发送,接收方可以用发送方的公钥解密.

图1 比特币非对称加密系统

1.3 分布式账本

所谓分布式记账本,即分布在不同地方的多个节点共同完成交易记账,网络中的每个节点都会有验证区块数据、网络路由、传播区块数据、发现新节点等功能.因为网络中所有的交易记录也会记录在每个节点中,所以它们都可以参与交易的合法性监督,也可为某一交易作证.按照节点的存储数量可以分为全节点和轻量节点.全节点保存有自创世区块到目前最新区块为止的所有区块数据,而且会动态更新主链,实时参与区块数据的校验和记账.其优点在于不用依赖任何其他节点就能够独立完成任意区块数据的更新、查询和校验.缺点则是全节点的空间维护成本较高.由于记账节点有很多,理论上除非将所有节点都破坏,否则账目就不会丢失,这样就保证了账目数据的安全性.区块链采用分布式记账、分布式存储、分布式传播,从而保证了系统内的数据存储、交易验证、信息传输都是去中心化的.

1.4 共识机制

网络中的各个节点之间如何有效的达成共识这就是共识机制,确认一个交易的有效性,既是认定的方法也是防止篡改的手段.区块链技术的优势之一就是可以在决策权高度分散的去中心化系统中使各节点高效地针对区块数据的有效性达成共识.区块链有4 种共识机制,分别是工作量证明(PoW)、权益证明(PoS)、授权股份证明机制(DPoS)和验证池(Pool).在不同的应用场景这4种共识机制各具优势,例如比特币采用的就是工作量证明机制.工作量证明的强大计算能力为区块链的安全性和不可篡改性提供了有力保证,假设有恶意攻击者想要篡改或攻击区块数据,都必须重新计算这个区块和它后面所有区块的工作量,而且只有在控制了超过全网51%的节点计算力并且计算速度需要使伪造链长度超过主链的情况下,才可能伪造出一条不存在的记录,然而这种攻击的难度将会使其成本远超其收益.

PoW共识机制对于比特币是具有重要意义的创新,其近乎完美地整合了比特币的货币发行、验证和交易支付等功能,并通过算力竞争来保障系统的安全以及去中心性;但是PoW共识机制同样存在着显著的缺陷,其强大算力会造成资源浪费(如电力)而且交易确认时间长达10 min,使其不适合小额交易的商业应用.

1.5 智能合约

智能合约简单来说就是一种协议,它采用编程语言(脚本),是基于可信的、不可篡改的数据,会使系统能处理一些无法预知的交易模式,当约定的条件得到满足时,系统就会自动地执行一些预先定义的规则和条款.比特币采用的是一种简单的、基于堆栈、自左向右处理的脚本语言,脚本本质上是附着在比特币交易上的一组指令的列表.比特币交易依赖于锁定脚本和解锁脚本加以验证,在比特币交易中二者的不同组合可衍生出很多的控制条件.其中,锁定脚本当作是附着在交易输出值上的“障碍”,它规定了以后花费这笔交易输出的条件;解锁脚本则是当被锁定的脚本在一个输出上设定的花费条件被满足时它将允许输出被消费.

2 区块链分类

2.1 公有区块链

公有链是指任何人都能读取都能发送交易而且交易都能获得有效的确认、任何人都能参与其共识过程的区块链.公有链通常被认为是“完全去中心化”无管理机构、无官方组织、无中心服务器.公有区块链是世界上存在最早的区块链,也是目前应用最广泛的区块链,公有区块链具有保护用户免受开发者影响,且访问门槛低,所有数据都默认公开的特点.

2.2 私有区块链

私有链指的是其写入权限在企业或者个人手里的区块链.但是读取权限对外开放.其特点是交易速度非常快,交易成本很低甚至为0,能给隐私以更好的保障,且有助于保护基本的产品不会被破坏.

2.3 联盟区块链

联盟区块链介于公有区块链和私有区块链之间,对特定的组织团体开放.在某组织内部指定几个预选的节点为记账人.预选节点参与共识过程,而且每个块的生成由这几个选出的预选节点共同决定,其他的接入节点可以参与交易,但是不可以过问记账过程.

3 区块链技术的特点和优势

3.1 区块链技术的特点

用去中心化结构提高运作效率降低运营成本.区块链技术的信任机制是建立在数学原理基础之上,这就可以使区块链系统中的人们在无需了解对方基本信息的情况下进行可信任的价值交换,在信息安全的同时也保证了系统运营的高效率与低成本.

数据信息完整透明使得区块链符合法律要求和便于追踪.因为区块链把从创世块到现在的所有交易都明文记录在区块中,而且形成的数据记录不可篡改,因此可以查询或追踪到任何交易双方之间的价值交换活动.这种完全透明的数据管理体系可以为现有的审计查账、物流追踪、操作日志记录等提供可信任的追踪捷径.

用分布式方法记账与存储可以提高容错性.由于区块链将记账与存储功能分配给每一个参与的节点,因此不会出现集中模式下的服务器崩溃的风险.分布模式的使用能让区块链在运转的过程中有非常强大的容错性功能,即便是数据库中的一个或几个节点出错也不会影响到整个数据库的数据运转.

智能合约使区块链有灵活的可编程性.区块链技术基于可编程原理内嵌入了脚本的思想,这就为今后基于区块链技术的价值交换活动增加了一种智能的可编程模式.

全球共用一个数据库提高了业务包容性.基于区块链技术建立的数据库是一个可以在全球范围内运行的超级大数据库,区块链所有的价值交换活动(例如开户、登记、交易、支付、清算等)都可以在这个数据库中完成,业务模式具有极高的包容性.

透明世界背后的匿名性——保护隐私.区块链的信任基础是通过纯数学方式建立起来的,能让人们在互联网世界里实现信息共享的同时,不暴露在现实生活中的真实身份.区块链上的数据都是公开透明的,但数据并没有绑定到个人.透明世界的背后具有匿名性特点.

3.2 区块链技术的核心应用优势

在了解区块链的技术原理及特点之后,就能发现区块链技术的核心价值所在.在无需系统内各节点互相信任的情况下,系统能保证一切数据的记录都是真实有效的,从而形成了一个诚实有序的去中心化分布式的数据库,而且用户可以对系统内参与交换的价值进行灵活地编程.

去中心化的分布式结构:能够节省大量的中介成本.由于区块链技术能使人与人之间在不需要互信的情况下进行大规模的协作,所以其可以被应用于许多的传统中心化领域,用来处理一些原本由中介机构处理的交易.

不可篡改的时间戳:能解决信息防伪和数据追踪问题.在当今社会中,大量的假冒信息与数据困扰着我们的生活.而区块链技术能够很好地进行数据追踪以及辨别信息真伪.因为区块链中数据之间前后相连形成了一个不可篡改的时间链,就像为所有的物件贴上一套不可伪造的真实记录,这对于现实生活中打击假冒产品和整顿信息纪律等都有巨大的帮助.

安全的信任机制:可解决如今物联网技术上的致命缺陷.传统的物联网是由一个数据中心来收集所有信息,这样就会导致设备的生命周期等方面存在严重缺陷.区块链技术能在无需信任单个节点的同时创建整个网络的信任共识,从而能从根本上解决物联网这一致命缺陷,使物与物之间不仅相连,而且能自发活动起来.

灵活的可编程特性:能够使区块链帮助规范现有市场秩序.由于当今的市场秩序不够规范,在转移自己资产时无法保证其能在未来发挥应有的价值.如果将区块链技术的可编程性引入,在资产转移的同时编辑一段程序写入其中,能有效地规定资产今后的用途与方向.

4 量子计算的优势和算法

随着信息化时代的飞速发展,人们对于信息处理速度方面的需求也越来越高,当今的计算机硬件水平已经很难再出现突破性的发展,已不能满足人们在信息处理速度方面的需求.然而在19世纪初期提出的量子力学理论给计算机带来新的发展契机,量子具有独有的相干性以及纠缠性等特性能够为量子计算提供完全与经典计算不同的独特运算方式.在经过了近一个世纪的发展后,美国国家标准技术研究院于2009年研制出了世界上第1台通用编程量子计算机.量子计算是基于量子力学原理进行有效计算的新型计算模式,它能够利用量子的叠加性、纠缠性以及量子的相干性来实现量子的并行计算,从而量子计算可以从根本上转变传统的计算理念.

4.1 量子计算的优势

1982年美国物理学家费曼(R.P.Feynman)提出量子计算概念,但由于量子态的测不准原则以及量子系统容易受噪声干扰,量子运算很容易出错.直到1994年美国计算机专家Shor证明了量子计算机能快速分解大因数,并实现了第1套量子算法编码,量子计算以及量子计算机的研究才进入实验时代.

经典比特具有0和1这2种状态.量子比特与经典比特的不同之处在于:一个量子比特除了可以像经典比特一样处于0和1这样的状态之外,还可以处于既非0又非1的状态,这个中间状态称为叠加态(superposition).量子叠加态是决定量子计算不同于经典计算的关键特性之一,也是量子并行计算的理论基础.相同位数的寄存器,量子计算机可以记录的信息量是传统计算机的指数倍,其运算速度和信息处理能力是经典计算机所无法比拟的.因此,量子的并行计算体现了量子计算最重要的优越性.

4.2 量子算法

量子计算科学的重要部分即是量子算法,在过去的十几年中,量子算法得到了广泛的发展且取得了惊人的成就.基于Grover的量子搜索算法和基于Shor的量子Fourier变换算法是目前已知的最为成熟的2种量子算法.早在1989年Deutsch就首次提出了Deutsch量子算法.该算法首次很好地展示出了量子计算机的并行性.1994年,Shor提出了大数质因子分解量子算法并且将该算法的量子编码进行了实现,在此之后,Grover数据库搜索算法、量子智能算法等量子算法也相继被提出[7],各国也相继展开对量子算法的研究工作.

4.2.1Shor大数质因子分解算法

1994年,Peter WillistonShor提出了基于离散对数问题和大整数质因子分解问题的量子算法,证明了这2个复杂的问题都属于BQP类,这一发现不仅使人们第1次清楚地认识到量子计算独特的优势和重要应用前景,而且极大地促进了量子计算的发展.此后,世界众多研究小组纷纷加入了该项研究行列.得益于此,量子计算研究的许多领域取得了重大进步,Shor提出的量子纠错也同样重要,这项研究使容错的量子计算变为可能.在密码学领域量子计算也取得了迅速的发展,Shor算法的重要性不言而喻,因为它代表我们可以使用量子计算机来破解目前广泛使用的公开密钥机密算法,这将意味着政府、军事及金融机构等重要单位的RSA公钥密码体系的安全性将会面临致命的威胁,仅仅这一点就能引起人们对量子算法的足够重视.

在目前提出的量子算法中,Shor算法已经发展得相当成熟,其改进和优化的空间不大.该算法不仅有着传统算法无法比拟的优势,而且其表现出的实际应用价值以及巧妙的理论构思都十分宝贵.

4.2.2Grover数据库搜索算法

Grover算法在解决从无序数据库中搜索某个特定数据的问题上有独特的优势.Grover算法利用量子的并行性,并不像Shor算法一样实现解决问题的指数加速,然而搜索算法在广泛应用性上却很好地弥补了这一点.Grover算法可以作为通用算法解决现实中有许多问题,比如图的着色问题、密码的穷举攻击问题、排序问题及最短路径问题等.事实上,Grover算法目前已经在光学系统和核磁共振中得到实现.

4.2.3量子智能算法

自从Shor算法和Grover算法相继提出以后,量子计算方法以其独特计算方式和在信息处理方面表现出的巨大潜力引起了研究者们的广泛关注.虽然许多的研究者在量子算法领域投入了大量的研究,但迄今为止并没有取得实质性的突破.而智能算法一直都是算法研究领域的一个热点,将量子理论原理和智能计算相结合而产生的量子智能算法具有众多优点,比如在避免早熟现象和加快算法的收敛速度等.利用量子并行计算特性可以很好地弥补智能算法中的某些不足之处.

目前己存在的量子智能算法研究包括:量子进化算法、量子退火计算、量子神经网络、量子免疫计算和量子聚类算法等.其中,量子进化算法和量子神经网络已经成为了目前学术研究的热点并且取得了不错的成绩.

目前量子进化算法的应用研究领域还处于初级阶段,未来量子进化算法的研究还有很长的路要走,很多的理论和应用研究还需要进一步深化和推广,研究的空间还很大.

5 量子计算对于区块链的威胁

区块链技术作为比特币的核心技术,想了解量子计算对于区块链产生怎样的威胁,首先要知道比特币系统中采用什么样的安全协议,比特币的安全协议涉及2种类型密码学,即在比特币“挖矿”过程中使用的散列函数以及用于在区块链上提供数字签名的非对称密码术.

对于比特币而言,新比特币通过“挖矿”生成,进行“挖矿”工作的人被称为“矿工”,挖矿的过程就是矿工利用计算机来计算比特币网络中数学问题的过程.第1个解决问题的矿工公布其答案,并计入账本,同步计入比特币网络中的所有节点,这就表示挖矿成功,比特币系统就会奖励矿工一定数量的比特币.不对称密码术则用于比特币区块链交易的授权,公钥密码系统(Public Key)会为整个链上的每个用户分配1个公钥和1个私钥,公钥密码系统会使用1对公钥和私钥来加密信息:公钥可以广泛共享,私钥只有密钥所有者才知道.任何人都可以使用接收者的公钥来加密消息,但解密消息只有通过接收者使用其私钥才能进行.这样的非对称密码算法使用过程就称为椭圆曲线数字签名算法(ECDSA),通过一个给定的私钥,很容易推算出相对应的公钥,但是反过来推算很困难,这就体现出现在比特币的安全性.

5.1 量子计算对挖矿的威胁

比特币所使用的技术之一是SHA-256,它是一种加密散列函数,可以将任意输入数据转换成256 b串(“散列”).使用SHA-256散列函数为每一个区块计算一个随机数.虽然得到的结果很容易被验证,但是搜寻的过程却很难.比特币挖掘包括查找输入(“随机数”)的搜索问题,再加上最近的一个块的信息,这些信息生成的散列值小于目标值T,可以被认为是有效的比特币散列的最大数字.通过不断调整目标值,使得块之间的平均时间为10 min(在写入目标时大约为T=8.9×1011,远小于2256=1.2×1077).如果有可能找到一个量子算法来有效地转化SHA-256,那么我们可以很容易地找到比特币.然而,比特币的价值就体现在找到这样的解决方案的难易程度上.目前人们认为没有有效的经典的或量子的算法,可以转化为SHA-256.因此,唯一的方法是使用蛮力搜索,这意味着需要尝试不同的输入,直到找到一个满意的解决方案为止.

量子力学中的Grover搜索似乎可以完美地解决这类问题,并有一个二次量子加速.让我们看看这个策略在与传统计算机进行比较时的工作效果如何.从经典的角度来看,使用猜测来挖掘一个块的成功概率是Trt2256,其中r是散列率(每秒作出的猜测次数),t是以秒为单位的时间.对于运行Grover算法的量子矿工,成功概率是其中rq是每秒Grover迭代次数,我们称之为“量子散列率”.

现在的古典和量子矿工之间存在着不同的心态,因为比特币被设计为平均每10 min(600 s)寻找一个新的块,因此搜索问题的性质就在这时发生了变化.为了使Grover程序能够给出高的成功率,量子矿工应该在问题改变之前运行他们的算法一段时间,然后再进行测量.与此同时,古典矿工在这段时间尝试了尽可能多的随机数.所以量子矿工希望古典矿工在Grover进化过程中找不到解决问题的办法.由于区块之间的区间遵循指数分布,区块数量仍然可以由开采成功的概率给出.假设量子计算机在给定的时间内运行成本不变,那么量子比特币挖掘的盈利就是这样:

其中,R是奖励,C是运行量子计算机的成本.

比特币的开采是否有利可图呢,假设一台量子计算机每小时的使用成本与经典计算机相同,并使用今天的比特币价格、区块奖励和挖掘难度.我们估计,量子比特币的开采将以48khashs的量子散列速率实现盈利.相对于目前最好的经典比特币挖掘硬件,其散列速率为125khashs,这些数字可能看起来很有希望,但我们需认识到传统的比特币矿商可以实现巨大的散列速率,因为随机猜测的挖掘算法可以很容易地实现并行化.问题是不管有多少的量子位,量子优势不会超过因子的因此,虽然有量子优势,但它并不是不可克服的,并不是古典的并行无法击败它的.对于一个散列速率比最低的48khashs低的量子计算机,人们只需要借助于经典的量子计算机并行化.例如,如果量子散列速率是3khashs,那么需要1 300个量子计算机才能比得上最佳的经典采矿硬件,而且这些硬件可以在今天随时购买.因此,要使量子采矿获利,就需要相当快的量子散列速率和更强的量子加速.这种情况在未来可能还会发生,但对于目前的情况来说,古典采矿似乎很难被击败.

在比特币系统中,虽然经典计算机的算力和挖矿的成功率有一定关系,但是算力大也并不是意味着一定能挖到矿(在你的总算力没超过全网络算力50%的情况下),挖矿的成功率和运气也有一定程度的关系,就像走迷宫一样,即便是一个人走得快,如果他每条路都试一下,他肯定可以到达迷宫终点,如果一个人虽然走得慢,但只用一次尝试就能走到了迷宫的终点.所以,走得慢的人也有赢走得快的人的可能性,同理,算力强大的矿工也并不一定能比算力小的矿工先挖到矿.在区块链系统中,如果一个矿工组掌握着整个网络中51%的算力,那么他就能垄断整个区块链,因为他永远会比剩余的49%算力的矿工组更快地处理区块,也就是说他将会得到之后产生的所有比特币.

戴夫士·阿加沃尔(Divesh Aggarwal)和新加坡国立大学(NUS)的研究人员对量子计算机将会威胁到挖矿的问题进行了深入研究,并且在2017年10月就此发表了论文,首先他们认为在未来至少10年内,使用ASIC挖矿的速度会比量子计算机快,但是过了10年后,量子计算机的挖矿速度将会飞速增长.

5.2 量子计算对加密算法的威胁

为了保证比特币只能被合法拥有者使用,其使用了椭圆曲线数字签名算法(ECDSA).简而言之,它基于公钥密码术,比特币的所有者可以使用他们的私钥对交易进行唯一的签名,而其他人可以通过他们的公钥来验证它是否真实.椭圆曲线密码在量子计算中很容易受到攻击,因为Shor的算法可以很容易将其修改,以解密带有椭圆曲线的消息,也就是说,可以用量子计算机从公钥中找到私钥,我们可以把这个解密过程同样地比作走迷宫,经典的计算机只能很傻地每个方向走,直至走到死胡同才会返回来重新选择别的方向,然而量子计算机会给你一个上帝视角,通过俯视整个迷宫就会一目了然地得到该走的路.这似乎暴露了比特币的一个弱点,但事实上量子计算机需要一定数量的量子比特才能达到这种效果,有外媒称一个4 000个量子比特的量子计算机可以瓦解区块链,如果哪个组织或个人先做出并能够应用这样的量子计算机,他就能解出并且验证每一笔交易,以后将会产生但还未流通的加密货币都会被其垄断.但是以目前的量子计算机水平还不能达到这种效果.况且比特币有几个安全保障措施可以防止这种情况发生.首先,你的地址不公开密钥.比特币协议首先将公钥通过SHA-256函数进行散列,然后通过RIPEMD-160函数来生成地址.由于公钥只有在比特币被使用时才显示出来,因此只有在交易中公开密钥后才会受到量子计算机的攻击.在每次事务之后生成一个新的地址,这种情况很容易得到补救.当量子计算机普及大众,大多数比特币客户可能会在每次交易后转向自动密钥生成,这可能会减少某些应用程序的方便性.例如,您将无法打印出一个地址二维码并永久地用作收银机.

另一种可能性是,一旦在待交易中公开密钥被泄露,一个恶意的参与者Eve使用量子计算机可以在交易完成之前偷走比特币.在交易完成之前,Eve只有10 min的时间才能找到私钥.在实际操作中,比特币交易通常会在一个非官方的待决池(“存储池”)中停留1 h或更长时间.对256位ECDSA大约需要1 500量子位和6×109,还需要添加一个量子位[10].每一个量子位需要9个量子门.因此,要在1 h内执行这类攻击,量子计算机需要执行大约660 MHz的门运算速度.对量子比特数和速度的要求可能使得这一点具有挑战性,至少在近期是如此.

假设你能同时破解SHA-256和RIPEMD-160,那么在现有的地址下你很容易从别人手中拿走钱.但是这个问题基本上与为区块链添加块(即挖掘)而发现散列冲突的问题相同.该理论认为,只要偷比特币所需的计算能力远远高于比特币的计算能力,任何能窃取比特币的人都将取代挖掘比特币.量子计算并不能很好地改变这一逻辑.在经典计算机上进行散列碰撞攻击,需要尽可能地生成钱包,而在后量子世界中,可以先检查散列函数的原始输入,私钥可以在事后识别.因此,在碰撞攻击中得到一个常数因子加速.除此之外,比特币对散列碰撞攻击的现有安全性依然存在.虽然没有证据证明其他的漏洞是不存在的,但目前没有理由相信存在这样的漏洞.我们唯一的保证是,比特币已经存在了很多年,尽管有巨大的财务激励,但没有人对它进行黑客攻击.虽然我们不排除这种新型量子算法的可能性是为了黑客或采矿的目的而发明的,但也是不容小觑的.

6 结束语

量子计算机是注定要发展下去的,而且终将有一天会威胁到区块链,但是似乎很多的区块链专家们还没有提高警惕.

在2017年11月召开的Crypto 2017会议(顶尖区块链密码技术人员会议)上,有一位专家表示,这将是一个“十分昂贵的操作”,可能需要“政府级”的支出,而另一位专家完全不担心这个问题,他表示,等到实用量子计算机研究出来时,公钥密码系统早就已经发展到不用担心量子计算机威胁的程度了,所以这个问题不必放在心上.

但是有一个观点是这些专家们都认同的,那就是量子计算机的出现将危及所有的现有加密方法(其中包括RSA令牌)的安全性.量子计算机将威胁整个金融和银行业的安全,不仅仅是区块链.

与此同时,也有相关机构对此表示极为重视,早在2015年,美国国家安全局(National Security Agency, NSA)就宣布正在研究量子密码系统,即可以抵抗量子计算的加密系统.在当今学术界,也有许多密码学专家致力于研究量子密码学,并且已经有了实施量子密码学的区块链项目,例如,俄罗斯量子中心的Evgeny Kiktenko团队和Quantum Resistant Ledger团队正在积极研究构建能够抵御量子计算机攻击的量子区块链,而且已经有标准的量子密码系统可以实现商用.

目前,任何人都无法准确预测实用量子计算机何时诞生,但是用积极的眼光看,因为如今的科技发展是加速的,所以商用量子计算机的诞生速度可能超乎我们的想象.区块链和加密货币等新兴技术或许处于萌芽时期,达到技术成熟还有很长一段路要走,开发人员需要注意在这个过程中会出现的一系列潜在威胁,这其中就包括量子计算.

[1]周平. 中国区块链技术和应用发展白皮书[M]. 北京: 工业和信息化部, 2016

[2]Swan M. BlockChain:Blueprint for a New Economy[M]. Sebastopol, USA: O’Reilly Media Inc, 2015

[3]Nakamoto S. Bitcoin: A peer-to-peer electronic cash system[OL]. 2009 [2018-03-15]. https:bitcoin.orgbitcoin.pdf

[4]Buterin V. A next-generation smart con-tract and decen-tralized application platform[OL]. [2018-03-15]. https:github.comethereumwikiwikiWhite-Paper

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

[6]Antonopoulos A M. Mastering Bitcoin: Unlocking Digital Crypto-Currencies[M]. Sebastopol, USA: O’Reilly Media, Inc, 2014

[7]Grover L K. A fast quantum mechanical algorithm for datbase search[C]Proc of the 28th ACM Symp on Theory of Computating. New York: ACM, 1996: 212-219

[8]Grover L K. Quantum mechanics helps in searching for a needle in a haystack[C]Proc of Quantum Entanglement and Quantum Information. 1999: 325-328

[9]Boyer M, Brassard G, Høyer P, et al. Tight bounds on quantum searching[J]. Fortschritte Der Physik, 2015, 46(45): 493-505

[10]Proos J, Zalka C. Shor’s discrete logarithm quantum algorithm for elliptic curves[J]. Quantum Information & Computation, 2003, 3(4): 317-344

猜你喜欢
私钥公钥比特
清扫机器人避障系统区块链私钥分片存储方法
比特币的安全性到底有多高
案例教学法在公钥密码体制难点教学中的应用——以ssh服务中双向认证为例
Spatially defined single-cell transcriptional profiling characterizes diverse chondrocyte subtypes and nucleus pulposus progenitors in human intervertebral discs
神奇的公钥密码
一种基于虚拟私钥的OpenSSL与CSP交互方案
比特币还能投资吗
国密SM2密码算法的C语言实现
比特币分裂
P2X7 receptor antagonism in amyotrophic lateral sclerosis