国家网络安全学院教授:区块链密码使用指南
摘要: 本期为武汉大学国家网络安全学院教授何德彪的分享,题为《区块链密码使用指南》。
2023年6月9日,第二届区块链服务网络(BSN)全球技术创新发展峰会在湖北武汉成功举行。本次峰会以“链上荆楚,积厚成势”为主题,汇集了来自政府、学术界、产业界的众多海内外嘉宾,围绕区块链基础设施、底层技术在金融、贸易、文化、社会治理等领域的创新应用展开了交流,共同探讨区块链技术创新和产业发展的最新趋势。
峰会上,多位国内外权威专家带来了多场高水平主题演讲,内容涵盖对前沿领域的探索、对新业态发展潜力的展望以及对分布式技术发展成果的总结等各个方面,分享了他们的成果和经验,也为国内区块链行业的发展提出了宝贵建议。接下来,我们将为所有关注分布式技术和下一代分布式可信互联网发展的读者呈现这些精彩纷呈的主题演讲。本期为武汉大学国家网络安全学院教授何德彪的分享,题为《区块链密码使用指南》。
演讲全文整理如下,为便于阅读,有所编辑修改:
大家下午好。
密码学在区块链安全中扮演着至关重要的角色,如果没有密码学的支持,区块链的安全性将完全无法得到保障。近年来,密码学在区块链应用中受到了广泛的关注,目前国内在区块链中使用的密码学算法基本上都是国外的一些算法,虽然国内的算法具备一些基本功能,但缺乏一些特殊功能。
为了提升区块链安全性,在密码行业标准化技术委员会的委托下,包括我们在内的一些单位共同努力,共同研发符合中国当前的密码标准,并符合中国区块链产业生态的密码算法。
目前这个标准主要分为以下几个部分:第一个是零知识证明,第二个是安全状况计算,第三个是环签名,第四个是证书管理协议。此外,还包括群签名、同态加密、广播加密、盲签名以及共识机制、密钥派生等一系列密码算法。
这些标准由不同单位负责开发,具体负责单位如下:零知识证明由信工所负责,多方安全计算由信通院负责,武汉大学负责环签名和盲签名,陕西师范大学负责群签名,暨南大学负责同态加密,清华大学负责共识机制,数字认证和中国网安分别负责证书管理和密钥派生协议。
在20年的时候,首次提出了制定自己的标准,并成立了项目组,当年主要是起草了一些草案,到12月份完成了初步评审工作;21年在此基础上,推荐了各个协议,以符合区块链平台的需求,对标准草案进行完善;到22年,对标准进行全国征求意见,邀请国内企业和专家参与评审,并提出改进意见,去年12月份完成了标准,目前正在进行审批工作。
标准的主要架构,从区块链的角度,最下面一层是数据层,主要包括默克尔树、区块数据等,向上还包括网络层、共识层、智能合约层、应用层和用户层,对应的密码技术支撑环境,最下面一层是密码硬件层,包括密码机、PHI-E密码机、验签服务器、智能密码钥匙等,主要用于保存密码和加速密码运算;上面一层是基础密码算法层,包括对称加密、非对称加密、数字签名、随机数生成等;再向上则是功能性密码协议层,比基础密码算法要复杂得多,主要是为了实现一些特殊功能而确定的密码协议。而密码运营环境目前阶段暂时基于 PKI体系,未来会考虑增加标识密码体系。
接下来向大家介绍一下具体的方案。
一、零知识证明。零知识证明是一种复杂的密码运算,它用于在不泄露信息的情况下证明某件事情的真实性。在区块链中,零知识证明有许多典型应用,例如在转账过程中,为了保护隐私,可以将转账金额进行加密。然而,使用传统密码算法(如SM4、SM2)加密后,无法在密文状态下进行转账操作。这时候,可以使用同态加密来实现在密文状态下的操作,但是单纯的同态加密还不足以保证安全,因为可能出现偷偷篡改密文的情况。
为了解决这个问题,零知识证明被引入。零知识证明可以用于证明两个关键条件:第一,转账金额必须是正数且大于0;第二,转账者必须证明自己有足够的钱来支付。这样,零知识证明可以确保在进行加密转账时,不会发生非法操作。
除此之外,零知识证明还可以在数据隐私保护、身份隐私证明、系统扩容以及有效监管等多种区块链场景中得到应用。
对于零知识证明,目前标准中推荐的协议包括:支持小明文空间的密态消息零知识区间范围证明、支持大明文空间的账户模型区块链零知识证明,以及zkSNARK 和 Bulletproofs,这是近期提出的密码协议,也被广泛应用于零知识证明领域。
二、多方安全计算。安全多方计算是一种多人参与运算的方式,只有指定的人可以获取结果,其他人无法得知具体结果,且在计算过程中不会泄露数据隐私。它在区块链应用中有多个场景:首先,可以用于链上安全计算全过程的记录,区块链本身就涉及多方参与运算,可以利用安全多方计算来确保链上计算的安全性;其次,无可信中心的安全智能合约,在智能合约执行过程中,利用安全多方计算的流程,实现无可信中心的安全性;第三,基于安全多方计算的文献签名,在区块链中广泛应用的密钥管理系统(KMS),可以将密钥分散存储在多个地方,实现基于安全多方计算的文献签名,保护密钥的安全性;此外,拜占庭容错也可以利用多方安全计算的门限签名实现。
目前标准中推荐的签名包括:SM2的文件签名、SPDZ协议、混淆电路、安全多方可信设置协议,这些协议在保障区块链系统的安全性和隐私保护方面具有重要作用。
三、环签名。环签名是一种用于保护用户隐私的签名技术。传统的签名算法如SM2或者国际上的EDDSA签名,签名后可以追溯到具体的签名者,从而泄露了用户的身份信息。为了解决这个问题,环签名应运而生。利用环签名,别人只知道某个签名者是一组签名者中的一个,但无法确定具体是谁,这样很好地保护了用户的隐私。
在区块链中,环签名可以应用于以下场景:1.区块链身份隐私:在区块链中进行签名后,只能知道是其中一个用户签名,而无法确认具体是谁;2.基于环签名的POS:在POS共识算法中,由于需要投票,如果投票过程不保护用户隐私,将会泄露投票者的身份信息,不利于POS的健康发展,而环签名可以解决这一问题;3.基于环签名的PBFT协议和其他投票协议:这些共识机制也可以通过环签名来保护投票者的隐私。
目前推荐的环签名协议包括:可链接环签名LSAG、基于SM2和SM9的环签名,这是中国基于国家标准算法的环签名协议,由中国团队提出。
四、群签名。群签名与环签名的不同之处在于引入了一个管理者来解决监管需求。在群签名中,所有签名者签署完成后,其他人无法确定具体是谁进行了签名,但是群签名的管理者可以使用自己的追踪私钥来追踪签名信息,从而找出具体的签名者,以满足监管需求。
在联盟链中,有时需要引入监管来解决可能发生的不当行为或违规行为,而群签名就非常适用于这一场景。它可以保护普通成员的隐私,同时允许管理者在必要时追踪签名者的身份。
目前推荐的群签名标准包括:B B群签名、可链接的群签名、基于事件的可链接群签名,这些都是密码学领域比较经典的群签名协议,可以在联盟链中有效应用于隐私保护和监管需求。
五、盲签名。盲签名是一种用于保护隐私的签名技术,它的基本思想是,签名者在进行签名时并不知道具体签署的内容,从而实现对用户隐私的保护。举例来说,在电子现金的发行过程中,使用盲签名可以确保数字货币的隐私性。在传统签名中,银行签发的序列号暴露了持有人的身份信息。但盲签名通过在签名过程中引入随机数,即所谓的盲化过程,使签名者只知道自己签了什么,而不知道实际的序列号。用户拿到这个盲签名后,再进行去盲化处理,得到真正的签名结果,此时银行无法确定签名者到底使用了哪个序列号,从而保护了用户的隐私。
目前推荐的盲签名协议包括:SM2的盲签名、SM9的盲签名、ISO/IEC 18370国际标准的盲签名,这些盲签名技术可以广泛应用于混币技术和数字货币生成过程中,保障用户隐私的同时确保交易的安全性。
六、同态加密。同态加密是一种特殊的加密技术,可以在加密的状态下对加密数据进行加法或乘法运算,而无需解密。在数据交易和金额保护方面,同态加密非常有用,通过同态加密,可以对交易金额进行加密,并在加密状态下进行加法和减法运算,从而确保数据的隐私性和安全性。
目前推荐的同态加密标准包括:LHWW加法同态加密、Paillier加法同态加密、ElGamal乘法同态加密、BGV全同态加密算法以及BFV全同态加密算法。在实际应用中,Paillier加密被广泛用于保护数据隐私和进行安全计算。
七、广播加密。广播加密允许发送者将数据同时加密给一组特定的用户,并通过公开信道传输加密后的数据,只有加密时指定的授权用户才能正确解密,其他非授权用户即使合谋也无法获得明文数据,这样可以确保数据在传输过程中的隐私和安全性,防止数据泄露给未授权的人员。因此广播加密在联盟链中得到广泛应用,因为在有些情况下,除了记账节点,我们不希望其他人能够获取相关数据,广播加密能够很好地满足这一需求。
八、密钥派生协议。密钥派生协议主要应用于密钥管理领域,帮助确保密钥的安全生成和管理,对于加密货币等领域尤为重要。最常见的协议是比特币中使用的BIP协议,此外,还有一些国产的密钥派生协议,以及基于双密钥的匿名地址派生协议,这些协议在密钥派生过程中起到重要作用。
九、证书管理协议。证书管理协议是用于管理证书的协议。在现今的联盟链中,我们将传统的证书管理方法应用于其中。然而,鉴于区块链的特性,我们引入了一些新的标准来满足需求。这些新标准包括:1.分布式轻量级证书管理协议:这个协议旨在实现证书管理的分布式特性,并且具备轻量级的特点,以适应联盟链的环境;2.分布式证书管理协议:该协议进一步加强证书管理的分布式属性,确保证书的安全性和可靠性;3基于区块链的去中心化身份认证与密钥管理协议:这个协议利用区块链的特点,实现去中心化的身份认证和密钥管理,从而提高整个系统的安全性和可信度。这些新的证书管理协议适用于联盟链的场景,帮助保证证书的有效管理和使用,并提供更加安全可靠的身份认证和密钥管理机制。
十、共识协议。共识协议是区块链的核心之一,它确保所有节点在网络中就交易的有效性和顺序达成一致意见。在联盟链中,共识协议尤为重要。针对联盟链,我们推荐了以下5个共识协议,它们在国际上被广泛应用且在平台上被使用较多:PBFT (Practical Byzantine Fault Tolerance)、Tendermint、BFT-SMaRt、Bchain、HotStuff PPT,这些共识协议在联盟链中发挥着关键作用,确保了区块链网络的安全性、性能和可靠性。它们是联盟链中常用的共识算法选择。
总的来说,我们现在在区块链中应用了许多密码协议,并对它们做了一些总结。我们也推荐了一些协议,这些推荐并不是强制性的,只是建议大家使用。如果大家对这些协议有任何问题,欢迎与我们交流,我们也希望能够尽快将我们国产的一些密码算法真正应用到我们的区块链行业中,谢谢大家的支持与参与。
-END-
欢迎转发评论。
作者:区块链服务网络BSN;来自链得得内容开放平台“得得号”,本文仅代表作者观点,不代表链得得官方立场凡“得得号”文章,原创性和内容的真实性由投稿人保证,如果稿件因抄袭、作假等行为导致的法律后果,由投稿人本人负责得得号平台发布文章,如有侵权、违规及其他不当言论内容,请广大读者监督,一经证实,平台会立即下线。如遇文章内容问题,请联系微信:chaindd123
评论(0)
Oh! no
您是否确认要删除该条评论吗?