CN112653767B - 数字身份管理方法、装置、电子设备和可读存储介质 - Google Patents
数字身份管理方法、装置、电子设备和可读存储介质 Download PDFInfo
- Publication number
- CN112653767B CN112653767B CN202011572857.2A CN202011572857A CN112653767B CN 112653767 B CN112653767 B CN 112653767B CN 202011572857 A CN202011572857 A CN 202011572857A CN 112653767 B CN112653767 B CN 112653767B
- Authority
- CN
- China
- Prior art keywords
- digital identity
- file
- identity
- state
- block chain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Finance (AREA)
- Software Systems (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请提供了一种数字身份管理方法、装置、电子设备和可读存储介质,其中,该方法包括:接收客户端发送的数字身份操作;根据该数字身份操作创建映射文件和锚文件;根据该映射文件和该锚文件生成当前数字身份的世界状态;根据该当前数字身份的世界状态的状态根和该锚文件哈希生成交易数据;将该区块链交易数据发送给区块链,以供该区块链进行存证存储;在接收到该区块链的交易打包确认消息后,根据该当前交易执行状态对数字身份缓存数据库中的默克尔帕特里夏树中状态标记位进行更新,该默克尔帕特里夏树用于存储数字身份的世界状态。能够降低数字身份管理上的依赖性、验证复杂性和存储压力。
Description
技术领域
本申请涉及数字身份服务技术领域,具体而言,涉及一种数字身份管理方法、装置、电子设备和可读存储介质。
背景技术
由于去中心化的概念的普及,越来越多的数据也都采用了去中心的区块链进行存储。
数字身份也采用了去中心化的管理方式进行管理。数字身份管理一般是基于公钥基础设施(Public Key Infrastructure,PKI)与区块链结合进行管理。由于基于PKI的数字身份的生成和验证都依赖于第三方认证中心,因此,该数字身份服务存在身份无法自主可控等不足。
发明内容
本申请的目的在于提供一种数字身份管理方法、装置、电子设备和可读存储介质,能够解决现有技术中的数字身份管理上存储依赖性的问题。
第一方面,本发明提供一种数字身份管理方法,包括:
接收客户端发送的数字身份操作;
根据所述数字身份操作创建映射文件和锚文件;
根据所述映射文件和所述锚文件生成当前数字身份的世界状态;
根据所述当前数字身份的世界状态的状态根和所述锚文件哈希生成区块链交易数据;
将所述区块链交易数据发送给区块链,以供所述区块链进行存证存储;
在接收到所述区块链的交易打包确认消息后,根据当前交易执行状态对数字身份缓存数据库中的默克尔帕特里夏树中状态标记位进行更新,所述默克尔帕特里夏树用于存储数字身份的世界状态。
在可选的实施方式中,在所述根据所述数字身份操作创建映射文件和锚文件之前,所述方法还包括:
对所述数字身份操作进行合法性验证;
若所述数字身份操作为合法操作,则执行所述根据所述数字身份操作创建映射文件和锚文件的步骤。
在可选的实施方式中,所述对所述数字身份操作进行合法性验证,包括:
若所述数字身份操作为非数字身份创建操作,将所述数字身份操作中的身份标识作为键值,在默克尔帕特里夏树中根据前缀哈希查找规则查找其对应的数字身份状态,以验证所述数字身份操作的合法性;
若所述数字身份操作中的身份标识与所述默克尔帕特里夏树中的某一个叶子节点的键值相同,则表示所述数字身份操作为合法操作。
在可选的实施方式中,所述对所述数字身份操作进行合法性验证,包括:
若所述数字身份操作为数字身份创建操作,将所述数字身份操作中的签名使用签名验证算法进行验证;
若验证成功,则表示所述数字身份操作为合法操作。
在可选的实施方式中,所述对所述数字身份操作进行合法性验证,还包括:
按照设定身份生成算法,根据所述数字身份操作生成验证身份标识;
判断所述验证身份标识与所述数字身份操作中的身份标识是否相同;
若验证身份标识与所述数字身份操作中的身份标识相同,则执行其它验证步骤。
在可选的实施方式中,所述接收客户端发送的数字身份操作之后,所述方法还包括:
若所述数字身份操作为合法操作,则将所述数字身份操作放置在操作请求队列中;
所述根据所述数字身份操作创建映射文件和锚文件,包括:从所述操作请求队列中读取数字身份操作,用以创建映射文件和锚文件。
在可选的实施方式中,应用于Sidetree协议节点。
第二方面,本发明提供一种数字身份管理装置,包括:
接收模块,用于接收客户端发送的数字身份操作;
创建模块,用于根据所述数字身份操作创建映射文件和锚文件;
第一生成模块,用于根据所述映射文件和所述锚文件生成当前数字身份的世界状态;
第二生成模块,用于根据所述当前数字身份的世界状态的状态根和所述锚文件哈希生成区块链交易数据;
发送模块,用于将所述区块链交易数据发送给区块链,以供所述区块链进行存证存储;
更新模块,用于在接收到所述区块链的交易打包确认消息后,根据当前交易执行状态对数字身份缓存数据库中的默克尔帕特里夏树中状态标记位进行更新,所述默克尔帕特里夏树用于存储数字身份的世界状态。
第三方面,本发明提供一种电子设备,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行如前述实施方式任一所述的方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如前述实施方式任一所述的方法的步骤。
本申请实施例的有益效果是:通过将数字身份的世界状态存入数字身份缓存数据库中的默克尔帕特里夏树,降低了Sidetree节点存储压力。同时,在需要对数字身份进行验证时,可以直接从该默克尔帕特里夏树获取对应的数据进行验证,降低了原Sidetree协议中数据身份验证的复杂性;且不需要依赖于第三方认证中心,从而可以减少数字身份管理的依赖性。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的数字身份管理方法的运行环境的示意图。
图2为本申请实施例提供的电子设备的结构示意图。
图3为本申请实施例提供的数字身份管理方法的流程图。
图4为本申请实施例提供的一个实例中的默克尔帕特里夏树的更新示意图。
图5为本申请实施例提供的数字身份管理装置的功能模块示意图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
首先,先对本申请的实施例使用到的概念进行介绍。
现有的去中心化数字身份服务一般是将分布式公钥基础设施(DistributedPublic Key Infrastructure,简称DPKI)与区块链进行结合的数字身份管理服务。
但是由于基于公钥基础设施(Public Key Infrastructure PKI)的数字身份服务由于需要依赖于第三方的认证中心的认证,因此,存在身份无法自主可控、数据泄露、身份不可移植等不足。
而关于基于DPKI的数字身份服务,该标准中分布式数字身份的构建基于分布式身份认证标识符(Decentralized Identifier,DID)进行。DPKI在业务流程上与PKI类似。但是与PKI不同的是,在DPKI中发证由发证方发证,验证则不需要依赖于发证方。而基于DPKI的数字身份服务与基于PKI的数字身份服务的好处可体现在多个方面,例如,1)身份自主控制:每个用户的身份不是由第三方控制,而是由其所有者控制,个人能自主管理,不依赖于应用方,私钥自主生成和维护。2)身份可移植:个人可以携带自己的身份,从一处漫游到另一处,而非仅仅局限于某一个平台或某一个系统之中。具体表现为身份创建、发证、验证过程彼此独立,不相互依赖。3)分布式认证:认证的过程不需要依赖于提供身份的应用方,任何人都可以创建身份标识,并根据独立对某一身份进行验证。
Sidetree协议是一种去中心化身份管理协议,是专用于创建可规模化的DID网络的协议。Sidetree协议可以用于解决基于区块链的去中心化数字身份服务技术所需解决的问题:适配DPKI与区块链的系统吞吐量(Transaction PerSecond,TPS)。
Sidetree协议可以由一组代码层级的组件实现,例如,可以包括:确定性处理逻辑、内容寻址存储抽象以及可以部署到第一层的去中心化账本(例如比特币、以太坊、EOS等公有链)上的状态验证过程,从而实现无需许可的第二层DID网络。通过使用特定链相关的适配器,Sidetree协议可以用来在不同的链上创建不同的第二层去中心化身份网络,这些特定链的适配器负责实现与底层区块链的读写交互,解决去中心化数字身份相关业务请求速度与区块链上TPS处理速度不匹配的问题。
在以太坊区块链网络中,世界状态代表了所有账本状态当前的值。在需要某个账本或某个交易的当前状态值,通过世界状态则可以获取到,而不需要遍历整个区块链去计算账本当前的状态的值。
默克尔帕特里夏树(Merkle Patricia Tree,MPT)是一种经过改良的、融合了默克尔(Merkle)树和前缀树两种树结构优点的数据结构。
基于上述研究,本申请实施例将默克尔帕特里夏树用来组织管理数字身份的相关数据。下面通过几个实施例进行描述。
实施例一
为便于对本实施例进行理解,首先对执行本申请实施例所公开的数字身份管理方法的运行环境进行介绍。
如图1所示,数字身份管理方法的运行环境,包括由协议节点100、与区块链网络通信的区块链网络200以及与区块链网络通信的客户端300。
其中,协议节点100用于与客户端进行交互,以获取客户端发送的请求,并对接收到的数据进行聚合处理,然后传输给区块链网络200。
可选地,协议节点100中产生的交易数据对应的哈希值可以存储至一内容可寻址存储(Content Address Storage,CAS)系统110中。CAS系统是一个基于哈希的内容存储模块,对外提供CAS URI访问服务。网络中的第二层节点使用该接口来交换所需识别的DID操作批次。示例性地,该接口可以抽象自所使用的特定CAS协议。
可选地,该协议节点100中可以配置有CAS适配器,以实现与CAS系统的交互。
可选地,该协议节点100中的服务器中可以配置有区块链适配器,该区块链适配器中包含了任何需要读写特定区块链的代码,以便解除Sidetree主体对特定区块链的依赖。
可选地,该协议节点100可以是Sidetree协议节点。
Sidetree协议可以由一组代码层级的组件实现。代码层级的组件可以包括:Sidetree内核(Sidetree Core)、CAS适配器以及区块链/账本适配器(Blockchain/LedgerAdapter)。
Sidetree内核为主要的逻辑模块,用于它监听来自底层区块链的交易输入,并使用CAS系统提取其中的DID操作,然后组合/验证每个DID的状态,生成信任锚。
CAS适配器用于实现与CAS系统的交互。
区块链/账本适配器中包含了需要读写的区块链的代码,以解除Sidetree主体对该特定区块链的依赖。示例性地,不同的底层区块链需要分别通过不同的适配器实现读写。
如图2所示,是电子设备的方框示意图。电子设备400可以包括存储器411、存储控制器412、处理器413、外设接口414、输入输出单元415、显示单元416。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对电子设备400的结构造成限定。例如,电子设备400还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。本实施例中的电子设备400可以作为图1所示的数字身份管理方法的运行环境中的任一计算机设备的实施设备。
上述的存储器411、存储控制器412、处理器413各元件相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。上述的处理器413用于执行存储器中存储的可执行模块。
其中,存储器411可以是,但不限于,随机存取存储器(Random Access Memory,简称RAM),只读存储器(Read Only Memory,简称ROM),可编程只读存储器(ProgrammableRead-Only Memory,简称PROM),可擦除只读存储器(Erasable Programmable Read-OnlyMemory,简称EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-OnlyMemory,简称EEPROM)等。其中,存储器411用于存储程序,所述处理器413在接收到执行指令后,执行所述程序,本申请实施例任一实施例揭示的过程定义的电子设备400所执行的方法可以应用于处理器413中,或者由处理器413实现。
上述的处理器413可能是一种集成电路芯片,具有信号的处理能力。上述的处理器413可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(digital signalprocessor,简称DSP)、专用集成电路(Application Specific Integrated Circuit,简称ASIC)、现场可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
本实施例中的电子设备400可以用于执行本申请实施例提供的各个方法中的各个步骤。下面通过几个实施例详细描述数字身份管理方法的实现过程。
实施例二
请参阅图3,是本申请实施例提供的数字身份管理方法的流程图。本实施例中的方法可以应用于图1所示的协议节点。下面将对图3所示的具体流程进行详细阐述。
步骤501,接收客户端发送的数字身份操作。
本实施例中的方法可以应用于Sidetree协议节点。
示例性地,上述的数字身份操作可以是:数字身份创建操作Create()、数字身份更新操作Update(),数字身份吊销操作Stop(),数字身份恢复操作Recover()等操作。
为了提高数字身份操作的安全性,在提供数字身份服务之前还可以先对数字身份操作进行验证。因此,在步骤503之前还包括:步骤502,对所述数字身份操作进行合法性验证。若所述数字身份操作为合法操作,则再执行后续步骤。
可选地,针对不同的数字身份操作可以采用不用的验证方式。
第一种实施方式中,若所述数字身份操作为非数字身份创建操作,则可根据默克尔帕特里夏树中的数据对数字身份操作进行验证。例如,数字身份操作是数字身份更新操作、数字身份删除操作、数字身份恢复操作等。
本实施方式中,可以将所述数字身份操作中的身份标识作为键值,在默克尔帕特里夏树中根据前缀哈希查找规则查找其对应的数字身份状态,以验证所述数字身份操作的合法性。若所述数字身份操作中的身份标识与所述默克尔帕特里夏树中的某一个叶子节点的键值相同,则表示所述数字身份操作为合法操作。
第二种实施方式中,若所述数字身份操作为数字身份创建操作,则可以将所述数字身份操作中的签名使用签名验证算法进行验证;若验证成功,则表示所述数字身份操作为合法操作。
进一步地,若所述数字身份操作为数字身份创建操作,还可以判断所述数字身份操作中的身份标识是否已经通过数字身份创建操作创建;若所述数字身份操作中的身份标识未被创建,则表示所述数字身份操作为合法操作;若所述数字身份操作中的身份标识已经通过数字身份创建操作创建,则表示所述数字身份操作为不合法操作。
示例性地,可以通过在数字身份缓存数据库进行查找,以确定数字身份操作中的身份标识是否被使用过。例如,若在数字身份缓存数据库中存在相同的身份标识,则表示该身份标识已经被使用过,则当前的数字身份操作为不合法操作。再例如,若在数字身份缓存数据库中不存在相同的身份标识,则表示该身份标识新的身份标识,则当前的数字身份操作为合法操作。
可选地,在对数字身份操作通过上述第一种实施方式或第二种实施方式的验证过程进行验证之前,还可以先对数字身份标识的格式进行验证。
关于数字身份标识的格式的验证,可以包括:按照设定身份生成算法,根据所述数字身份操作生成验证身份标识,判断所述验证身份标识与所述数字身份操作中的身份标识是否相同,若验证身份标识与所述数字身份操作中的身份标识相同,则执行上述的第一种实施方式或第二种实施方式的验证过程。
可选地,设定身份生成算法可以是一哈希算法。例如,该哈希算法可以是SHA256、RIPEMD160等哈希算法。该验证身份标识可以是一十六进制值。
可选地,若所述数字身份操作为合法操作,则可以将所述数字身份操作放置在操作请求队列中。
本实施例中,协议节点在接收到数字身份操作后,可以将数字身份操作的原文件存储入内容可寻址存储系统,得到CAS URI。
步骤503,根据所述数字身份操作创建映射文件和锚文件。
示例性地,可以从所述操作请求队列中读取数字身份操作,用以创建映射文件和锚文件。
示例性地,锚文件中可以包含:最小索引、证明文件和映射文件的CAS URI地址。
示例性地,映射文件可以包含:更新操作的信息、所有块文件的CAS URI地址。
示例性地,通过将数字身份的更新操作进行汇总以得到映射文件。该映射文件中还可以包括块文件CAS URI地址。
示例性地,该映射文件和锚文件的文件格式可以如下所示:
其中,provisionalProofFileUri关键字用于关联证明文件的CAS URI地址,chunkFileUri用于关联块文件CAS URI地址,operations用于关联当前的操作类型,update用于表示当前操作为更新,didSuffix用于关联对应的数字身份标识,revealValue用于关联更新后的值。
本实施例中,还可以将生成的映射文件和锚文件存入数字身份缓存数据库。
步骤505,根据所述映射文件和所述锚文件生成当前数字身份的世界状态。
其中,当前数字身份的世界状态的值表示当前数字身份操作的数字身份文档的最终状态。
示例性地,通过对该数字身份的世界状态的确定,则不需要遍历区块链计算当前的数字身份操作的当前状态的值。
步骤507,根据所述当前数字身份的世界状态的状态根和所述锚文件哈希生成区块链交易数据。
示例性地,可以使用哈希算法计算当前数字身份的世界状态的状态根和所述锚文件的哈希值,以得到区块链交易数据。
如图4所示,图4示出了一个数字身份全局状态默克尔帕特里夏树的示意图。图示中示出了区块链中的两个区块,分别为:区块12394(Block12394)和区块12395(Block12395)。每个区块包括状态根(Merkle root)、前一节点哈希值(prevhash)、其他区块头信息以及区块体信息。在进行新的数字身份操作后,默克尔帕特里夏树中产生新的数字身份世界状态哈希,该哈希通过Sidetree交易写入新的区块中,数字身份世界状态转移之后对应新的数字身份状态的默克尔帕特里夏树结构。其中,随着数字身份操作的更新,默克尔帕特里夏树随着操作的执行而更新默克尔帕特里夏树的全局状态。
在图4所示的实例中,在区块12394包含的Sidetree交易对应的数字身份世界状态中,只有最右侧的叶子节点的数字身份文件发生了改变:由于update()操作导致did:175document内容发生改变。则区块12395包含的Sidetree交易对应的数字身份世界状态中的State Root发生改变,其他状态根的各个节点的改变如下:区块12394包含的Sidetree交易对应的数字身份世界状态中,State Root对应的②号分支节点发生变化,①号分支节点不变,则区块12395包含的Sidetree交易对应的State Root指向区块12394包含的Sidetree交易中的①号分支节点和新生成的⑥号分支节点;区块12395包含的Sidetree交易对应的数字身份世界状态的⑥号分支节点指向原区块12394包含的Sidetree交易对应的数字身份世界状态中的③号叶子节点和新生成的did:175分支节点;区块12395包含的Sidetree交易对应的数字身份世界状态的did:175节点指向的节点,由原来④号分支节点变成新生成的⑦号分支节点;区块12395包含的Sidetree交易对应的数字身份世界状态中的新生成的⑦号分支节点,指向原区块12394包含的Sidetree交易中的⑤号叶子节点和新的叶子节点,新节点的did:175document增加update()操作更新的状态。
步骤509,将所述区块链交易数据发送给区块链,以供所述区块链进行存证存储。
本实施例中,区块链对应的节点在接收到区块链交易数据后,可以先对该交易数据进行验证,以确定接收到的区块链交易数据是不是合法的交易数据,若是合法的区块链交易数据进行存证存储。
步骤511,在接收到所述区块链的交易打包确认消息后,根据当前交易执行状态对数字身份缓存数据库中的默克尔帕特里夏树中状态标记位进行更新。
本实施例中,默克尔帕特里夏树用于存储数字身份的世界状态。示例性地,该默克尔帕特里夏树存储在数字身份缓存数据库中。
该当前交易执行状态可以包括计算得到的数字身份的世界状态。
可选地,该数字身份缓存数据库可以是图1所示的内容可寻址存储系统。
可选地,还可以根据Sidetree协议节点的存储能力设置垃圾回收机制对数字身份相关的MPT路径进行回收机制配置。从而可以使基于MPT技术改进后的Sidetree协议轻节点达到最优状态。
可选地,在对数字身份缓存数据库中的默克尔帕特里夏树进行更新之后,还可以将处理结果发送给客户端。
本实施例中,在接收到所述区块链发送的是上链失败的消息,则可以对数字身份缓存数据库中对应的状态进行回滚。
在本申请实施例中,通过将数字身份的世界状态存入数字身份缓存数据库中的默克尔帕特里夏树降低了Sidetree节点存储压力。同时,在需要对数字身份进行验证时,可以直接从该默克尔帕特里夏树获取对应的数据进行验证降低了原Sidetree协议中数据身份验证的复杂性;且不需要依赖于第三方认证中心,从而可以减少数字身份管理的依赖性和验证的复杂性。
进一步地,本申请实施例中Sidetree协议节点通过MPT存储数字身份的世界状态。MPT中每个叶子节点中key的Raw编码为数字身份全球唯一标识,比如分布式身份认证标识符(Decentralized Identifier,DID)值的后缀(Suffix)信息。因此,在客户端要进行数字身份操作时,Sidetree节点根据数字身份的全球唯一标识快速定位数字身份当前状态,然后验证数字身份操作中的签名凭证等信息,从而判断IDOP是否合法,可以实现快速且不依赖于第三方认证中心即可实现验证。
当轻节点进行IDOP操作时,可以根据数字身份相关的MPT路径信息进行合法性验证。而且,Sidetree协议节点不需要保存所有其数字身份相关的MPT路径,可以在需要验证的时候实时从Sidetree全节点下载,因此改进后的Sidetree协议轻节点可以快速验证IDOP的合法性。
实施例三
基于同一申请构思,本申请实施例中还提供了与数字身份管理方法对应的数字身份管理装置,由于本申请实施例中的装置解决问题的原理与前述的数字身份管理方法实施例相似,因此本实施例中的装置的实施可以参见上述方法的实施例中的描述,重复之处不再赘述。
请参阅图5,是本申请实施例提供的数字身份管理装置的功能模块示意图。本实施例中的数字身份管理装置中的各个模块用于执行上述方法实施例中的各个步骤。数字身份管理装置包括:接收模块601、创建模块602、第一生成模块603、第二生成模块604、发送模块605以及更新模块606;其中,
接收模块601,用于接收客户端发送的数字身份操作;
创建模块602,用于根据所述数字身份操作创建映射文件和锚文件;
第一生成模块603,用于根据所述映射文件和所述锚文件生成当前数字身份的世界状态;
第二生成模块604,用于根据所述当前数字身份的世界状态的状态根和所述锚文件哈希生成区块链交易数据;
发送模块605,用于将所述区块链交易数据发送给区块链,以供所述区块链进行存证存储;
更新模块606,用于在接收到所述区块链的交易打包确认消息后,根据当前交易执行状态对数字身份缓存数据库中的默克尔帕特里夏树中状态标记位进行更新,所述默克尔帕特里夏树用于存储数字身份的世界状态。
一种可能的实施方式中,本实施例提供的数字身份管理装置还包括:
验证模块,用于对所述数字身份操作进行合法性验证;
若所述数字身份操作为合法操作,则执行创建模块602。
一种可能的实施方式中,验证模块,用于:
若所述数字身份操作为非数字身份创建操作,将所述数字身份操作中的身份标识,与所述默克尔帕特里夏树中的各个节点的值进行对比,以验证所述数字身份操作的合法性;
若所述数字身份操作中的身份标识与所述默克尔帕特里夏树中的任意一个节点的值相同,则表示所述数字身份操作为合法操作。
一种可能的实施方式中,验证模块,用于:
若所述数字身份操作为数字身份创建操作,将所述数字身份操作中的签名使用签名验证算法进行验证;
若验证成功,则表示所述数字身份操作为合法操作。
一种可能的实施方式中,验证模块,用于:
按照设定身份生成算法,根据所述数字身份操作生成验证身份标识;
判断所述验证身份标识与所述数字身份操作中的身份标识是否相同;
若验证身份标识与所述数字身份操作中的身份标识相同,则执行其它验证步骤。
一种可能的实施方式中,本实施例提供的数字身份管理装置还包括:
放置模块,用于若所述数字身份操作为合法操作,则将所述数字身份操作放置在操作请求队列中;
上述的创建模块602,用于从所述操作请求队列中读取数字身份操作,用以创建映射文件和锚文件。
一种可能的实施方式中,应用于Sidetree协议节点。
此外,本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数字身份管理方法的步骤。
本申请实施例所提供的数字身份管理方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的数字身份管理方法的步骤,具体可参见上述方法实施例,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种数字身份管理方法,其特征在于,包括:
接收客户端发送的数字身份操作;
根据所述数字身份操作创建映射文件和锚文件,所述锚文件中包含最小索引、证明文件和映射文件的CAS URI地址,所述映射文件包含更新操作的信息、所有块文件的CAS URI地址;
根据所述映射文件和所述锚文件生成当前数字身份的世界状态;
根据所述当前数字身份的世界状态的状态根和所述锚文件哈希生成区块链交易数据;
将所述区块链交易数据发送给区块链,以供所述区块链进行存证存储;
在接收到所述区块链的交易打包确认消息后,根据当前交易执行状态对数字身份缓存数据库中的默克尔帕特里夏树中状态标记位进行更新,所述默克尔帕特里夏树用于存储数字身份的世界状态。
2.根据权利要求1所述的方法,其特征在于,在所述根据所述数字身份操作创建映射文件和锚文件之前,所述方法还包括:
对所述数字身份操作进行合法性验证;
若所述数字身份操作为合法操作,则执行所述根据所述数字身份操作创建映射文件和锚文件的步骤。
3.根据权利要求2所述的方法,其特征在于,所述对所述数字身份操作进行合法性验证,包括:
若所述数字身份操作为非数字身份创建操作,将所述数字身份操作中的身份标识作为键值,在默克尔帕特里夏树中根据前缀哈希查找规则查找其对应的数字身份状态,以验证所述数字身份操作的合法性;
若所述数字身份操作中的身份标识与所述默克尔帕特里夏树中的某一叶子节点的键值相同,则表示所述数字身份操作为合法操作。
4.根据权利要求2所述的方法,其特征在于,所述对所述数字身份操作进行合法性验证,包括:
若所述数字身份操作为数字身份创建操作,将所述数字身份操作中的签名使用签名验证算法进行验证;
若验证成功,则表示所述数字身份操作为合法操作。
5.根据权利要求3或4所述的方法,其特征在于,所述对所述数字身份操作进行合法性验证,还包括:
按照设定身份生成算法,根据所述数字身份操作生成验证身份标识;
判断所述验证身份标识与所述数字身份操作中的身份标识是否相同;
若验证身份标识与所述数字身份操作中的身份标识相同,则执行其它验证步骤。
6.根据权利要求2所述的方法,其特征在于,所述接收客户端发送的数字身份操作之后,所述方法还包括:
若所述数字身份操作为合法操作,则将所述数字身份操作放置在操作请求队列中;
所述根据所述数字身份操作创建映射文件和锚文件,包括:从所述操作请求队列中读取数字身份操作,用以创建映射文件和锚文件。
7.根据权利要求1所述的方法,其特征在于,应用于Sidetree协议节点。
8.一种数字身份管理装置,其特征在于,包括:
接收模块,用于接收客户端发送的数字身份操作;
创建模块,用于根据所述数字身份操作创建映射文件和锚文件,所述锚文件中包含最小索引、证明文件和映射文件的CAS URI地址,所述映射文件包含更新操作的信息、所有块文件的CAS URI地址;
第一生成模块,用于根据所述映射文件和所述锚文件生成当前数字身份的世界状态;
第二生成模块,用于根据所述当前数字身份的世界状态的状态根和所述锚文件哈希生成区块链交易数据;
发送模块,用于将所述区块链交易数据发送给区块链,以供所述区块链进行存证存储;
更新模块,用于在接收到所述区块链的交易打包确认消息后,根据当前交易执行状态对数字身份缓存数据库中的默克尔帕特里夏树中状态标记位进行更新,所述默克尔帕特里夏树用于存储数字身份的世界状态。
9.一种电子设备,其特征在于,包括:处理器、存储器,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述机器可读指令被所述处理器执行时执行如权利要求1至7任一所述的方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7任一所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011572857.2A CN112653767B (zh) | 2020-12-25 | 2020-12-25 | 数字身份管理方法、装置、电子设备和可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011572857.2A CN112653767B (zh) | 2020-12-25 | 2020-12-25 | 数字身份管理方法、装置、电子设备和可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112653767A CN112653767A (zh) | 2021-04-13 |
CN112653767B true CN112653767B (zh) | 2022-07-12 |
Family
ID=75363337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011572857.2A Active CN112653767B (zh) | 2020-12-25 | 2020-12-25 | 数字身份管理方法、装置、电子设备和可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112653767B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110071808A (zh) * | 2019-04-09 | 2019-07-30 | 郭浩 | 一种区块链用户的安全数字身份验证方法和装置 |
CN110912707A (zh) * | 2019-11-22 | 2020-03-24 | 腾讯科技(深圳)有限公司 | 基于区块链的数字证书处理方法、装置、设备及存储介质 |
CN111488614A (zh) * | 2020-04-08 | 2020-08-04 | 北京瑞策科技有限公司 | 基于业务数据区块链的数字身份存储方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA3039031C (en) * | 2016-10-06 | 2022-06-21 | Mastercard International Incorporated | Method and system for identity and credential protection and verification via blockchain |
-
2020
- 2020-12-25 CN CN202011572857.2A patent/CN112653767B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110071808A (zh) * | 2019-04-09 | 2019-07-30 | 郭浩 | 一种区块链用户的安全数字身份验证方法和装置 |
CN110912707A (zh) * | 2019-11-22 | 2020-03-24 | 腾讯科技(深圳)有限公司 | 基于区块链的数字证书处理方法、装置、设备及存储介质 |
CN111488614A (zh) * | 2020-04-08 | 2020-08-04 | 北京瑞策科技有限公司 | 基于业务数据区块链的数字身份存储方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112653767A (zh) | 2021-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11477032B2 (en) | System and method for decentralized-identifier creation | |
CN110912937B (zh) | 一种基于区块链的数字存证平台和存证方法 | |
CN109829326B (zh) | 基于区块链的跨域认证与公平审计去重云存储系统 | |
JP6853364B2 (ja) | ブロックチェーンベースのデジタル証明書を実装するためのシステム及び方法 | |
CN109074433B (zh) | 使用分布式散列表和点对点分布式分类账验证数字资产完整性的方法和系统 | |
JP6877448B2 (ja) | 分散ハッシュテーブル及びブロックチェーンを用いてコンピュータソフトウェアを保証する方法及びシステム | |
CN111144881A (zh) | 对资产转移数据的选择性访问 | |
JP6965352B2 (ja) | デジタル・マークを生成するためのシステム及び方法 | |
JP2019160312A (ja) | ブロックチェーン・ノード、ブロックチェーン・ノードの方法、およびブロックチェーン・ノードのコンピュータ・プログラム | |
CN112671720B (zh) | 一种云平台资源访问控制的令牌构造方法、装置及设备 | |
EP4002786B1 (en) | Distributed ledger system | |
CN115769241A (zh) | 针对经许可的区块链的隐私保护架构 | |
CN111815321A (zh) | 交易提案的处理方法、装置、系统、存储介质和电子装置 | |
JP2023524715A (ja) | ネットワーク間の識別情報プロビジョニング | |
CN114880697A (zh) | 基于区块链的数据指纹生成方法、装置和存储介质 | |
CN114944937A (zh) | 分布式数字身份验证方法、系统、电子设备及存储介质 | |
CN116583833A (zh) | 自审计区块链 | |
CN112653767B (zh) | 数字身份管理方法、装置、电子设备和可读存储介质 | |
JP2023087665A (ja) | システム、方法、およびコンピュータプログラム製品(許可型ブロックチェーンのためのマルチ発行者匿名クレデンシャル) | |
CN112737793B (zh) | 一种更新区块链域名配置的方法和装置 | |
EP4022872B1 (en) | Distributed ledger system | |
CN112653557B (zh) | 数字身份处理方法、装置、电子设备和可读存储介质 | |
CN118101203A (zh) | 区块链底层链数据处理方法、装置、系统和计算机设备 | |
CN117579325A (zh) | 一种数字证书验证方法及相关装置 | |
CN115130148A (zh) | 一种数据存证方法、装置、电子设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |