一种数字身份管理方法、区块链节点和系统与流程

专利2023-09-18  109



1.本说明书实施例属于区块链技术领域,尤其涉及一种数字身份管理方法、区块链节点和系统。


背景技术:

2.区块链(blockchain)是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链系统中按照时间顺序将数据区块以顺序相连的方式组合成链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。由于区块链具有去中心化、信息不可篡改、自治性等特性,区块链也受到人们越来越多的重视和应用。目前,区块链用户对区块链中业务的参与方式通常是匿名的,从区块链中的交易不能确定该交易涉及的区块链账户对应的真实用户的身份信息。


技术实现要素:

3.本发明的目的在于提供一种数字身份管理方案,以用于对区块链账户对应的数字身份进行管理。
4.本说明书第一方面提供一种数字身份管理系统,包括管理设备和区块链,所述区块链中存储有第一账户对应的用户的属性信息,所述管理设备包括用于基于属性加密算法生成的主公钥和主私钥,
5.所述管理设备用于:从所述区块链获取所述第一账户对应的用户的属性信息;生成所述用户的第一属性列表,基于所述第一属性列表、所述主公钥和所述主私钥生成第一子私钥,所述第一属性列表中包括所述第一账户和所述属性信息;将所述第一子私钥和所述第一属性列表发送给所述区块链;
6.所述区块链用于存储所述第一子私钥和所述第一属性列表。
7.在第一方面的一种实施方式中,所述系统还包括用户设备,所述用户设备用于:从所述区块链获取所述第一账户对应的子私钥和属性列表,基于所述子私钥和第一策略信息进行属性签名,得到第一签名,所述第一策略信息包括所述属性列表中的至少一项属性,所述第一签名用于证明所述第一账户对应的用户具备所述第一策略信息中包括的全部属性。
8.在第一方面的一种实施方式中,所述区块链中部署有第一合约,所述管理设备在将所述第一子私钥和所述第一属性列表发送给所述区块链时具体用于:向所述区块链发送调用所述第一合约的第一交易,所述第一交易中包括所述第一子私钥和所述第一属性列表;
9.所述区块链在存储所述第一子私钥和所述第一属性列表时具体用于:根据所述第一交易在所述第一合约的合约状态中的账户信息列表中与所述第一账户关联地存储所述第一子私钥和所述第一属性列表。
10.在第一方面的一种实施方式中,所述第一交易中包括第一账户和对所述第一账户的子私钥和所述属性列表进行加密得到的第一密文,所述第一密文使用所述第一账户的公
钥加密生成,所述区块链在存储所述第一子私钥和所述第一属性列表时具体用于:根据所述第一交易在所述账户信息列表中与所述第一账户关联地存储所述第一密文。
11.在第一方面的一种实施方式中,所述系统还包括认证设备,所述属性信息包括所述用户的身份信息,
12.所述管理设备还用于从所述区块链获取所述用户的身份信息,在对所述用户身份信息校验通过之后创建第一账户,生成所述用户的第二属性列表,所述第二属性列表中包括所述第一账户和所述用户身份信息,基于所述第二属性列表、所述主公钥和主私钥生成第二子私钥,将所述第二子私钥和所述第二属性列表上传至所述区块链;
13.所述用户设备还用于从所述区块链获取所述第二子私钥和第二属性列表,基于所述第二子私钥和第二策略信息进行属性签名,得到第二签名,将所述第二签名和所述第二策略信息发送给所述认证设备,所述第二策略信息包括所述第二属性列表中的所述第一账户和所述用户身份信息;
14.所述认证设备用于基于预先获取的所述主公钥和所述第二策略信息对所述第二签名进行验证,在验证通过的情况中,将所述第一账户对应的第一属性上传到所述区块链;
15.所述区块链还用于与所述第一账户关联地存储所述第一属性。
16.在第一方面的一种实施方式中,所述认证设备在将所述第一账户对应的第一属性上传到所述区块链时具体用于:向所述区块链发送调用所述第一合约的第二交易,所述第二交易中包括所述第一账户和所述第一属性;所述区块链用于根据所述第二交易在所述第一合约的合约状态中的认证信息列表中与所述第一账户关联地存储所述用户的第一属性。
17.在第一方面的一种实施方式中,所述认证设备在将所述第一账户对应的第一属性上传到所述区块链时还具体用于:向所述区块链发送所述认证设备对应的认证机构的第二账户对所述第二交易的第三签名,所述区块链在用于根据所述第二交易在所述认证信息列表中与所述第一账户关联地存储所述第一属性时具体用于:根据所述第二交易在所述认证信息列表中与所述第一账户关联地存储所述用户的第一属性和所述第三签名。
18.在第一方面的一种实施方式中,所述管理设备在从所述区块链获取所述第一账户对应的用户的属性信息时具体用于,从所述认证信息列表获取与所述第一账户关联存储的所述第一属性和所述第三签名;所述管理设备在生成所述用户的第一属性列表时具体用于,在验证所述第二账户与所述认证机构对应、且对所述第三签名验证通过之后,生成第一属性列表,所述第一属性列表中包括所述第一属性。
19.在第一方面的一种实施方式中,所述认证设备还用于:向所述区块链发送调用所述第一合约的第三交易,所述第三交易用于注册所述认证机构,所述第三交易中包括所述认证机构的机构信息;所述区块链还用于根据所述第三交易在所述第一合约的合约状态中的存储所述机构信息;
20.所述管理设备用于从所述区块链获取所述机构信息,在对所述机构信息校验通过之后创建所述第二账户,关联地存储所述第二账户和所述机构信息。
21.在第一方面的一种实施方式中,其中,所述用户设备还用于:向所述区块链发送调用所述第一合约的第四交易,所述第四交易用于注册所述用户,所述第四交易中包括所述用户身份信息;所述区块链还用于根据所述第四交易在所述第一合约的合约状态中存储所述用户身份信息。
22.在第一方面的一种实施方式中,所述第四交易中包括所述用户身份信息的第二密文,所述第二密文使用所述管理设备对应的第三账户的公钥加密生成,所述区块链在存储所述用户身份信息时具体用于在所述第一合约的合约状态中存储所述第二密文。
23.本说明书第二方面提供一种数字身份管理方法,由区块链节点执行,所述区块链中存储有第一账户对应的用户的属性信息,所述方法包括:
24.将所述第一账户对应的用户的属性信息发送给管理设备,所述管理设备包括用于基于属性加密算法生成的主公钥和主私钥;
25.从所述管理设备接收所述第一账户对应的第一子私钥和第一属性列表,所述第一属性列表中包括所述第一账户和所述属性信息,所述第一子私钥基于所述第一属性列表、所述主公钥和所述主私钥生成;
26.存储所述第一子私钥和所述第一属性列表。
27.本说明书第三方面提供一种区块链节点,所述区块链中存储有第一账户对应的用户的属性信息,所述区块链节点包括:
28.发送单元,用于将所述第一账户对应的用户的属性信息发送给管理设备,所述管理设备包括用于基于属性加密算法生成的主公钥和主私钥;
29.接收单元,用于从所述管理设备接收所述第一账户对应的第一子私钥和第一属性列表,所述第一属性列表中包括所述第一账户和所述属性信息,所述第一子私钥基于所述第一属性列表、所述主公钥和所述主私钥生成;
30.存储单元,用于存储所述第一子私钥和所述第一属性列表。
31.本说明书第四方面提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第二方面所述的方法。
32.本说明书第五方面提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第二方面所述的方法。
33.通过本说明书实施例提供的数字身份管理方案,基于区块链和属性加密技术,由管理机构提供提供区块链账户的子私钥和属性列表,可构建区块链账户对应的可信数字身份、可基于区块链账户的数字身份方便地对区块链账户对应的用户进行身份验证,将数字世界中的区块链账户与物理世界中的实体用户绑定起来。
附图说明
34.为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
35.图1示出了一实施例中的区块链架构图;
36.图2为本说明书实施例提供的数字身份管理系统的架构示意图;
37.图3为本说明书实施例提供的一种数字身份管理方法的流程图;
38.图4为本说明书实施例中基于属性签名算法生成签名的过程示意图;
39.图5为本说明书实施例中的基于属性签名算法对签名进行验证的过程示意图;
40.图6为本说明书实施例提供的一种区块链节点的架构图。
具体实施方式
41.为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
42.图1示出了一实施例中的区块链架构图。在图1所示的区块链架构图中,区块链100中例如包含节点1-节点6共6个节点。节点之间的连线示意性的表示p2p(peer to peer,点对点)连接。这些节点上可存储全量的账本,即存储全部区块和全部账户的状态。其中,区块链中的每个节点可通过执行相同的交易而产生区块链中的相同的状态,区块链中的每个节点可存储相同的状态数据库。可以理解,图1中虽然示出了区块链中包括6个节点,本说明书实施例不限于此,而是可以包括其他数目的节点。具体是,区块链中包含的节点可以满足拜占庭容错(byzantine fault tolerance,bft)要求。所述的拜占庭容错要求可以理解为在区块链内部可以存在拜占庭节点,而区块链对外不体现拜占庭行为。一般的,一些拜占庭容错算法中要求节点个数大于3f+1,f为拜占庭节点个数,例如实用拜占庭容错算法pbft(practical byzantine fault tolerance)。
43.区块链领域中的交易可以指在区块链中执行并记录在区块链中的任务单元。交易中通常包括发送字段(from)、接收字段(to)和数据字段(data)。其中,在交易为转账交易的情况中,from字段表示发起该交易(即发起对另一个账户的转账任务)的账户地址,to字段表示接收该交易(即接收转账)的账户地址,data字段中包括转账金额。在交易调用区块链中的智能合约的情况中,from字段表示发起该交易的账户地址,to字段表示交易所调用的合约的账户地址,data字段中包括调用合约中的函数名、及对该函数的传入参数等数据,以用于在交易执行时从区块链中获取该函数的代码并执行该函数的代码。
44.区块链中可提供智能合约的功能。区块链上的智能合约是在区块链系统上可以被交易触发执行的合约。智能合约可以通过代码的形式定义。在区块链中调用智能合约,是发起一笔指向智能合约地址的交易,使得区块链中每个节点分布式地运行智能合约代码。需要说明的是,除了可以由用户创建智能合约,也可以在创世块中由系统设置智能合约。此外,具有系统管理员权限的账户可以创建系统级的合约,或者修改系统级的合约(简称为系统合约)。其中,所述系统合约可用于在区块链中增加不同业务的数据的数据结构。
45.在部署合约的场景中,例如,bob将一个包含创建智能合约信息(即部署合约)的交易发送到如图1所示的区块链中,该交易的data字段包括待创建的合约的代码(如字节码或者机器码),交易的to字段为空,以表示该交易用于部署合约。节点间通过共识机制达成一致后,确定合约的合约地址“0x6f8ae93
…”
,各个节点在状态数据库中添加与该智能合约的合约地址对应的合约账户,分配与该合约账户对应的状态存储,并将合约代码保存在该合约的状态存储中,从而合约创建成功。
46.在调用合约的场景中,例如,bob将一个用于调用智能合约的交易发送到如图1所示的区块链中,该交易的from字段是交易发起方(即bob)的账户的地址,to字段中的“0x6f8ae93
…”
代表了被调用的智能合约的地址,交易的data字段包括调用智能合约的方法和参数。在区块链中对该交易进行共识之后,区块链中的各个节点可分别执行该交易,从
而分别执行该合约,基于该合约的执行更新状态数据库。
47.目前,区块链用户对区块链业务的参与方式通常是匿名的,从区块链中的交易只能确定发起该区块链行为的区块链账户,而不能确定该区块链账户对应的真实用户的身份信息。也就是说,区块链所提供的业务环境与真实世界是分离的,难以对真实世界中的用户进行管理。例如,一旦区块链中的账户行为存在违法行为,将无法追查到该账户对应的真实世界中的个人或单位。而随着基于区块链的经济活动日益增多,对于区块链中的账户存在越来越强的身份认证的需求。
48.本说明书实施例提供一种对区块链中的账户进行数字身份管理的方法。数字身份是描述一个人或事物的一组数据,是数字世界中关于一个人的所有信息的总和。数字身份由各种各样的属性汇总而成,身份可以通过属性描述,比如姓名,身份标识,工作,证书,婚姻等等信息,属性组成了一个完整的身份实体。通过由管理设备生成区块链账户对应的用户的属性列表,在该属性列表中包括区块链账户,基于属性加密系统中的密钥生成算法生成子私钥,并在区块链中与区块链账户关联地存储子私钥和属性列表,从而用户可基于属性签名算法生成签名,该签名可用于验证该用户或账户对应一个或多个属性。
49.图2为本说明书实施例提供的数字身份管理系统的架构示意图。如图2所示,系统中包括区块链100、用户设备10、认证设备20和管理设备30。其中,用户设备10可以为任意终端设备,如智能手机、计算设备、笔记本、平板电脑等设备,对此不作限定。用户设备10可通过用户对应的区块链账户向区块链100上传用户的身份信息,认证设备20可在验证区块链账户与用户对应之后,上传与账户关联的用户的属性信息,如学历证书、结婚证书、工作年限等。可以理解,图2中虽然仅示出一个认证设备20,在实际中,用户的不同属性可由不同机构或单位的设备(即认证设备)进行上传。管理设备30为可信设备,其可以从用户设备获取用户的身份信息、或者从区块链中获取用户的属性信息,基于用户的属性信息生成用户的属性列表,基于属性加密系统中的密钥生成算法生成用户的子私钥,并将用户的属性列表、子私钥与用户的账户关联地上传到区块链,从而在区块链中存储了该区块链账户对应的数字身份。用户可使用该属性列表和子私钥生成符合一定策略的签名,以用于向其他人或公司证明该用户或者该账户对应的用户具备该策略中包括的全部属性,其中策略中包括的全部属性为该用户的属性列表中的一个或多个属性。
50.图3为本说明书实施例提供的一种数字身份管理方法的流程图。该方法可由图2中的区块链100、用户设备10、认证设备20和管理设备30执行。其中,区块链100在执行方法步骤时,实际表示区块链100中的每个节点(例如节点1~节点6)都执行该方法步骤。
51.参考图3,首先,在步骤s301,管理设备30生成主公钥和主私钥。
52.管理设备30可以通过基于密文策略的属性加密系统(ciphertext policy attribute based encryption,cp-abe)生成主公钥和主私钥,主私钥由管理设备30保管。作为另一个示例,管理设备30可以对应于多个管理设备,该多个管理设备可以采用安全多方计算的方式来生成主公钥和主私钥,主私钥由多个管理设备共同维护,需要使用主私钥时由多个管理设备同时参与计算。
53.具体是,管理设备30可调用cp-abe中的cpabe_setup()函数,生成主私钥msk和主公钥mpk。
54.在步骤s303,管理设备30将主公钥上传至区块链100。
55.具体是,管理设备30可以向区块链100的任一区块链节点发送交易tx1,该交易tx1可由管理设备30对应的管理机构的区块链账户a1发送,账户a1对应于账户私钥systemsk和账户公钥systempk,私钥systemsk可用于生成交易tx1的数字签名,公钥systempk可用于对该数字签名进行验证。该交易tx1可以调用区块链中的数字身份管理合约c1(下文中简称为合约c1),以向区块链上传主公钥。其中,该合约可由管理设备30部署到区块链中,以进行对区块链账户对应的数字身份的管理。区块链节点在接收到该交易之后将该交易发送给区块链中的其他节点,从而使得区块链中的各个节点可执行该交易。区块链100的各个节点通过执行该交易,将主公钥存储到区块链中,例如可以将主公钥存储到合约c1的合约状态中,从而使得其他设备可从区块链中获取该主公钥。
56.在一种实施方式中,交易tx1中还可以包括账户a1的公钥systempk,从而区块链100中的各个节点通过执行交易tx1还将公钥systempk存储到区块链中,公钥systempk除了可用于验证账户a1的数字签名之外,其他设备还可以使用公钥systempk对上传到区块链的数据进行加密,从而使得该数据只允许管理设备30通过使用私钥systemsk进行解密而获取到该数据。可以理解,区块链中的各个节点可以通过其他方式获取账户a1的公钥systempk,例如,可从管理机构的官方主页中获取,或者可以从秘钥管理机构获取等,对此不作限定。
57.在步骤s305,认证设备20从区块链100获取主公钥。
58.认证设备20可通过向区块链100中的任一节点发送调用合约c1的查询交易,从而从该任一节点接收到主公钥mpk。同时,认证设备也可以类似地从区块链获取管理设备30对应的账户a1的公钥systempk。
59.在步骤s307,用户设备10向管理设备30发送用户信息。
60.在一种实施方式中,用户设备10仅生成用户的账户私钥usk和账户公钥upk,而未创建用户的区块链账户。用户设备10可调用管理设备30提供的用于创建区块链账户的服务registeraccount(),以创建区块链账户。具体是,用户设备10可从区块链100中获取管理机构的公钥systempk,用户设备10在调用账户注册函数registeraccount(userinfocipher,upk),其中,userinfocipher例如通过如下的公式(1)获得:
61.userinfocipher=ecies_encrypt(systempk,userinfo)
ꢀꢀꢀꢀ
(1)
62.其中,userinfo表示用户信息,这里具体是用户身份信息,该用户信息中例如包括用户的姓名、身份标识、证件照片等信息。ecies_encrypt表示椭圆曲线加密方案(elliptic curve integrate encrypt scheme,ecies)加解密算法中的加密算法。
63.管理设备30在接收到该服务请求之后,可通过如下公式(2)得到用户信息userinfo:
64.userinfo=ecies_decrypt(systemsk,userinfocipher)
ꢀꢀꢀꢀ
(2)
65.其中,ecies_decrypt表示椭圆曲线综合加密方案(elliptic curve integrate encrypt scheme,ecies)加解密算法中的解密算法。
66.管理设备30在获取用户信息和用户公钥upk之后,根据用户信息进行身份校验和鉴定,审核通过之后,根据公钥upk生成用户对应的账户a2,并将账户a2返回给用户设备10。
67.同时,认证设备20对应的认证机构可类似地向管理设备30发送认证机构的机构信息,认证设备20也可以通过调用账户注册函数上传机构信息,以用于请求申请认证机构的区块链账户。
68.在步骤s309,管理设备30向区块链100上传用户信息。
69.管理设备30可以通过向区块链发送交易将账户a2或其公钥upk与用户信息关联地上传到区块链,该用户信息例如为上述密文形式。区块链中的各个节点在执行该交易之后,可在合约c1的合约状态中与账户a2或upk关联地存储userinfocipher,以进行存证。
70.在另一种实施方式中,用户设备10对应的用户可自己创建账户a2以及账户a2对应的账户私钥usk和账户公钥upk,从而,用户设备10可通过账户a2向区块链100发送调用合约c1的交易tx2,从而向区块链100上传用户信息,该用户信息中例如包括用户的姓名、身份标识、证件照片等信息。区块链100中的各个节点通过执行交易tx2可在合约c1中的与账户a2关联地存储该用户信息。另外,用户信息中还可以包括账户a2的公钥upk,该公钥upk可用于进行对数字签名的验证和对数据进行加密。
71.其中,用户设备10可从区块链100中获取管理机构的公钥systempk,从而可在交易tx2中包括用户信息的密文userinfocipher,该密文userinfocipher可通过上述公式(1)生成。
72.管理设备30可通过向区块链发送调用合约c1的查询交易,以从区块链100获取用户信息或机构信息。其中,在用户信息为使用管理机构的公钥systempk加密信息的情况中,管理设备30还可以使用管理机构的私钥systemsk对密文进行解密,从而得到用户信息。
73.在步骤s311,管理设备30生成用户对应的账户的属性列表和子私钥。
74.为区块链账户a2生成属性列表attrilist。其中,在上述第二种实施方式中,管理设备30在对用户信息进行校验之后,创建区块链账户a2。
75.属性列表attrilist中包括账户a2所对应的用户的一个或多个属性。例如,该属性列表attrilist中可包括账户a2、公钥upk、姓名、身份标识、护照数据等多个属性。
76.之后,如下面的公式(3)所示,管理设备30可调用cpabe属性加密算法中的子私钥生成函数cpabe_keygen()生成账户a2或账户a2对应的用户对应的子私钥sk:
77.sk=cpabe_keygen(attrilist,msk,mpk)
ꢀꢀꢀꢀ
(3)
78.从公式(3)可见,对函数cpabe_keygen()的输入参数包括attrilist、msk和mpk三项,通过基于属性加密算法生成子私钥sk,该子私钥sk可用于基于签名策略进行属性签名,得到签名,以用于证明账户a2或账户a2对应的用户具有attrilist中的特定属性(即满足签名策略),而mpk可用于基于签名策略验证该签名为真,即验证账户a2或账户a2对应的用户具有attrilist中的特定属性。
79.在步骤s313,管理设备30向区块链100上传账户的子私钥和属性列表。
80.管理设备30可向区块链100发送调用合约c1的交易tx4,以用于在合约c1的合约状态中的账户信息列表accountinfolist中存储账户a2的属性列表attrilist和子私钥sk。
81.管理设备30可在交易tx4中包括使用账户a2的公钥upk对属性列表attrilist和子私钥sk进行加密得到的密文accountcipher,从而将该密文存储到accountinfolist中,以更好地保护用户隐私。
82.区块链100中的各个节点在执行交易tx4之后,在合约c1的合约状态中的accountinfolist中与账户a2关联地存储属性列表attrilist和子私钥sk,或者与账户a2关联地存储密文accountcipher。
83.具体是,在accountinfolist,可以与账户a2关联地存储上述密文accountcipher,
即{a2,accountcipher},从而用户可以基于账户a2从accountinfolist中获取账户a2对应的账户信息。其中,在用户申请注册账户a2的情况中,用户设备10可从管理设备获取到所创建的账户a2。在另一种实施方式中,在accountinfolist,可以与账户a2关联地存储公钥upk和上述密文accountcipher,即{a2,upk,accountcipher},从而用户可以基于公钥upk从accountinfolist中获取账户a2对应的账户信息。
84.在步骤s315,用户设备10从区块链100获取账户a2的子私钥和属性列表。
85.用户设备10可向区块链100中任一节点发送调用合约c1的交易,该交易中包括账户a2或者公钥upk,以在accountinfolist中查询与账户a2或者公钥upk对应的账户信息。区块链节点在接收到该查询交易之后,根据账户a2或者公钥upk从accountinfolist中找到对应的账户信息,该账户信息中包括账户a2对应的子私钥和属性列表,并将该账户信息发送给用户设备10。在该accountinfolist中存储了accountcipher的情况中,将accountcipher发送给用户设备10。用户设备10在接收accountcipher之后,使用用户的私钥usk对accountcipher进行解密,得到账户a2对应的子私钥和属性列表。
86.在步骤s317,用户设备10使用子私钥和策略信息生成签名。
87.在物理世界中,认证机构有可能对用户设备10对应的用户颁发纸质的认证证书,例如当个人在大学完成学业之后,学校会给个人颁发学位证书,这里学校就是一个认证机构。为了使得认证机构将该纸质证书对应的属性颁发给个人对应的区块链账户,以完善该区块链账户对应的数字身份,用户设备10可基于属性签名算法生成用于证明区块链账户与用户的身份标识对应的证明数据,该证明数据也就是通过属性签名算法生成的签名。
88.具体是,用户设备10可对与认证机构20约定好的数据data1进行属性签名,得到签名sign1,签名策略信息policy1包括用户的属性列表attrilist中的区块链账户a2和身份标识,即policy1={a2,身份标识}。其中data1例如如下面的公式(4)所示生成:
89.data1=hash(身份标识+a2)
ꢀꢀꢀꢀ
(4)
90.其中,公式(4)中的“+”表示对身份标识和a2进行结合,结合方式不限,例如,这里可以为将身份标识和a2拼接到一起。
91.签名sign1可如下面的公式(5)所示生成:
92.sign1=cpabe_sign(sk,policy1,data1)
ꢀꢀꢀꢀ
(5)
93.其中,公式(5)中的cpabe_sign()函数为属性签名函数,通过将sk、policy1、data1输入该属性签名函数,只有在属性列表attrilist中同时包括policy1中的全部属性(即a2和身份标识)的情况下,才能签名成功,否则签名失败。因此,该生成的签名sign1可用于证明账户a2与身份标识是绑定的,且该绑定关系是经过管理机构验证的。
94.在步骤s319,用户设备10将签名sign1和策略信息policy1发送给认证设备20。
95.具体是,为了保护policy1中的用户的隐私信息,用户设备10可以使用认证设备20对应的认证机构的公钥对sign1和policy1进行加密,并将加密得到的密文发送给认证设备20,从而认证设备20可通过使用认证机构的私钥对密文进行解密得到sign1和policy1。
96.在步骤s321,认证设备20使用主公钥mpk和策略信息policy1验证签名sign1。
97.认证设备20可按照预先的约定根据公式(4)计算得到data1,然后,认证设备20可通过如下的公式(6)对签名sign1进行验证,得到验证结果result1:
98.result1=cpabe_verify(mpk,policy1,data1,sign1)
ꢀꢀꢀꢀ
(6)
99.在公式(6)中,cpabe_verify为用于验证签名的函数,通过将mpk、policy1、data1和sign1作为参数输入cpabe_verify函数,该函数可输出真(ture)或假(false)作为验证结果。其中,当sign1确实是基于policy1中的全部属性签名成功的情况下,该函数输出true,从而可验证账户a2与身份标识是绑定的。
100.在步骤s323,认证设备20向区块链100上传账户a2对应的用户属性。
101.认证设备20在验证了账户a2与用户的身份标识绑定之后,通过将该policy1中的身份标识与证书对应的身份标识进行比对,如果一致,说明账户a2对应的用户即为证书对应的用户,因此,也即验证了账户a2可具有该证书对应的一项或多项属性。例如,该证书为某大学计算机系的硕士毕业证书,与该硕士毕业证书属性可以包括:硕士学历、计算机专业、毕业于某大学等属性。
102.认证设备20可通过向区块链100发送调用合约c1的交易tx5,向区块链100上传账户a2对应的用户属性,该交易tx5中包括账户a2和上述与纸质证书对应的一项或多项属性。具体是,假设认证机构待上传到区块链的信息info={a2,硕士学历、毕业于某大学、计算机专业},交易tx5中可调用合约c1中的publishcert(a2,infocipher,infosign,a3/companypk),其中,a3为认证机构对应的区块链账户,companypk为账户a3的公钥,infocipher通过如下公式(7)生成:
103.infocipher=ecies_encrypt(systempk,info)
ꢀꢀꢀꢀ
(7)
104.其中,在公式(7)中,infocipher为通过管理机构的公钥对信息info加密得到的密文,从而使得仅管理机构可以获取该info。
105.上述infosign通过如下公式(8)生成:
106.infosign=ecies_sign(companysk,infohash)
ꢀꢀꢀꢀ
(8)
107.其中,在公式(8)中,companysk为认证机构的区块链账户a3的私钥,infohash为info的哈希值,也就是说,infosign为认证机构对信息info的数字签名,以用于验证该信息info由认证机构上传。
108.区块链100中的各个节点在执行交易tx5时,可将{a2,infocipher,infosign,a3/companypk}作为一个条目存放到合约c1的合约状态中的认证信息列表accountcertslist中。
109.在步骤s325,管理设备30从区块链100获取账户a2对应的新增用户属性。
110.管理设备30可通过向区块链100中的任一节点发送调用合约的交易,以用于获取认证信息列表accountcertslist中的信息。
111.例如,管理设备30从区块链节点接收认证信息列表accountcertslist中的条目{a2,infocipher,infosign,a3/companypk},管理设备30首先验证该条目对应的info的有效性。
112.具体是,管理设备30首先如下面的公式(9)所示,使用管理机构的私钥systemsk对infocipher解密,得到信息info:
113.info=ecies_decrypt(systemsk,infocipher)
ꢀꢀꢀꢀ
(9)
114.然后,根据a3/companypk获取预先存储的账户a3对应的认证机构的机构信息,该机构信息中包括账户a3的公钥companypk和账户a3,然后使用公钥companypk验证信息info的签名infosign的有效性。在签名验证通过之后,管理设备30对应的管理机构还会链下查
验信息info的合理性和合法性,包括验证认证机构的资质是否足够,颁发时间是否合理等。
115.在步骤s327,管理设备30更新账户a2的属性列表和子私钥。
116.在上述校验都通过之后,管理设备30在账户a2的属性列表attrilist中添加信息info中包括的账户a2的一个或多个属性,得到账户a2的更新的属性列表。例如,该更新的属性列表中例如包括账户a2、公钥upk、姓名、身份标识数据、护照数据、硕士学历、毕业于某大学、计算机专业等多个属性。之后,管理设备30可再次基于上述公式(3)生成账户a2的更新的子私钥sk。
117.在步骤s329,管理设备30向区块链100上传账户a2的更新的子私钥和属性列表。
118.在步骤s331,用户设备10从区块链100获取账户a2更新的子私钥和属性列表。
119.步骤s329和步骤s331可参考上文对步骤s313和步骤s315的描述,在此不再赘述。
120.其他认证机构可通过同样的方式使得账户a2的属性列表attrilist和子私钥得到更新,从而使得账户a2对应的数字身份具有各种类型的属性。
121.在步骤s333,用户设备10使用更新的子私钥和策略信息生成签名。
122.与步骤s317类似地,用户设备10可基于公式(10)计算新的签名sign2,以用于验证账户a2所具备的属性列表attrilist中的任意属性,该任意属性通过策略信息policy2限定:
123.sign2=cpabe_sign(sk,policy2,data2)
ꢀꢀꢀꢀ
(10)
124.在公式(10)中,data2是用户设备10对应的用户与验证方约定好的任意数据,policy2为用户与验证方约定好的属性。例如,验证方为区块链100中的账户a4对应的用户,验证方在通过区块链中与账户a2进行交易(例如对账户a2转移数字资产)之前,需要确定账户a2对应的用户满足一定的属性,例如,账户a2对应的用户的资产高于预设金额、账户a2的信用值高于预设值等,验证方可与账户a2对应的用户约定进行属性签名的策略policy2={a2,资产高于x元,信用值大于y}。
125.用户设备10然后可基于公式(10)生成签名sign2,图4为本说明书实施例中基于属性签名算法生成签名的过程示意图。如图4所示,签名策略policy2={a2,资产》x,信用值》y},即签名策略需要账户a2同时包括a2,资产高于x元和信用值大于y三项属性,data2为约定好的任意数据,例如可以为“账户a2身份证明”,通过将policy2、sk和data2作为参数输入属性签名算法,只有在账户a2对应的属性列表attrilist中包括policy2中的全部属性时,才能成功生成签名sign2。该sign2可以作为证明账户a2对应于属性“资产》x”和“信用值》y”的证明数据。用户设备10在生成签名sign2之后,可以将sign2发送给验证方设备。
126.可以理解,所述policy2不限于需要账户a2同时包括a2,资产高于x元和信用值大于y三项属性,例如,policy2可以为{a2,{1/2}{资产》x,信用值》y}},即要求账户a2需要包括a2属性和{资产高于x元、信用值大于y}中的至少一项属性。
127.验证方可使用公式(11)对sign2进行验证:
128.result2=cpabe_verify(mpk,policy2,data2,sign2)
ꢀꢀꢀꢀ
(11)
129.图5为本说明书实施例中的基于属性签名算法对签名进行验证的过程示意图。如图5中所示,通过将上述policy2、mpk、data2和sign2输入属性签名验证算法,即公式(11)中的cpabe_verify(),在输出的result2为true时,即验证了账户a2与资产高于x元、信用值大于y都是账户a2对应的属性列表attrilist中包括的属性,也即验证了账户a2对应的用户
满足资产高于x元、信用值大于y,从而,验证方可通过其账户a4发起与账户a2之间的交易。
130.此外,账户a2对应的用户还可以通过公式(10)生成签名,以用于证明用户具备特定属性。例如policy2中可包括属性{身份标识、硕士学历、计算机专业},使用该策略生成的签名可用于证明用户具备硕士学历和计算机专业,验证方可通过与上文类似的方式对该签名进行验证。
131.图6为本说明书实施例提供的一种区块链节点的架构图,所述区块链中存储有第一账户对应的用户的属性信息,所述区块链节点包括:
132.发送单元61,用于将所述第一账户对应的用户的属性信息发送给管理设备,所述管理设备包括用于基于属性加密算法生成的主公钥和主私钥;
133.接收单元62,用于从所述管理设备接收所述第一账户对应的第一子私钥和第一属性列表,所述第一属性列表中包括所述第一账户和所述属性信息,所述第一子私钥基于所述第一属性列表、所述主公钥和所述主私钥生成;
134.存储单元63,用于存储所述第一子私钥和所述第一属性列表。
135.通过本说明书实施例提供的数字身份管理方案,基于区块链和属性加密技术,由管理机构提供提供区块链账户的子私钥和属性列表,可构建区块链账户对应的可信数字身份、可基于区块链账户的数字身份方便地对区块链账户对应的用户进行身份验证,将数字世界中的区块链账户与物理世界中的实体用户绑定起来。
136.在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmable logic device,pld)(例如现场可编程门阵列(field programmable gate array,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardware description language,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advanced boolean expression language)、ahdl(altera hardware description language)、confluence、cupl(cornell university programming language)、hdcal、jhdl(java hardware description language)、lava、lola、myhdl、palasm、rhdl(ruby hardware description language)等,目前最普遍使用的是vhdl(very-high-speed integrated circuit hardware description language)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
137.控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,
asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc 625d、atmel at91sam、microchip pic18f26k20以及silicone labs c8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
138.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为服务器系统。当然,本技术不排除随着未来计算机技术的发展,实现上述实施例功能的计算机例如可以为个人计算机、膝上型计算机、车载人机交互设备、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
139.虽然本说明书一个或多个实施例提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或终端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。例如若使用到第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
140.为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书一个或多个时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
141.本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
142.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指
令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
143.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
144.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
145.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
146.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储、石墨烯存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
147.本领域技术人员应明白,本说明书一个或多个实施例可提供为方法、系统或计算机程序产品。因此,本说明书一个或多个实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书一个或多个实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
148.本说明书一个或多个实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本本说明书一个或多个实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
149.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本
领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
150.以上所述仅为本说明书一个或多个实施例的实施例而已,并不用于限制本本说明书一个或多个实施例。对于本领域技术人员来说,本说明书一个或多个实施例可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在权利要求范围之内。

技术特征:
1.一种数字身份管理系统,包括管理设备和区块链,所述区块链中存储有第一账户对应的用户的属性信息,所述管理设备包括用于基于属性加密算法生成的主公钥和主私钥,所述管理设备用于:从所述区块链获取所述第一账户对应的用户的属性信息;生成所述用户的第一属性列表,基于所述第一属性列表、所述主公钥和所述主私钥生成第一子私钥,所述第一属性列表中包括所述第一账户和所述属性信息;将所述第一子私钥和所述第一属性列表发送给所述区块链;所述区块链用于存储所述第一子私钥和所述第一属性列表。2.根据权利要求1所述的系统,还包括用户设备,所述用户设备用于:从所述区块链获取所述第一账户对应的子私钥和第一属性列表,基于所述子私钥和第一策略信息进行属性签名,得到第一签名,所述第一策略信息包括所述第一属性列表中的至少一项属性。3.根据权利要求1或2所述的系统,所述区块链中部署有第一合约,所述管理设备在将所述第一子私钥和所述第一属性列表发送给所述区块链时具体用于:向所述区块链发送调用所述第一合约的第一交易,所述第一交易中包括所述第一子私钥和所述第一属性列表;所述区块链在存储所述第一子私钥和所述第一属性列表时具体用于:根据所述第一交易在所述第一合约的合约状态中的账户信息列表中与所述第一账户关联地存储所述第一子私钥和所述第一属性列表。4.根据权利要求3所述的系统,所述第一交易中包括第一账户和对所述第一账户的子私钥和所述第一属性列表进行加密得到的第一密文,所述第一密文使用所述第一账户的公钥加密生成,所述区块链在存储所述第一子私钥和所述第一属性列表时具体用于:根据所述第一交易在所述账户信息列表中与所述第一账户关联地存储所述第一密文。5.根据权利要求3或4所述的系统,所述系统还包括认证设备,所述属性信息包括所述用户的身份信息,所述管理设备还用于从所述区块链获取所述用户的身份信息,在对所述用户身份信息校验通过之后创建第一账户,生成所述用户的第二属性列表,所述第二属性列表中包括所述第一账户和所述用户身份信息,基于所述第二属性列表、所述主公钥和主私钥生成第二子私钥,将所述第二子私钥和所述第二属性列表上传至所述区块链;所述用户设备还用于从所述区块链获取所述第二子私钥和第二属性列表,基于所述第二子私钥和第二策略信息进行属性签名,得到第二签名,将所述第二签名和所述第二策略信息发送给所述认证设备,所述第二策略信息包括所述第二属性列表中的所述第一账户和所述用户身份信息;所述认证设备用于基于预先获取的所述主公钥和所述第二策略信息对所述第二签名进行验证,在验证通过的情况中,将所述第一账户对应的第一属性上传到所述区块链;所述区块链还用于与所述第一账户关联地存储所述第一属性。6.根据权利要求5所述的系统,所述认证设备在将所述第一账户对应的第一属性上传到所述区块链时具体用于:向所述区块链发送调用所述第一合约的第二交易,所述第二交易中包括所述第一账户和所述第一属性;所述区块链用于根据所述第二交易在所述第一合约的合约状态中的认证信息列表中与所述第一账户关联地存储所述用户的第一属性。7.根据权利要求6所述的系统,所述认证设备在将所述第一账户对应的第一属性上传到所述区块链时还具体用于:向所述区块链发送所述认证设备对应的认证机构的第二账户
对所述第二交易的第三签名,所述区块链在用于根据所述第二交易在所述认证信息列表中与所述第一账户关联地存储所述第一属性时具体用于:根据所述第二交易在所述认证信息列表中与所述第一账户关联地存储所述用户的第一属性和所述第三签名。8.根据权利要求7所述的系统,所述管理设备在从所述区块链获取所述第一账户对应的用户的属性信息时具体用于,从所述认证信息列表获取与所述第一账户关联存储的所述第一属性和所述第三签名;所述管理设备在生成所述用户的第一属性列表时具体用于,在验证所述第二账户与所述认证机构对应、且对所述第三签名验证通过之后,生成第一属性列表,所述第一属性列表中包括所述第一属性。9.根据权利要求8所述的系统,所述认证设备还用于:向所述区块链发送调用所述第一合约的第三交易,所述第三交易用于注册所述认证机构,所述第三交易中包括所述认证机构的机构信息;所述区块链还用于根据所述第三交易在所述第一合约的合约状态中的存储所述机构信息;所述管理设备用于从所述区块链获取所述机构信息,在对所述机构信息校验通过之后创建所述第二账户,关联地存储所述第二账户和所述机构信息。10.根据权利要求5所述的系统,其中,所述用户设备还用于:向所述区块链发送调用所述第一合约的第四交易,所述第四交易用于注册所述用户,所述第四交易中包括所述用户身份信息;所述区块链还用于根据所述第四交易在所述第一合约的合约状态中存储所述用户身份信息。11.根据权利要求10所述的系统,所述第四交易中包括所述用户身份信息的第二密文,所述第二密文使用所述管理设备对应的第三账户的公钥加密生成,所述区块链在存储所述用户身份信息时具体用于在所述第一合约的合约状态中存储所述第二密文。12.一种数字身份管理方法,由区块链节点执行,所述区块链中存储有第一账户对应的用户的属性信息,所述方法包括:将所述第一账户对应的用户的属性信息发送给管理设备,所述管理设备包括用于基于属性加密算法生成的主公钥和主私钥;从所述管理设备接收所述第一账户对应的第一子私钥和第一属性列表,所述第一属性列表中包括所述第一账户和所述属性信息,所述第一子私钥基于所述第一属性列表、所述主公钥和所述主私钥生成;存储所述第一子私钥和所述第一属性列表。13.根据权利要求12所述的方法,所述区块链中部署有第一合约,所述从所述管理设备接收所述第一账户对应的第一子私钥和第一属性列表包括,从所述管理设备接收调用所述第一合约的第一交易,所述第一交易中包括所述第一子私钥和所述第一属性列表;所述存储所述第一子私钥和所述第一属性列表包括:在所述第一合约的合约状态中的账户信息列表中与所述第一账户关联地存储所述第一子私钥和所述第一属性列表。14.根据权利要求13所述的方法,所述第一交易中包括所述第一账户和对所述第一账户的子私钥和所述第一属性列表进行加密得到的第一密文,所述第一密文使用所述第一账户的公钥加密生成,所述在所述账户信息列表中与所述第一账户关联地存储所述第一子私钥和所述第一属性列表包括:在所述账户信息列表中与所述第一账户关联地存储所述第一密文。
15.一种区块链节点,所述区块链中存储有第一账户对应的用户的属性信息,所述区块链节点包括:发送单元,用于将所述第一账户对应的用户的属性信息发送给管理设备,所述管理设备包括用于基于属性加密算法生成的主公钥和主私钥;接收单元,用于从所述管理设备接收所述第一账户对应的第一子私钥和第一属性列表,所述第一属性列表中包括所述第一账户和所述属性信息,所述第一子私钥基于所述第一属性列表、所述主公钥和所述主私钥生成;存储单元,用于存储所述第一子私钥和所述第一属性列表。16.一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行权利要求12-14中任一项的所述的方法。

技术总结
一种数字身份管理方法、区块链节点和系统,所述系统包括管理设备和区块链,所述区块链中存储有第一账户对应的用户的属性信息,所述管理设备包括用于基于属性加密算法生成的主公钥和主私钥,所述管理设备用于:从所述区块链获取所述第一账户对应的用户的属性信息;生成所述用户的第一属性列表,基于所述第一属性列表、所述主公钥和所述主私钥生成第一子私钥,所述第一属性列表中包括所述第一账户和所述属性信息;将所述第一子私钥和所述第一属性列表发送给所述区块链;所述区块链用于存储所述第一子私钥和所述第一属性列表。述第一子私钥和所述第一属性列表。述第一子私钥和所述第一属性列表。


技术研发人员:张如意
受保护的技术使用者:蚂蚁区块链科技(上海)有限公司
技术研发日:2022.06.24
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-5183.html

最新回复(0)