王洒洒,戴炳荣,2,朱孟禄,李 超
1.上海计算机软件技术开发中心,上海 201112
2.上海海事大学 信息工程学院,上海 201306
随着区块链应用场景不断丰富和复杂化,区块链之间的数据流通、应用协同需求日益显现,越来越多的区块链项目提出跨链需求与解决方案,跨链技术成为当前区块链研究热点之一[1-2]。在企业联盟链场景下,跨链技术所解决的问题不仅单单指数据的转移,更要解决的问题是多链多场景下的不同区块链系统的互信以及高效的业务协作[3]。
在中心化的身份管理系统中,由于各系统独立并存,容易出现跨系统用户身份认证难、系统间消息封闭互通难以及用户信息在各系统交互时隐私保护难等问题[4]。同样的问题随着区块链平台以及应用系统的不断落地也相继在区块链行业间涌现。通常情况下,每个用户在不同的区块链系统中都需要进行一次身份的注册,由于多场景下的业务需求往来,用户在多个区块链系统中会有多个注册账号,且各账号互不相连,身份并不互通,形成身份信息管理“孤岛”[5]。因此,不仅对多种不同的区块链平台的互联互通提出了新的要求,对跨链身份管理以及跨链隐私保护也提出了新的需求[6-7]。
基于区块链的去中心化用户身份识别是当前研究的新方向,国内外学者从不同角度提出了可能的解决思路。
在身份管理方面,针对用户身份的可信认证问题,董贵山等人[5]设计了一种可实施的异构身份管理体系架构,该架构基于区块链实现异构身份管理系统的可信接入,可支持实体跨域和安全身份认证,但并未实现跨区块链的身份管理。Conti 等人[6]提出了一种基于区块链的轻量级分布式移动生产者身份验证(BlockAuth)协议,该协议有效解决了生产者与网络转发信息管理系统的不安全交互问题,但并未考虑到生产者的隐私问题,缺乏对链上存储信息的隐私保护。Lin 等人[8]提出一个基于区块链技术的分布式的用户认证框架Poster,采用链上链下协同的方式对用户信息进行存储,并设置智能合约进行应用授权。Wang 等人[9]提出一种基于区块链证书方案的跨域身份认证模型BlockCAM,通过用户授权CA的哈希值与区块链中存储的哈希值的一致性进行跨域认证,具有匿名性。杨淳等人[10]提出了一种异构身份联盟统一身份信息标识模型,分为身份关联、跨域访问、信任评价三个方面进行设计,通过全局统一身份标识UID实现与各个接入联盟链的身份关联。
在用户密钥管理方面,Sciancalepore 等人[11]提出一种新的密钥管理协议,该协议将隐式证书与标准的椭圆曲线Diffie-Hellman 交换相结合,并执行身份验证和密钥推导。Han等人[12]提出一种用于批量设备的轻量级双向认证和动态会话密钥方案,采用去中心化认证方式,虽然在一定程度上解决单点身份认证故障问题,但是存在密钥分发、泄露等问题。邓小鸿等人[13]提出一种基于区块链的身份托管模型,采用椭圆曲线签名算法进行登录验证,解决多应用系统下用户需要记住不同密码的问题。
从上述研究内容可以看出,目前研究内容主要是采用某单个区块链解决传统中心化的用户身份管理问题,缺少对跨链用户身份管理的研究。因此,本文提出一种基于ECC-ZKP的跨链身份认证模型。该模型基于中继链建立跨链用户身份模型,解决多链下的用户身份管理问题。通过引入椭圆曲线加密算法和零知识证明协议,为用户在跨链系统中建立统一身份标识,并且基于该标识为用户在跨链资源访问过程中提供身份认证服务,有效解决用户跨链交互过程中容易出现的重复认证以及身份信息隐私泄露问题,并通过理论分析和实验分析表明该方案具有较高的安全性和事务处理效率。
跨链技术是指通过智能合约[14],使满足规定通信协议的链通过特定的连接方式,从而实现独立运行的多个区块链之间的信息及资产的原子性转移或互换的技术手段[1,15]。
公证人机制、侧链/中继、哈希锁定和分布式私钥控制是当前流行的跨区块链架构方案[16-17]。公证人机制是一种中心化或基于多重签名的见证人模式,通过选举一个或多个组织作为公证人对某条区块链进行进行监听,并进行及时响应。侧链/中继链是一种能够自行检验交易数据且具有可扩展性的跨链技术。哈希锁定技术是在无需可信公证人的情况下,通过时间差和隐藏的哈希值来保证资产的原子交换。分布式私钥控制方案通过分布式节点控制各种资产的私钥,并将各种资产从原始链映射到跨区块链系统,保证资产的互联。
零知识证明(zero-knowledge proof)在20世纪80年代初提出[18]。它指的是证明者能够证明某个论断对于验证者来说是真实的,除了特定陈述属实之外,不向验证者提供任何有用的信息。
安全的零知识身份认证方案应当包含三个性质:
(1)正确性。如果证明者不拥有知识,则验证者相信证明者认证的概率很低。
(2)完备性。如果证明者拥有知识,则证明者总能被验证者所接受。
(3)零知识性。在证明过程中,当证明者确实拥有知识时,验证者只能给出证明者拥有知识的结论,而无法得到知识本身的任何信息。
椭圆曲线密码算法(elliptic curve cryptosystem,ECC)[19]是一种基于椭圆曲线数学的公开密钥加密算法,其本质是利用离散对数问题实现加密,主要用于加密数据、解密数据和交换秘钥[20]。设存在大素数q,素数域Fq以q为模,素数域Fq上存在非奇异椭圆曲线Eq(a,b),满足等式:
椭圆曲线密码体制是将加密问题转换为椭圆曲线群中元素的计算问题,采取非对称的公、私双秘钥方式进行加解密运算。以下以素数域上的椭圆曲线为例介绍加密通信过程。
(1)公私钥生成
随机选取椭圆曲线Eq(a,b)上一点G作为基点,设私钥为k,记为Sk,计算公钥PkG,记为Pk。将Eq(a,b)、G、Pk发送给用户。
(2)加密过程
对于明文消息M,用户随机选择正整数r,r∈[1 ,n-1] ,使用参数G和公钥Pk,计算c1=rG,c2=M+rPk,生成密文C={c1,c2} 。
(3)解密过程
接收到密文C={c1,c2} ,用私钥Sk可解密出对应的明文消息M=c2-Skc1,计算公式如下:
针对多链用户在跨链交互出存在的信任传递、跨链访问、隐私保护等问题,提出一种面向跨链系统中分布式用户的身份标识设计模型。跨链身份标识(crossblock Chain unified identity,C-BCID)是用户在跨链系统中的全局标识,由跨链系统负责维护管理,在中继链中进行存储,并实现与各个独立区块链的身份交换。如图1 所示,在跨链架构模型中,用户在多个各个独立区块链的身份信息在跨链系统进行关联。
图1 跨链系统用户标识基础架构Fig.1 User identity infrastructure in cross-chain system
本文提出的跨链交互场景是一个基于中继链的交互架构,在用户标识基础架构中,中继链负责维护接入跨链系统中用户的统一身份凭证的分发,并提供跨链的信任传递服务机制;跨链系统负责用户的跨链访问及跨链身份标识验证。异构区块链系统在申请接入跨链系统时,须在中继链上注册身份标识,为本链上用户提供跨链信任服务。根据跨链系统用户标识基础架构,给出以下相关定义:
定义1(独立区块链用户身份信息)独立区块链节点信息作为用户在跨链系统中申请身份标识时的注册信息,定义为ID={BCID,Cert,{A1,A2,A3…} }。其中,BCID为节点在某独立区块链上的用户标识;Cert是该节点所在区块链系统颁发的证书;{A1,A2,A3…} 为该节点的身份属性信息。
定义2(跨链系统统一用户身份标识)跨链系统统一用户身份标识定义为UID={C-BCID,{PKC-BCID,SKC-BCID},{ID1,ID2,…},H( )ABCID,OP}。其中,一个跨链身份标识可关联多个独立区块链上的身份信息,表示该用户在多个区块链系统中均有注册节点。跨链系统中用户身份标识的符号含义,详见表1。
表1 跨链用户身份标识结构Table 1 Structure of user identification in cross-chain system
(1)跨链身份标识注册
独立区块链接入接入跨链系统后,链上用户需要在跨链系统中注册跨链身份标识后才能进行跨链操作。用户注册统一身份标识算法的输入为用户在独立区块链系统上的身份信息,用于在跨链系统中进行身份绑定。输出为跨链系统中用户生成的公私钥以及身份标识,用户在跨链交互中的身份认证。实现算法如下:
算法1 跨链身份标识注册
已在跨链系统中注册过的用户,需要添加在其他区块链上的身份信息时,可以进行更新身份标识操作,实现多条区块链上身份信息的关联。用户标识信息更新算法输入为用户在独立区块链系统上的身份标识和属性,输出为跨链系统中用户的身份标识及更新结果签名。实现算法如下:
算法2 跨链身份标识更新
在用户认证阶段,为保护用户身份隐私,本文引入零知识证明协议,即认证阶段是零知识性的。在跨链系统中,若区块链系统A上用户想要对区块链系统B进行跨链交互,需要用户先将带有数字签名的请求信息通过跨链系统发送给区块链系统B,区块链系统B检验该数字签名是否有效,如果为无效数字签名,则零知识身份认证过程中断。如果为有效的,则开始进行认证,经过N次的零知识证明后,若验证成功,则证明用户的身份可信,区块链系统B 允许其对用户的资源进行访问,如图2所示。
科学技术的四种不确定性及其风险规避路径——基于约纳斯“责任伦理”的考察 ………………………………………………………… 叶立国(2.78)
如图2,区块链跨链身份的认证基于椭圆曲线算法和零知识证明进行设计。假设E为有限域Ep上的椭圆曲线,G为E上的基点,SKC-BCID为用户U的私钥,PKC-BCID∈E作为用户U的公钥,满足PKC-BCID=(x1,y1)=SKC-BCID·G。具体验证步骤为:
图2 跨链统一身份标识认证流程Fig.2 Unified identity authentication process in cross-chain system
(3)验证通过,表示区块链系统B 同意零知识身份认证。则区块链系统A 选取r∈Ep,计算V=rG,V∈E,并将V发送区块链系统B。
(4)区块链系统B接受V,并随机选取随机数R1∈Ep,向区块链系统A发出提问。
(5)区块链系统A收到随机数R1,计算W=r+R1·SKC-BCID发送给区块链系统B。
(6)区块链系统B 验证WG=V+R1·PKC-BCID是否成立。
若成立,则区块链系统B 接收区块链系统A 的证明,区块链系统A 的用户身份正确,同意用户请求;否则,则拒绝区块链系统A上的用户请求。
在本章中,对上一章所提出的跨链身份标识认证方案进行简单的正确性和安全性的分析。
由上述可知等式两边成立,则表示本方案是正确的。
本方案提出的ECC-ZKP的跨链身份标识认证模型是指在证明者不透漏个人信息的情况下,让验证者相信证明者的跨链用户身份。在协议运行过程中可能存在攻击者A或者恶意证明者P1,试图获取链上数据和用户信息。
(1)存在攻击者A 冒充证明者P。攻击者试图冒充证明者向验证者发起交互请求,以此获得验证者信任,从而获取交互信任。但是攻击者A 没有证明者P的私钥,因此无法获取步骤(1)中得数字签名S,若伪造签名S′则不能通过步骤(2)中的签名验证:
因此恶意证明者P1无法获取验证者的信任。
(3)存在恶意验证者V1泄露验证者P的认证消息。恶意验证者V1在认证过程中泄露证明者P信息给攻击者A,但通过零知识认证流程可知,验证者V1在验证过程中只能得到证明者P发送得V和W,却无法得知验证者的私钥。其次,若攻击者想要得到验证者私钥SKC-BCID,需要根据步骤(5)计算随机数r和R1,其困难度是解决椭圆曲线离散对数问题的难度。因此,攻击者A在有限的时间内对其进行破解是十分困难的。
通过上述分析来看,本方案能够用抵御恶意伪造、冒充以及泄露等风险,具有较高的安全性。
本章将使用自主研发的跨链系统ChainOSX对接以太坊私有链作为实验环境,进行认证模型的效率和资源利用率的实验分析。实验环境配置如表2、表3所示。
表2 以太坊私有链搭建环境Table 2 Building environment of Ethereum private chain
表3 跨链系统运行环境Table 3 Operation environment of cross-chain system
基于提出的用户身份标识模型,本节实验分别基于ECC、SM2和RSA加密算法,其中ECC和SM2的密钥长度均采用常用的256 位加密长度,RSA 采用常用的2 048 位加密长度,与对跨链系统中用户各阶段事务处理效率进行实验设计及分析。
(1)用户身份标识注册阶段效率分析
在用户身份标识注册阶段,跨链系统需根据用户提交的注册信息基于ECC、SM2 和RSA 加密算法分别进行标识生成实验验证,时延验证结果如图3所示。
图3 多用户下用户身份标识注册时延对比Fig.3 Comparison of time delay for user identity registration in multi-user scenario
从图3 可以看出,随着用户数的增加,用户身份标识注册阶段时延也在发生变化。基于ECC、SM2的用户身份标识注册的时间开销随用户数的线性增长较为缓慢,基于RSA(2 048 bit)的用户标识生成所消耗的时间最长,处理效率最低,同时这里采用的ECC 256 bit的密钥长度,与RSA(2 048 bit)相比具有更高的安全性。注册阶段TPS实验验证结果如图4所示。
图4 用户身份标识并发注册处理效率对比Fig.4 Efficiency comparison of user identity concurrent registration
由图4可以看出,用户身份标识事务处理效率随着用户数的线性增长逐渐趋于平稳,当每秒请求达到700时基于SM2 的标识算法处理能力达到鼎峰、当每秒请求达到800时基于ECC的标识算法处理能力达到鼎峰,基于RSA 的用户标识每秒处理效率较低。还可以看出,随着用户注册数量的增加,基于ECC的标识算法每秒事务处理效率略高于SM2。
(2)用户身份标识认证阶段效率分析
在用户身份认证阶段,基于ECC、SM2和RSA算法在同等验证场景下进行身份标识认证实验,实验结果如图5所示。
在跨链用户身份标识认证阶段,由图5(a)和(b)可以看出RSA 在验签时的效率高于ECC 和SM2,但在跨链用户认证过程中会同时执行签名和验签,通过图5(c)和(d)可以看出RSA 在整个阶段的效率是比较低的。此外,随着用户数量的增加,在跨链系统中,用户的认证时延呈线性增长的趋势,这是由于用户量的增加用户需排队等待验证。
图5 基于ECC、SM2和RSA的算法效率对比分析Fig.5 Comparative analysis of efficiency of authentication algorithms based on ECC,SM2 and RSA
RSA加密算法,分别进行用户身份标识注册和区块链跨链身份认证过程中的CPU 使用率进行监听,监听结果如图6、图7所示。
由图6 和图7 可知,CPU 占用率随用户数量的增加呈现线性增长的趋势,在身份标识注册阶段,用户数达到200时CPU使用占比还没有达到50%,说明系统可承载用户量及事务处理数量还可进行增加。在用户身份标识认证阶段可以看出,RSA算法的CPU占用率较高,需要占用较多的系统资源,而ECC 和SM2 两种加密算法的CPU占用率在各阶段的CPU占用率上差距不大。
图6 用户身份标识注册时CPU使用率对比Fig.6 Comparison of CPU usage in user identity registration
综上所述,通过本节的实验可以看出,RSA 算法并不适用于本方案,基于ZCC-ZKP 的跨链用户身份标识认证模型在处理效率、资源利用率方面表现较好,能够满足跨链系统的业务需求。
在开展以上实验过程中,同步对基于ECC、SM2 和
本文针对当前跨链跨链信任难、用户隐私易泄露等问题进行了研究,提出在跨链系统中建立一种基于ZCC-ZKP的统一身份标识认证模型。该模型通过独立区块链中的身份与跨链系统身份进行关系映射,实现同一用户在不同区块链系统中身份对齐。并在该模型架构基础上引入椭圆曲线加密算法和零知识证明协议,实现用户的跨链访问功能以及保障用户在跨链系统身份隐私。同时,本文对该模型架构进行了安全性分析以及效率分析。从理论和实验分析可知,本文提出的基于ECC-ZKP 的跨链身份验证具有较高的安全性,在用户注册和认证阶段都具有较高的事务处理能力和较低的时间开销,能够满足跨链系统的业务需求。在未来工作中将继续深入研究跨链交互中用户身份互联互认的方法研究,设计更高效、更安全的认证方式。