量子时代的区块链 云安全联盟量子安全工作组地址:https://cloudsecurityalliance.org/working-groups/quantum-safe-security/云安全联盟大中华区区块链安全工作组地址: https://c-csa.cn/research/union-detail/i-22.html @2020云安全联盟-保留所有权利。本文档英文版本发布在云安全联盟官网 (https://cloudsecurityalliance.org),中文版本发布在云安全联盟大中华区官网(http://www.c-csa.cn)。您可在满足如下要求的情况下在您本人计算机上下载、存储、展示、查看、打印此文档:(a)本文只可作个人信息获取,不可用作商业用途;(b)本文内容不得篡改;(c)不得对本文进行转发散布;(d)不得删除文中商标、版权声明或其他声明。在遵循美国版权法相关条款情况下合理使用本文内容,使用时请注明引用于云安全联盟。 致谢 本文档《量子时代的区块链》(BlockchainsintheQuantumEra)由CSA量子安全工作组专家编写,CSA大中华区区块链工作组专家翻译并审校。 中文版翻译专家: 组织者:刘洁 贡献者:姚凯、余晓光、吴潇、杨喜龙、王贵宗、邓辉、于乐、张威、赵刚主要审核者:黄连金、刘洁 贡献单位:华为、天融信、吉大正元、宇链科技 英文版原创作者: 主要作者:BrunoHuttner 贡献者:JohnHooks、AaronKent、JohnYoung 审核者:BoulevardAladetoyinbo、AndrewBrick、NadiaDiakun-Thibault、KenHuang(黄连金)、AshishMehta、UrmilaNagvekar CSA员工:HillaryBaron、AnnMarieUlskey(GraphicDesign) 在此感谢以上专家。如译文有不妥当之处,敬请读者联系CSAGCR秘书处给与雅正!联系邮箱:info@c-csa.cn;云安全联盟CSA公众号: 序言 首先祝贺《量子时代的区块链》(BlockchainsintheQuantumEra)的中文版本的发布,这本白皮书由CSA量子安全工作组专家编写,CSA大中华区区块链工作组专家翻译并审校。 量子计算技术的飞速发展,使得采用量子计算机攻击区块链的现实威胁越来越近。量子计算机可以执行传统计算机无法执行的计算,威胁到区块链中使用的几种密码学原语。一些公司和世界各国政府已经建造了具有有限输入规模和有限计算量的小型量子计算机,有些量子计算机甚至可以通过互联网访问,并可用于测试量子算法。 量子技术的发展对于区块链的安全有什么影响?这本文档总结了区块链的技术和可能受到量子计算破解的区块链密码学算法,分析了一些主流区块链网路的密码学算法和量子计算的关系,包括比特币、以太坊、超级账本框架(HLF)和Zcash,同时分析了抵抗量子破解的密码学算法和在区块链中的应用。文章深入浅出,值得大家参考。 李雨航YaleLiCSA大中华区主席兼研究院院长 目录 致谢3 序言4 1.简介6 2.区块链概述6 2.1区块链是什么?6 2.2它是如何开始的:比特币和加密货币6 2.3新范式:智能合约7 2.4新兴区块链应用7 3.量子时代8 4.区块链使用的主要密码学工具9 4.1随机数生成9 4.2哈希函数9 4.3公钥签名10 5.几种区块链技术的风险分析11 5.1比特币11 5.2以太坊12 5.3超级账本框架(HLF)13 5.4Zcash13 6.未来解决方案14 6.1量子安全签名与加密11 6.2后量子区块链签名属性12 6.3标准化下的后量子签名13 6.4量子区块链15 7.结论:从前量子到后量子区块链的转变18 附录:名词表19 1.简介 区块链等分布式账本技术(DLT)正作为跨越多个细分市场的众多应用程序的一部分进行部署。开发人员利用区块链去中心化、不可篡改、加密安全和透明的特点,发挥其在数据冗余、不可篡改和增强审计/合规方面的优势。区块链基础设施广泛使用数字签名算法、哈希算法和公钥加密技术。量子计算技术的飞速发展,使得量子计算机网络攻击的前景变得非常现实。例如,可见于最近CSA发表的关于量子威胁的文章。 因此,目前正在采取措施来设计用于抵抗量子计算机攻击的加密算法,用来增强当今的DLT/区块链基础设施。这些后量子算法是基于量子计算机很难用Shor算法或Grover算法来解决的计算问题。本文介绍了DLT/区块链技术及其一些代表性应用,并总览了目前正在积极研究的领先的后量子算法中有代表性的部分。 2.区块链概述 我们假设读者对区块链有一定的了解。如果没有,我们推荐以下相关资料:CoinDesk的区块链介绍或NIST的区块链技术介绍。这里我们简要回顾一下区块链主要的思想和工具。 2.1区块链是什么? 区块链是一个去中心化的分布式帐本,在一个多节点网络上,具有特定的更新机制,确保所有节点之间的同步。帐本由包含交易的区块互相链接组成。用户创建一笔交易,这些交易必须通过网络中的节点验证后才能追加到账本。为了保证数据不可篡改,整个数据结构被加密过程保护:通过网络验证的交易不能被篡改。 区块链主要基于两个密码学原语,密码哈希函数和公钥签名。签名有两个目的,它们允许用户使用其私钥对他们的交易进行身份验证,并使区块链能够使用公钥验证其有效性。哈希函数提供了不可变性:一旦交易块的哈希在区块链上发布,该交易就无法被修改。然后这个哈希值将包含在下一个交易块中,再下一个区块也是一样,如此继续,建立一连串的交易块,即区块链。恶 意节点对前期交易块的任何修改都会转化为对所有后续区块的修改,这将很快被诚实节点发现并拒绝。 2.2它是如何开始的:比特币和加密货币 从历史上看,第一个区块链也是现在应用最广泛的区块链应用是比特币。比特币中每一笔交易都是以货币形式出现。比特币是第一个加密货币。此后,基于类似的原理,人们发明了许多其他加密货币。加密货币的主要优点是去中心化、有限的匿名化和公开验证的交易的不可篡改性。 2.3新范式:智能合约 区块链结构还可以应用于不同类型的交易。例如,在以太坊区块链中,交易也可以由一些软件支持,这些软件可以在满足一组条件时执行。这就是“智能合约”的基础,它是新兴应用程序的核心。 2.4新兴区块链应用 区块链技术的内在特征使其成为一种颠覆性技术,能够跨多个细分市场进行创新业务转型。它的去中心化和不可篡改的特性可以使交易双方超高可信的执行交易、验证交易和审计历史交易。虽然过往区块链技术一直是以比特币为代表的加密货币的代名词,但智能合约的功能为自动化业务流程和工作流提供了最大的变革潜力。简要回顾一下其他细分市场中的一些新兴应用案例,可以帮助说明区块链应用程序在未来的量子计算机攻击中所面临的风险越来越大。 金融服务——清算和结算。使用区块链技术可以大幅减少金融资产交易或兑换的清算和结算时间。一个基于区块链的服务可以自动更新数据库/注册表以及相关的工作流,可以将这个时间间隔从几天缩短到几分钟。更多细节可参见惠普关于金融行业区块链的技术意见书,以及CSA发表的另一篇关于区块链用例的论文。 身份管理服务。区块链技术特别适合支持分布式身份管理服务。可以在区块链上为每个人创建一个加密的安全“数字身份”。然后,双方可以使用身份“证明”或来自数字身份的属性来证实该用户的身份。最近NIST在有关身份管理的技术意见书中对此进行了明确的说明。 医疗健康。区块链技术潜在地支持各种医疗健康用例(例如,安全访问患者健康记录,对医疗健康交易进行安全审计,减轻或防止欺诈性处方药的流动)。有兴趣的读者可以咨询医疗健康中有关区块链的介绍,以及医疗健康中有关区块链的技术意见书。 智能家居和物联网。家庭环境中具有区块链功能的物联网(IoT)设备可以以安全的方式远程控制和管理(如家用电器、消费电子产品)。例如,参见物联网中基于区块链的安全访问控制以及CSA在物联网区块链上发表的另一篇论文。 供应链和物流。启用了区块链的IoT设备(例如运动传感器,GPS传感器,温度传感器,车辆信息传感器)可以在货物穿越复杂的供应链时提供详细的状态更新。还可以部署智能合约来自动执行任务(例如,当冷藏卡车内的温度降得太低时,可以自动启动补救措施)。世界经济论坛的一份技术意见书以及CSA发布的一份文件都提到了这一点。 汽车行业。目前正在评估区块链技术在支持自动驾驶汽车、自动加油支付、智能停车和自动交通控制方面的适用性。可以在Cube的技术意见书中找到示例。 在不同细分市场中创建的关键业务区块链应用可能会在同一攻击面出现相同的量子安全漏洞。一旦这一攻击面成为未来量子计算机攻击的目标,整个行业范围的区块链安全风险敞口将迅速超过其他归因于比特币加密货币的安全风险敞口。潜在的,恶意的参与者可能正在收集这些被量子脆弱的加密方案保护的数据,以待量子硬件可用时解密数据。因此,尽早制定合适的量子安全对策变得越来越迫切。 3.量子时代 完整的区块链框架依赖其底层密码流程的安全性。没有可信的哈希函数和公钥签名就不会有区块链。量子计算机(QuantumComputer)可以执行传统计算机无法执行的计算,威胁到区块链中使用的几种密码学原语(CryptographicPrimitive)。要攻破密码学原语背后的数学问题,通用且可扩展的量子计算机是必不可少的。虽然目前尚不可用,但一些公司和世界各国政府已经建造了具有有限输入规模和计算量有限的小型量子计算机。有些量子计算机甚至可以通过互联网访问,并可用于测试量子算法。量子霸权(QuantumSupremacy)描述了量子计算机明显优于传统计算机 的时间点,这一点已经或即将实现。因此,最重要的是了解量子计算对区块链构成的威胁并提出可能的解决方案。 4.区块链使用的主要密码学工具 未来的量子计算机攻击将针对区块链的区块构件,因此必须更详细地分析每个威胁。 4.1随机数生成 随机数生成(RandomNumberGeneration)是大多数密码流程的核心。由于传统计算机是确定性的,因此生成良好的随机性并不容易。在许多情况下,不良的随机性会导致灾难,后面最近的案例证明了这一点。对于在协议的各个级别应用随机数的区块链来说尤其如此。对于隔离的服务器,问题更加严重,因为在隔离的服务器中,大多数计算都是在没有人工干预的情况下执行的。 在这里量子技术实际上可以提供帮助。量子理论本质上是不确定的,因此基于量子生成随机数是提供良好随机性更安全的方法。 现在,量子随机数生成器(QuantumRandomNumberGenerator,QRNG)的外形尺寸非常小,如IDQuantique的QuantisQRNG芯片。这样的小型QRNG可以轻松集成到服务器中,维护区块链的节点,甚至可以集成到各种终端,如用户端的PC和智能手机中。 4.2哈希函数 密码哈希函数(HashFunction)确实是实现区块链密码流程的主力军。哈希函数将任意长度的文本输入转换为固定长度的输出。输出确定地对应到输入,除非使用暴力尝试每个输入直到找到正确的输出,否则不可能从输出恢复输入。 哈希函数在区块链中用于两个目的。一是保证区块的不可篡改性。最常用的哈希函数SHA256具有256位输出,对该函数进行暴力攻击需要运行2256次操作,甚至超过了最大的超级计算机的能力。使用Grover算法进行量子攻击会将操作减少到2128次,但仍然是不可行的。量子计算机无 法破坏区块链的不可篡改性,但可能需要将哈希函数的运算级别加倍。 许多区块链哈希函数的第二个目的是提供所谓的工作量证明(Proof-of-Work,PoW),网络中的节点必须完成工作才能添加新的区块(Block)。这个想法是,当准备在网络上添加新的区块时,矿工(Miner)竞相在该区块上执行计算。第一个完成计算的矿工可以添加该区块并获得奖励。该计