一种云际计算环境中跨区块链身份验证方法及系统
文献发布时间:2023-06-19 13:45:04
技术领域
本发明涉及云际计算环境中分布式身份标识技术,具体涉及一种云际计算环境中跨区块链身份验证方法及系统。
背景技术
云际计算环境中,每个实体都有一个或多个身份。身份是不同实体进行交互和建立信任时所需的最优先的依据。传统的身份一般由统一的组织或机构进行颁发,但是在云际计算环境下,这样的中心化的身份体系存在以下问题:(1)数字身份存在重复认证、多地认证的问题,且在不同平台上采用的身份信息可能存在差异;(2)用户身份信息被网络平台所掌握,可能出现管理不善、使用不当的情况;(3)身份认证所需的第三方存在耗时、不可信等问题。
为解决传统的中心化身份存在的问题,推荐采用分布式身份标识(DecentralizedIdentifier,DID)技术。分布式身份标识是一种去中心化的可验证的数字标识符,它独立于中心化的权威机构,可自主完成注册、解析、更新或者撤销操作,无需中心化的登记和授权。分布式身份标识技术综合运用区块链(Blockchain)技术和拜占庭容错(Byzantine Fault Tolerance,BFT)算法,以去中心化的方式为用户建立可追溯、可验证、防篡改、自主可信的数字身份。分布式身份标识和可验证凭证(Verifiable Credential,VC)规范分别定义了代表实体的身份标识符及与之关联的属性声明,二者共同支撑了分布式身份标识的基础模型——可验证凭证流转模型的有效运转。可验证凭证是由发布者(Issuer)为其他实体签发且可被任意实体签名和验证的,是用来描述实体所具有的某些属性的声明,这些声明被称为可验证声明(Verifiable Claim),简称声明,可验证凭证可以由一个或多个声明组成。此外,可验证凭证同时支持中心化的信任体系和去中心化的信任网络。若要验证证明者(Prover)提供给验证者(Verifier)的凭证是否有效,则需要验证声明是否存在于区块链上、声明中签名是否正确、声明签名者是否可信、声明的时间是否过期以及声明状态是否可用。
在区块链网络中,分布式身份标识和可验证凭证往往分布在多条区块链上,而传统的可验证凭证流转模型运行在单区块链上,难以满足区块链网络中身份验证的需要。区块链的跨链技术有效地改善了区块链的可扩展性和互操作性,弥合不同区块链的差异。跨链技术有多种实现方法,常用的方法包括侧链、区块链路由器以及链间智能合约:侧链是将主链上的资产安全转移到其他区块链(侧链)的方法,可有效提升区块链的吞吐量,改善其可扩展性;区块链路由器是指某些区块链节点在不同区块链网络之间充当传输请求的路由器,便于多个区块链之间的通信;链间智能合约是指在多个区块链之间部署智能合约,使得区块链之间的业务可以自动地执行而无需第三方的干预,从而节约管理成本,提升流程的运行效率并且降低风险,并且使得业务流程更加顺利。此外,区块链的跨链技术中,需要采用共识算法,来使得节点、区块链之间达成分布一致性。在众多共识协议中,Tendermint是一种常用的、能在跨链场景下达成共识的协议,该协议是对实用拜占庭容错算法(PracticalByzantineFaultTolerance,PBFT)的一种改进,该协议通过三个阶段的投票,可以让系统中所有成员接受或拒绝一个区块的上链请求,可以容忍少于三分之一的恶意节点。
发明内容
本发明要解决的技术问题:分布式身份标识的验证依托于可验证凭证,而传统的可验证凭证的验证和流转模型是基于单区块链进行的,不能满足多链的需求,而在区块链网络中,身份信息往往分布在多条链上,而链与链之间可能存在数据和结构的差异,链间的交互受限。本发明针对现有技术的上述问题,为了满足区块链网络中,不同区块链上的身份验证需求,提供一种云际计算环境中跨区块链身份验证方法及系统,本发明以防篡改、可追溯的区块链技术为基础,采用分布式身份标识技术和区块链跨链技术实现区块链网络中的身份验证,能够实现构建可验证凭证的信任评价体系,实施可验证凭证的跨链验证,并使得验证结果在各个节点达成共识。
为了解决上述技术问题,本发明采用的技术方案为:
一种云际计算环境中跨区块链身份验证方法,包括:
1)云际计算环境中各条区块链中的实体分别进行身份注册得到分布式身份标识DID,所述实体包括发布者、持有者、签名者和验证者四类成员;
2)各条区块链中的发布者为该区块链中各个实体的分布式身份标识DID发布可验证凭证VC并提交给该区块链中的持有者,各条区块链中的持有者将收到的可验证凭证VC采用声明对象Claim记录并基于共识算法发布到所在的区块链,将各个实体的分布式身份标识DID及其对应可验证凭证VC的编号基于共识算法发布到同一DID区块链;
3)签名者以DID区块链作为中继,分别为各条区块链中的可验证凭证VC发表签名意见并提交给对应的持有者,并基于共识算法将签名意见发布到签名者所在的区块链;
4)验证者以DID区块链作为中继,分别为各条区块链中签名后的可验证凭证VC发表验证意见并提交给对应的持有者,并基于共识算法将验证意见发布到验证者所在的区块链。
可选地,步骤1)中进行身份注册得到分布式身份标识DID的步骤包括:实体生成自己的公钥和私钥,采用指定的哈希算法对公钥求取一段哈希摘要并加盖时间戳作为自己的分布式身份标识DID。
可选地,步骤2)中声明对象Claim的数据结构包括:
声明主键ClaimID,用于记录可验证凭证VC的编号,且为声明对象Claim的主键;
声明描述实体的分布式身份标识ClaimSubjectDID,用于记录可验证凭证VC对应的实体的分布式身份标识DID;
声明内容ClaimContent,用于记录可验证凭证VC对应的实体声明的描述特征。
信任度Credit,用于记录签名意见中的认可程度。
可选地,步骤2)中发布者为该区块链中各个实体的分布式身份标识DID发布可验证凭证VC时,包括发布者为自己的分布式身份标识DID发布可验证凭证VC以及发布者为该区块链中其他实体的分布式身份标识DID发布可验证凭证VC;其中,发布者为自己的分布式身份标识DID发布可验证凭证VC的步骤包括:发布者基于自己的描述特征集合为自己的分布式身份标识DID创建描述特征的声明,并将多条声明整合形成自己的分布式身份标识DID的可验证凭证VC并附上自己的数字签名;发布者为该区块链中其他实体的分布式身份标识DID发布可验证凭证VC的步骤包括:发布者收到该区块链中其他实体发起的请求Request
可选地,步骤3)中签名者分别为各条区块链中的可验证凭证VC发表签名意见并提交给持有者后,还包括持有者对签名意见采用签名声明对象VerifiableClaim来进行存储,且持有者收到签名意见后通过签名统计对象VerifiedCount来进行存储签名意见的统计信息;
其中,签名声明对象VerifiableClaim的数据结构包括:
VclaimID,用于记录签名声明的编号,且为签名声明对象VerifiableClaim的主键;
ClaimID,用于记录声明的编号,与声明对象Claim的主键对应;
IssuerDID,用于记录签名者的分布式身份标识DID;
IssuedTime,用于记录签名声明发布的时间;
IssuerKey,用于记录签名者使用的公钥;
ExpiredTime,用于记录签名声明过期的时间;
Algorithm,用于记录签名者使用的签名算法;
Signature,用于记录签名者留下的数字签名;
Stand,用于记录签名者对该声明的签名意见,包括接受和拒绝两种态度;
签名统计对象VerifiedCount的数据结构包括:
VclaimID,用于记录签名声明的编号,且为签名统计对象VerifiedCount的主键,且与签名声明对象VerifiableClaim的主键对应;
AcceptCount,用于记录签名声明被验证意见接受的接受次数;
DeclineCount,用于记录签名声明被验证意见拒绝的拒绝次数。
可选地,步骤3)步骤包括:
3.1)签名者向DID链发出检索请求Request
3.2)签名者向目标区块链检索被检索可验证凭证VC的编号对应的声明对象Claim,对该声明对象Claim进行验证并表示接受或拒绝的签名意见,将签名意见发送给对应的持有者,并将签名意见基于共识算法发布到签名者所在的区块链;
3.3)持有者收到接受或拒绝的签名意见后,更新对应声明对象Claim记录的信任度Credit,若签名意见为接受,则将对应声明对象Claim记录的信任度Credit加1,若签名意见为拒绝,则将对应声明对象Claim记录的信任度Credit减1,持有者将新的声明对象Claim发布到持有者所在的区块链。
可选地,步骤4)包括:
4.1)验证者向DID链发出检索请求Request
4.2)验证者向目标区块链检索被检索可验证凭证VC的编号对应的签名声明对象VerifiableClaim,对该签名声明对象VerifiableClaim进行验证并表示接受或拒绝的验证意见,将验证意见发送给对应的持有者,并将验证意见基于共识算法发布到验证者所在的区块链;
4.3)持有者收到接受或拒绝的验证意见后,更新对应签名统计对象VerifiedCount记录的接受次数AcceptCount或拒绝次数DeclineCount,若验证意见为接受,则将对应签名统计对象VerifiedCount记录的接受次数AcceptCount加1,若验证意见为拒绝,则将对应签名统计对象VerifiedCount记录的拒绝次数DeclineCount加1,持有者将新的签名统计对象VerifiedCount发布到持有者所在的区块链。
可选地,所述共识算法为Tendermint共识算法。
此外,本发明还提供一种云际计算环境中跨区块链身份验证系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行前述云际计算环境中跨区块链身份验证方法的步骤。
此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有被编程或配置以执行前述云际计算环境中跨区块链身份验证方法的计算机程序。
和现有技术相比,本发明主要具有下述优点:分布式身份标识的验证依托于可验证凭证,而传统的可验证凭证的验证和流转模型是基于单区块链进行的,不能满足多链的需求。本发明针对现有技术的上述问题,为了满足区块链网络中,不同区块链上的身份验证需求,本发明采用方法包括:云际计算环境中各条区块链中的实体分别进行身份注册得到分布式身份标识DID,所述实体包括发布者、持有者、签名者和验证者四类成员;各条区块链中的发布者为该区块链中各个实体的分布式身份标识DID发布可验证凭证VC并提交给该区块链中的持有者,各条区块链中的持有者将收到的可验证凭证VC采用声明对象Claim记录并基于共识算法发布到所在的区块链,将各个实体的分布式身份标识DID及其对应可验证凭证VC的编号基于共识算法发布到同一DID区块链;签名者以DID区块链作为中继,分别为各条区块链中的可验证凭证VC发表签名意见并提交给对应的持有者,并基于共识算法将签名意见发布到签名者所在的区块链;验证者以DID区块链作为中继,分别为各条区块链中签名后的可验证凭证VC发表验证意见并提交给对应的持有者,并基于共识算法将验证意见发布到验证者所在的区块链,本发明以防篡改、可追溯的区块链技术为基础,通过分布式身份标识技术和区块链跨链技术实现区块链网络中的身份验证,能够实现构建可验证凭证的信任评价体系,实施可验证凭证的跨链验证,并使得验证结果在各个节点达成共识。
附图说明
图1为本发明实施例方法的基本流程示意图。
图2为区块链网络跨链通信体系结构示意图。
图3为签名者进行跨链验证流程示意图。
图4为验证者进行跨链验证流程示意图。
具体实施方式
如图1所示,本实施例云际计算环境中跨区块链身份验证方法包括:
1)云际计算环境中各条区块链中的实体分别进行身份注册得到分布式身份标识DID,所述实体包括发布者、持有者、签名者和验证者四类成员;
2)各条区块链中的发布者为该区块链中各个实体的分布式身份标识DID发布可验证凭证VC并提交给该区块链中的持有者,各条区块链中的持有者将收到的可验证凭证VC采用声明对象Claim记录并基于共识算法发布到所在的区块链,将各个实体的分布式身份标识DID及其对应可验证凭证VC的编号基于共识算法发布到同一DID区块链;
3)签名者以DID区块链作为中继,分别为各条区块链中的可验证凭证VC发表签名意见并提交给对应的持有者,并基于共识算法将签名意见发布到签名者所在的区块链;
4)验证者以DID区块链作为中继,分别为各条区块链中签名后的可验证凭证VC发表验证意见并提交给对应的持有者,并基于共识算法将验证意见发布到验证者所在的区块链。
参见图1,本实施例中的实体包括发布者、持有者、签名者和验证者四类成员。其中,发布者是指为自己或其他实体的DID发布可验证凭证的成员,并留下自己的数字签名;持有者持有和保存可验证凭证,亦称证明者;签名者是指对可验证凭证(声明)进行验证后,对该凭证或声明发表“支持”或“反对”意见并留下签名的成员;验证者是指对签名者的签名或者对可验证凭证(声明)所含签名进行验证的成员。
本实施例中,发布者将各个实体的分布式身份标识DID及其对应可验证凭证VC的编号基于共识算法发布到同一DID区块链,如图2所示,将存储了DID的区块链(简称DID链)作为中继,链1~链n是区块链网络中多条同构或异构的n条区块链,存储了可验证凭证VC以及声明对象Claim等对象信息,区块链之间执行跨链通信协议。
作为一种可选的实施方式,本实施例步骤1)中进行身份注册得到分布式身份标识DID的步骤包括:实体生成自己的公钥和私钥,采用指定的哈希算法(例如SHA-256算法)对公钥求取一段哈希摘要并加盖时间戳作为自己的分布式身份标识DID。
本实施例中,步骤2)中声明对象Claim的数据结构包括:
声明主键ClaimID,用于记录可验证凭证VC的编号,且为声明对象Claim的主键;
声明描述实体的分布式身份标识ClaimSubjectDID,用于记录可验证凭证VC对应的实体的分布式身份标识DID;
声明内容ClaimContent,用于记录可验证凭证VC对应的实体声明的描述特征。
信任度Credit,用于记录签名意见中的认可程度。
步骤1)中实体注册得到分布式身份标识DID后,可以为自己的DID发布可验证凭证,或者向其他实体发出创建可验证凭证的请求,当请求得到通过后,其他实体可为该实体创建可验证凭证,并在可验证凭证上留下数字签名。本实施例中,步骤2)中发布者为该区块链中各个实体的分布式身份标识DID发布可验证凭证VC时,包括发布者为自己的分布式身份标识DID发布可验证凭证VC以及发布者为该区块链中其他实体的分布式身份标识DID发布可验证凭证VC;其中,发布者为自己的分布式身份标识DID发布可验证凭证VC的步骤包括:发布者基于自己的描述特征集合为自己的分布式身份标识DID创建描述特征的声明,并将多条声明整合形成自己的分布式身份标识DID的可验证凭证VC并附上自己的数字签名;发布者为该区块链中其他实体的分布式身份标识DID发布可验证凭证VC的步骤包括:发布者收到该区块链中其他实体发起的请求Request
本实施例中,步骤3)中签名者分别为各条区块链中的可验证凭证VC发表签名意见并提交给持有者后,还包括持有者对签名意见采用签名声明对象VerifiableClaim来进行存储,且持有者收到签名意见后通过签名统计对象VerifiedCount来进行存储签名意见的统计信息;
其中,签名声明对象VerifiableClaim的数据结构包括:
VclaimID,用于记录签名声明的编号,且为签名声明对象VerifiableClaim的主键;
ClaimID,用于记录声明的编号,与声明对象Claim的主键对应;
IssuerDID,用于记录签名者的分布式身份标识DID;
IssuedTime,用于记录签名声明发布的时间;
IssuerKey,用于记录签名者使用的公钥;
ExpiredTime,用于记录签名声明过期的时间;
Algorithm,用于记录签名者使用的签名算法;
Signature,用于记录签名者留下的数字签名;
Stand,用于记录签名者对该声明的签名意见,包括接受和拒绝两种态度;
签名统计对象VerifiedCount的数据结构包括:
VclaimID,用于记录签名声明的编号,且为签名统计对象VerifiedCount的主键,且与签名声明对象VerifiableClaim的主键对应;
AcceptCount,用于记录签名声明被验证意见接受的接受次数;
DeclineCount,用于记录签名声明被验证意见拒绝的拒绝次数。
参见图3,步骤3)步骤包括:
3.1)签名者向DID链发出检索请求Request
3.2)签名者向目标区块链检索被检索可验证凭证VC的编号对应的声明对象Claim,对该声明对象Claim进行验证并表示接受或拒绝的签名意见,将签名意见发送给对应的持有者,并将签名意见基于共识算法发布到签名者所在的区块链;
3.3)持有者收到接受或拒绝的签名意见后,更新对应声明对象Claim记录的信任度Credit,若签名意见为接受,则将对应声明对象Claim记录的信任度Credit加1,若签名意见为拒绝,则将对应声明对象Claim记录的信任度Credit减1,持有者将新的声明对象Claim发布到持有者所在的区块链。
参见图4,步骤4)包括:
4.1)验证者向DID链发出检索请求Request
4.2)验证者向目标区块链检索被检索可验证凭证VC的编号对应的签名声明对象VerifiableClaim,对该签名声明对象VerifiableClaim进行验证并表示接受或拒绝的验证意见,将验证意见发送给对应的持有者,并将验证意见基于共识算法发布到验证者所在的区块链;
4.3)持有者收到接受或拒绝的验证意见后,更新对应签名统计对象VerifiedCount记录的接受次数AcceptCount或拒绝次数DeclineCount,若验证意见为接受,则将对应签名统计对象VerifiedCount记录的接受次数AcceptCount加1,若验证意见为拒绝,则将对应签名统计对象VerifiedCount记录的拒绝次数DeclineCount加1,持有者将新的签名统计对象VerifiedCount发布到持有者所在的区块链。
本实施例中,前述共识算法为Tendermint共识算法。Tendermint是一种常用的、能在跨链场景下达成共识的协议,该协议是对实用拜占庭容错算法(PracticalByzantineFaultTolerance,PBFT)的一种改进,该协议通过三个阶段的投票,可以让系统中所有成员接受或拒绝一个区块的上链请求,可以容忍少于三分之一的恶意节点。此外,也可以根据需要采用其他现有的共识算法,在此不再赘述。
综上所述,本实施例以防篡改、可追溯的区块链技术为基础,通过分布式身份标识技术和区块链跨链技术实现区块链网络中的身份验证,能够实现构建可验证凭证的信任评价体系,实施可验证凭证的跨链验证,并使得验证结果在各个节点达成共识。
此外,本实施例还提供一种云际计算环境中跨区块链身份验证系统,包括相互连接的微处理器和存储器,所述微处理器被编程或配置以执行前述云际计算环境中跨区块链身份验证方法的步骤。
此外,本实施例还提供一种计算机可读存储介质,所述计算机可读存储介质中存储有被编程或配置以执行前述云际计算环境中跨区块链身份验证方法的计算机程序。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可读存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
- 一种云际计算环境中跨区块链身份验证方法及系统
- 身份验证方法、区块链系统的节点装置和区块链系统