区块链上身份管理方法和装置
文献发布时间:2023-06-19 09:54:18
技术领域
本申请涉及区块链技术领域,特别涉及一种区块链上身份管理方法和装置。
背景技术
目前,身份验证服务大多为中心化方式,这些中心化的验证服务提供对应的数据交互接口。身份验证服务的需求方通过调用身份验证服务的接口,然后该身份验证服务通过向身份所有者的用户发送授权信息,等待用户授权通过后获取身份验证的结果,再将用户的身份信息进行拷贝记录到自己的系统中对用户模型进行建立。
然而,中心化的方式导致了多数企业在提供对外服务的时候,必须要先进行用户模型的建立,这就导致了用户在各系统间的都需要重复进行繁琐的注册流程,提交多次身份验证信息。而且,对于用户而言多账户导致用户对账户的管理成本增加,极其容易忘记某些账号的密码。此外,各个系统间的用户数据相对孤立,无法直接在不改造自己系统的情况下产生数据的交互。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种区块链上身份管理方法和装置,以解决现有技术中的中心化身份验证服务需要重复注册的问题。
本申请实施例提供了一种区块链上身份管理方法,区块链系统中部署有身份类型管理智能合约和身份验证管理智能合约,该方法应用于区块链系统,包括:接收客户端发送的用户身份类型,调用身份类型管理智能合约,确定身份类型对应的标识值;将身份类型对应的标识值返回给客户端;接收客户端发送的身份注册请求,调用身份验证管理智能合约,登记用户的身份哈希值与用户的区块链账户地址之间的映射关系,其中,身份注册请求中携带有身份哈希值和区块链账户地址,身份哈希值是通过对用户输入的身份信息和标识值进行哈希处理后得到的,区块链账户地址是根据身份哈希值确定的。
在一个实施例中,在登记用户的身份哈希值与用户的区块链账户地址之间的映射关系之后,还包括:接收客户端发送的目标智能合约调用请求,其中,目标智能合约调用请求中携带有用户的区块链账户地址;调用身份验证管理智能合约,确定区块链账户地址是否合法;在确定区块链账户地址合法的情况下,计算调用目标智能合约所需的资源值;将资源值的资源数据发送至区块链账户地址,以使得用户能够使用区块链账户地址调用目标智能合约。
在一个实施例中,登记用户的身份哈希值与用户的区块链账户地址之间的映射关系,包括:登记用户的身份哈希值到用户的区块链账户地址的映射关系和/或用户的区块链账户地址到用户的身份哈希值的映射关系。
本申请实施例还提供了一种区块链上身份管理方法,区块链系统中部署有身份类型管理智能合约和身份验证管理智能合约,该方法应用于客户端,包括:接收用户输入的身份类型和身份信息;将身份类型发送至区块链系统中的身份类型管理智能合约;接收身份类型管理智能合约返回的身份类型对应的标识值;对身份信息和标识值进行哈希处理,得到身份哈希值;根据身份哈希值确定用户对应的区块链账户地址;向身份验证管理智能合约发送身份注册请求,其中,身份注册请求中携带有身份哈希值与区块链账户地址,身份验证管理智能合约登记身份哈希值与区块链账户地址之间的映射关系。
在一个实施例中,根据身份哈希值确定用户对应的区块链账户地址,包括:获取当前时间和系统随机数;根据身份哈希值、当前时间和系统随机数确定用户对应的区块链账户地址。
在一个实施例中,根据身份哈希值、当前时间和系统随机数确定用户对应的区块链账户地址,包括:将身份哈希值、当前时间和系统随机数作为随机源,得到用户对应的区块链账户私钥;基于区块链账户私钥通过预设密码算法确定对应的区块链账户公钥;根据区块链账户公钥推导出用户对应的区块链账户地址。
在一个实施例中,在将身份哈希值和区块链账户地址发送至区块链系统中部署的身份验证管理智能合约之后,还包括:接收用户发出的目标智能合约调用指令,其中,目标智能合约调用指令用于调用区块链系统中的目标智能合约;向区块链系统发送目标智能合约调用请求,其中,目标智能合约调用请求中包括用户的区块链账户地址,区块链系统调用身份验证管理智能合约确定区块链账户是否合法,在确定区块链账户合法的情况下,计算调用目标智能合约所需的资源值并向区块链账户地址发送资源值的资源数据,使得用户能够使用区块链账户地址调用目标智能合约。
本申请实施例还提供了一种区块链上身份管理方法,区块链系统中部署有身份类型管理智能合约和身份验证管理智能合约,该方法包括:客户端接收用户输入的身份类型和身份信息;客户端将身份类型发送至区块链系统中的身份类型管理智能合约;身份类型管理智能合约确定身份类型对应的标识值,并将标识值返回给客户端;客户端接收标识值,并对身份信息和标识值进行哈希处理,得到身份哈希值;客户端根据身份哈希值确定用户对应的区块链账户地址;客户端向身份验证管理智能合约发送身份注册请求,其中,身份注册请求中携带有身份哈希值与区块链账户地址;身份验证管理智能合约登记身份哈希值与区块链账户地址之间的映射关系。
本申请实施例还提供了一种区块链上身份管理装置,区块链系统中部署有身份类型管理智能合约和身份验证管理智能合约,该装置位于区块链系统,包括:确定模块,用于接收客户端发送的用户身份类型,调用身份类型管理智能合约,确定身份类型对应的标识值;返回模块,用于将身份类型对应的标识值返回给客户端;登记模块,用于接收客户端发送的身份注册请求,调用身份验证管理智能合约,登记用户的身份哈希值与用户的区块链账户地址之间的映射关系,其中,身份注册请求中携带有身份哈希值和区块链账户地址,身份哈希值是通过对用户输入的身份信息和标识值进行哈希处理后得到的,区块链账户地址是根据身份哈希值确定的。
本申请实施例还提供一种计算机设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述任意实施例中所述的区块链上身份管理方法的步骤。
本申请实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述任意实施例中所述的区块链上身份管理方法的步骤。
在本申请实施例中,提供了一种区块链上身份管理方法,区块链系统中部署有身份类型管理智能合约和身份验证管理智能合约,客户端在接收到用户输入的身份类型和身份数据之后,可以将身份类型发送至区块链系统,区块链系统接收客户端发送的用户身份类型,调用身份类型管理智能合约,确定身份类型对应的标识值,并将身份类型对应的标识值返回给客户端,客户端对身份类型对应的标识值和身份数据进行哈希处理,得到身份哈希值,客户端向区块链系统发送携带有身份哈希值和区块链账户地址的身份注册请求,区块链系统接收客户端发送的身份注册请求,调用身份验证管理智能合约,登记用户的身份哈希值与用户的区块链账户地址之间的映射关系。上述方案中,通过调用区块链系统中部署的身份类型管理智能合约和身份验证管理智能合约,将用户的身份哈希值和用户的区块链账户地址之间的映射关系上传到区块链系统进行登记,有利于对用户的身份信息进行统一管理,还可以有效保护用户隐私。通过上述方案解决了现有的中心化身份验证服务需要重复注册的技术问题,达到了保护用户隐私且便于对用户进行统一管理的技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,并不构成对本申请的限定。在附图中:
图1示出了本申请一实施例中区块链上身份管理方法的应用场景的示意图;
图2示出了本申请一实施例中的区块链上身份管理方法的流程图;
图3示出了本申请一实施例中的区块链上身份管理方法的流程图;
图4示出了本申请一实施例中的区块链上身份管理方法的流程图;
图5示出了本申请一实施例中的区块链上身份管理装置的示意图;
图6示出了本申请一实施例中的计算机设备的示意图。
具体实施方式
下面将参考若干示例性实施方式来描述本申请的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本申请,而并非以任何方式限制本申请的范围。相反,提供这些实施方式是为了使本申请公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
本领域的技术人员知道,本申请的实施方式可以实现为一种系统、装置设备、方法或计算机程序产品。因此,本申请公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
本说明书实施例提供的一个场景示例中,区块链系统是图灵完备或者图灵不完备的。该类区块链系统拥有智能合约运行的虚拟机环境。在区块链系统中可以部署身份类型管理智能合约,该智能合约用于记录常见的链外真实世界的身份类型信息(比如身份证类型和护照类型等等)与链上标识值之间的映射关系。该智能合约能够被区块链系统中其他智能合约调用,以获取身份类型的链上和链外的对应的值。在首次部署该智能合约后,由该智能合约的所有者(区块链系统管理员)设置目前需要区块链系统支持的身份类型以及其对应的标识值,永久记录在该智能合约中。在区块链系统中部署身份验证管理智能合约,该智能合约用于登记用户链外身份信息的哈希和链上账户信息之间的映射关系,记录用户链上账户信息的用于表示账户是否可用的状态,并且可以在需要获取授权的智能合约项目时给调用该项目的用户账户进行授权。
区块链系统存在对应的应用程序,用户可以使用区块链系统的应用程序进行身份注册流程。用户可以在自己的客户端设备上安装该应用程序。首先,用户在客户端上选择自己的链下身份类型,该链下身份类型对应的链上的标识值可以通过调用身份类型管理智能合约获得。用户向客户端输入对应身份类型的身份信息。客户端将身份类型对应的标识值和身份信息进行数据哈希处理,得到身份哈希值,此过程不可逆,所以用户身份隐私可以得到有效的保护。之后客户端将身份哈希值和精确到毫秒的当前之间以及一个系统随机数一起作为随机源获得该用户对应的区块链账户私钥,该私钥通过椭圆曲线密码算法推导出一个对应公钥,由公钥再推到出一个地址,以此来作为用户在区块链系统的区块链账户地址。客户端将身份哈希值和刚才得到的区块链账户地址一起提交给身份验证管理智能合约,身份验证管理智能合约获取到这些参数后登记身份哈希值与区块链账户地址之间的映射关系。
用户在通过客户端向需要调用的目标智能合约发送交易时,先调用身份验证管理智能合约,身份验证管理智能合约首先查询用户的区块链账户地址是否为合法的账户,然后计算用户调用目标智能合约需要消耗多少资源数据。身份验证管理智能合约会根据计算出来的资源值向用户对应的区块链账户地址发送该资源值的资源数据。用户可以使用该区块链账户地址通过调用目标智能合约的方法来获取区块链对应的目标服务。
本申请实施例提供了一种区块链上身份管理方法。图1示出了本申请一实施例中区块链上身份管理方法的应用场景的示意图。如图1所示,用户可以向客户端输入身份类型和身份数据。其中,身份类型可以包括身份证、军官证、驾驶证和护照等各种身份类型。身份数据可以包括身份证号、军官证号、驾驶证号和护照号等各种数据。客户端可以将身份类型发送至区块链系统中部署的预言机智能合约。预言机智能合约可以确定该身份类型对应的标识值,并将该标识值返回给客户端。客户端可以对身份数据和身份类型对应的标识值进行哈希处理,得到身份哈希值。客户端可以根据身份哈希值确定用户私钥,根据用户私钥和预设密码算法计算出用户公钥,根据用户公钥推导出账户地址,从而得到区块链账户地址。客户端向区块链系统中部署的身份验证管理智能合约发送身份注册请求,其中,身份注册请求中包括用户的身份哈希值和区块链账户地址。身份验证管理智能合约登记身份哈希值与区块链账户地址之间的映射关系。身份验证管理智能合约登记之后,向用户返回注册结果信息,若登记成功,则返回注册成功信息,否则返回注册失败信息。
图2示出了本申请一实施例中区块链上身份管理方法的流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例描述及附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至分布式处理环境)。
具体地,如图2所示,本申请一种实施例提供的区块链上身份管理方法可以包括以下步骤:
步骤S201,接收客户端发送的用户身份类型,调用身份类型管理智能合约,确定身份类型对应的标识值。
步骤S202,将身份类型对应的标识值返回给客户端。
区块链系统中部署有身份类型管理智能合约和身份验证管理智能合约。客户端在接收到用户输入的身份类型之后,将身份类型发送至区块链系统,区块链系统调用其中部署的身份类型管理智能合约,确定身份类型对应的标识值。例如,身份类型可以包括身份证和护照,与身份证对应的标识值为0,与护照对应的标识值为1。在确定身份类型对应的标识值之后,身份类型管理智能合约将该标识值返回给客户端。
步骤S203,接收客户端发送的身份注册请求,调用身份验证管理智能合约,登记用户的身份哈希值与用户的区块链账户地址之间的映射关系。
客户端接收到身份类型管理智能合约返回的标识值之后,对该标识值和用户输入的身份数据进行哈希处理,得到用户的身份哈希值。客户端可以根据用户的身份哈希值确定用户在区块链系统的账户地址,即用户的区块链账户地址。客户端可以向区块链系统发送身份注册请求。其中,身份注册请求中携带有身份哈希值和区块链账户地址。区块链系统调用身份验证管理智能合约,登记用户的身份哈希值与用户的区块链账户地址之间的映射关系。在一些实施例中,身份验证管理智能合约可以登记用户的身份哈希值到用户的区块链账户地址的映射关系和/或用户的区块链账户地址到用户的身份哈希值的映射关系。
上述实施例中的区块链上身份管理方法中,通过调用区块链系统中部署的身份类型管理智能合约和身份验证管理智能合约,将用户的身份哈希值和用户的区块链账户地址之间的映射关系上传到区块链系统进行登记,有利于对用户的身份信息进行统一管理,还可以有效保护用户隐私。
在本申请一些实施例中,在登记用户的身份哈希值与用户的区块链账户地址之间的映射关系之后,还可以包括:接收客户端发送的目标智能合约调用请求,其中,目标智能合约调用请求中携带有用户的区块链账户地址;调用身份验证管理智能合约,确定区块链账户地址是否合法;在确定区块链账户地址合法的情况下,计算调用目标服务所需的资源值;将资源值的资源数据发送至区块链账户地址,以使得用户能够使用区块链账户地址调用目标服务。
在通过调用身份类型管理智能合约和身份验证管理智能合约将用户的身份哈希值和用户的区块链账户地址之间的映射关系登记到区块链系统之后,用户可以通过客户端调用区块链系统中的其他智能合约,从而调用其他服务。
具体地,用户可以通过客户端发送目标智能合约调用请求。其中,目标智能合约调用请求中携带有用户的区块链账户地址。身份验证管理智能合约可以确定目标智能合约调用请求中的区块链账户地址是否合法。示例性的,区块链账户地址是否合法可以根据该区块链账户的历史交易行为来判定。在身份验证管理智能合约确定区块链账户地址合法的情况下,身份验证管理智能合约计算调用目标智能合约所需的资源值。
示例性的,目标智能合约调用请求中携带有要调用的目标智能合约对应的标识信息。身份验证管理智能合约中存储有资源数据关系表。其中,资源数据关系表中记录有目标智能合约对应的标识信息与资源值之间的对应关系。身份验证管理智能合约可以根据目标智能合约的标识信息确定调用该目标智能合约所需要的资源值。在身份验证管理智能合约确定出调用目标智能合约所需的资源值之后,将该资源值的资源数据发送至用户的区块链账户地址,使得用户能够使用该区块链地址调用目标智能合约。其中,资源数据可以是区块链中的燃油,资源值即燃油值。
上述实施例中的区块链上身份管理方法,可以通过身份验证管理智能合约确定用户的区块链账户地址是否合法,并在确定合法的情况下给该区块链账户地址授权,以使得用户可以通过该区块链账户地址调用区块链系统中的其他智能合约。
本申请实施例还提供了一种区块链上身份管理方法。图3示出了本申请一实施例中区块链上身份管理方法的流程图。区块链系统中部署有身份类型管理智能合约和身份验证管理智能合约。本实施例中的区块链上身份管理方法应用于客户端,请参考图3,该方法可以包括以下步骤。
步骤S301,接收用户输入的身份类型和身份信息。
步骤S302,将身份类型发送至区块链系统中的身份类型管理智能合约。
步骤S303,接收身份类型管理智能合约返回的身份类型对应的标识值。
具体地,客户端可以接收用户输入的身份类型和身份信息。其中,身份类型可以包括身份证、军官证、驾驶证和护照等各种身份类型。身份数据可以包括身份证号、军官证号、驾驶证号和护照号等各种数据。
客户端在接收到用户输入的身份类型之后,可以将身份类型发送至区块链系统,区块链系统调用其中部署的身份类型管理智能合约,确定身份类型对应的标识值。例如,身份类型可以包括身份证和护照,与身份证对应的标识值为0,与护照对应的标识值为1。在确定身份类型对应的标识值之后,身份类型管理智能合约将该标识值返回给客户端。
步骤S304,对身份信息和标识值进行哈希处理,得到身份哈希值。
步骤S305,根据身份哈希值确定用户对应的区块链账户地址。
步骤S306,向身份验证管理智能合约发送身份注册请求。
客户端在接收身份类型管理智能合约返回的标识值之后,可以对身份信息和标识值进行哈希处理,得到身份哈希值。客户端可以根据身份哈希值确定用户在区块链系统上的账户地址,即该用户对应的区块链账户地址。之后,客户端可以向区块链系统中部署的身份验证管理智能合约发送身份注册请求。其中,身份注册请求中携带有身份哈希值与区块链账户地址,身份验证管理智能合约登记身份哈希值与区块链账户地址之间的映射关系。在一些实施例中,身份验证管理智能合约可以登记用户的身份哈希值到用户的区块链账户地址的映射关系和/或用户的区块链账户地址到用户的身份哈希值的映射关系。
上述实施例中的区块链上身份管理方法中,通过调用区块链系统中部署的身份类型管理智能合约获取身份类型对应的标识值,对标识值和身份数据进行哈希处理,得到身份哈希值,并根据身份哈希值确定用户的区块链账户地址,向身份验证管理智能合约发送身份哈希值和区块链账户地址,以通过身份验证管理智能合约将用户的身份哈希值和用户的区块链账户地址之间的映射关系上传到区块链系统进行登记,有利于对用户的身份信息进行统一管理,还可以有效保护用户隐私。
在本申请一些实施例中,根据身份哈希值确定用户对应的区块链账户地址,可以包括:获取当前时间和系统随机数;根据身份哈希值、当前时间和系统随机数确定用户对应的区块链账户地址。其中,当前时间可以是确定区块链账户地址的时刻对应的精确到毫秒的系统时间。上述方式,根据当前时间、系统随机数和身份哈希值来确定区块链账户地址,可以保证区块链账户地址的唯一性和安全性。
在本申请一些实施例中,根据身份哈希值、当前时间和系统随机数确定用户对应的区块链账户地址,可以包括:将身份哈希值、当前时间和系统随机数作为随机源,得到用户对应的区块链账户私钥;基于区块链账户私钥通过预设密码算法确定对应的区块链账户公钥;根据区块链账户公钥推导出用户对应的区块链账户地址。
具体地,在获得当前时间和系统随机数之后,可以将身份哈希值、当前时间和系统随机数作为随机源,得到用户对应的区块链账户私钥。之后,可以通过预设密码算法对区块链账户私钥进行计算,得到对应的区块链账户公钥。例如,预设密码算法可以是椭圆曲线密码算法。之后,可以根据区块链账户公钥推导出用户对应的区块链账户地址。通过上述方式,可以基于当前时间、系统随机数和身份哈希值确定出区块链账户地址。
在本申请一些实施例中,在将身份哈希值和区块链账户地址发送至区块链系统中部署的身份验证管理智能合约之后,还可以包括:接收用户发出的目标智能合约调用指令,其中,目标智能合约调用指令用于调用区块链系统中的目标智能合约;向区块链系统发送目标智能合约调用请求,其中,目标智能合约调用请求中包括用户的区块链账户地址,区块链系统调用身份验证管理智能合约确定区块链账户是否合法,在确定区块链账户合法的情况下,计算调用目标智能合约所需的资源值并向区块链账户地址发送资源值的资源数据,使得用户能够使用区块链账户地址调用目标智能合约。
具体地,用户可以向客户端发起目标智能合约调用指令。其中,标智能合约调用指令用于调用区块链系统中的目标智能合约。客户端响应于该调用指令,向区块链系统发送目标智能合约调用请求。其中,目标智能合约调用请求中携带有用户的区块链账户地址。可以调用身份验证管理智能合约确定目标智能合约调用请求中的区块链账户地址是否合法。示例性的,区块链账户地址是否合法可以根据该区块链账户的历史交易行为来判定。在身份验证管理智能合约确定区块链账户地址合法的情况下,身份验证管理智能合约计算调用目标智能合约所需的资源值。
示例性的,目标智能合约调用请求中携带有要调用的目标智能合约对应的标识信息。身份验证管理智能合约中存储有资源数据关系表。其中,资源数据关系表中记录有目标智能合约对应的标识信息与资源值之间的对应关系。身份验证管理智能合约可以根据目标智能合约的标识信息确定调用该目标智能合约所需要的资源值。在身份验证管理智能合约确定出调用目标智能合约所需的资源值之后,将该资源值的资源数据发送至用户的区块链账户地址,使得用户能够使用该区块链地址调用目标智能合约。
上述实施例中的区块链上身份管理方法,可以通过身份验证管理智能合约确定用户的区块链账户地址是否合法,并在确定合法的情况下给该区块链账户地址授权,以使得用户可以通过该区块链账户地址调用区块链系统中的其他智能合约。
本申请实施例还提供了一种区块链上身份管理方法。图4示出了本申请一实施例中区块链上身份管理方法的流程图。区块链系统中部署有身份类型管理智能合约和身份验证管理智能合约。请参考图4,本实施例中的区块链上身份管理方法可以包括以下步骤。
步骤S401,客户端接收用户输入的身份类型和身份信息。
步骤S402,客户端将身份类型发送至区块链系统中的身份类型管理智能合约。
步骤S403,身份类型管理智能合约确定身份类型对应的标识值,并将标识值返回给客户端。
步骤S404,客户端接收标识值,并对身份信息和标识值进行哈希处理,得到身份哈希值。
步骤S405,客户端根据身份哈希值确定用户对应的区块链账户地址。
步骤S406,客户端向身份验证管理智能合约发送身份注册请求,其中,身份注册请求中携带有身份哈希值与区块链账户地址。
步骤S407,身份验证管理智能合约登记身份哈希值与区块链账户地址之间的映射关系。
上述实施例中的区块链上身份管理方法中,客户端通过调用区块链系统中部署的身份类型管理智能合约获取身份类型对应的标识值,对标识值和身份数据进行哈希处理,得到身份哈希值,并根据身份哈希值确定用户的区块链账户地址,向身份验证管理智能合约发送身份哈希值和区块链账户地址,以通过身份验证管理智能合约将用户的身份哈希值和用户的区块链账户地址之间的映射关系上传到区块链系统进行登记,有利于对用户的身份信息进行统一管理,还可以有效保护用户隐私。
基于同一发明构思,本申请实施例中还提供了一种区块链上身份管理装置,位于区块链系统中,如下面的实施例所述。由于区块链上身份管理装置解决问题的原理与区块链上身份管理方法相似,因此区块链上身份管理装置的实施可以参见区块链上身份管理方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图5是本申请实施例的区块链上身份管理装置的一种结构框图,如图5所示,包括:确定模块501、返回模块502和登记模块503,下面对该结构进行说明。
确定模块501用于接收客户端发送的用户身份类型,调用身份类型管理智能合约,确定身份类型对应的标识值。
返回模块502用于将身份类型对应的标识值返回给客户端。
登记模块503用于接收客户端发送的身份注册请求,调用身份验证管理智能合约,登记用户的身份哈希值与用户的区块链账户地址之间的映射关系,其中,身份注册请求中携带有身份哈希值和区块链账户地址,身份哈希值是通过对用户输入的身份信息和标识值进行哈希处理后得到的,区块链账户地址是根据身份哈希值确定的。
在本申请一些实施例中,该装置还包括调用模块,调用模块具体用于:在登记用户的身份哈希值与用户的区块链账户地址之间的映射关系之后,接收客户端发送的目标智能合约调用请求,其中,目标智能合约调用请求中携带有用户的区块链账户地址;调用身份验证管理智能合约,确定区块链账户地址是否合法;在确定区块链账户地址合法的情况下,计算调用目标智能合约所需的资源值;将资源值的资源数据发送至区块链账户地址,以使得用户能够使用区块链账户地址调用目标智能合约。
在本申请一些实施例中,登记模块具体用于:登记用户的身份哈希值到用户的区块链账户地址的映射关系和/或用户的区块链账户地址到用户的身份哈希值的映射关系。
从以上的描述中,可以看出,本申请实施例实现了如下技术效果:通过调用区块链系统中部署的身份类型管理智能合约获取身份类型对应的标识值,对标识值和身份数据进行哈希处理,得到身份哈希值,并根据身份哈希值确定用户的区块链账户地址,向身份验证管理智能合约发送身份哈希值和区块链账户地址,以通过身份验证管理智能合约将用户的身份哈希值和用户的区块链账户地址之间的映射关系上传到区块链系统进行登记,有利于对用户的身份信息进行统一管理,还可以有效保护用户隐私。
本申请实施方式还提供了一种计算机设备,具体可以参阅图6所示的基于本申请实施例提供的区块链上身份管理方法的计算机设备组成结构示意图,所述计算机设备具体可以包括输入设备61、处理器62、存储器63。其中,所述存储器63用于存储处理器可执行指令。所述处理器62执行所述指令时实现上述任意实施例中所述的区块链上身份管理方法的步骤。
在本实施方式中,所述输入设备具体可以是用户和计算机系统之间进行信息交换的主要装置之一。所述输入设备可以包括键盘、鼠标、摄像头、扫描仪、光笔、手写输入板、语音输入装置等;输入设备用于把原始数据和处理这些数的程序输入到计算机中。所述输入设备还可以获取接收其他模块、单元、设备传输过来的数据。所述处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述存储器具体可以是现代信息技术中用于保存信息的记忆设备。所述存储器可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
在本实施方式中,该计算机设备具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
本申请实施方式中还提供了一种基于区块链上身份管理方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现上述任意实施例中所述区块链上身份管理方法的步骤。
在本实施方式中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施方式中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
基于本发明的一个方面,本发明的实施例公开了:
A1.一种区块链上身份管理方法,区块链系统中部署有身份类型管理智能合约和身份验证管理智能合约,所述方法应用于区块链系统,包括:
接收客户端发送的用户身份类型,调用所述身份类型管理智能合约,确定所述身份类型对应的标识值;
将所述身份类型对应的标识值返回给所述客户端;
接收客户端发送的身份注册请求,调用所述身份验证管理智能合约,登记用户的身份哈希值与用户的区块链账户地址之间的映射关系,其中,所述身份注册请求中携带有所述身份哈希值和所述区块链账户地址,所述身份哈希值是通过对用户输入的身份信息和所述标识值进行哈希处理后得到的,所述区块链账户地址是根据所述身份哈希值确定的。
A2.根据条款A1所述的方法,在登记用户的身份哈希值与用户的区块链账户地址之间的映射关系之后,还包括:
接收客户端发送的目标智能合约调用请求,其中,所述目标智能合约调用请求中携带有用户的区块链账户地址;
调用所述身份验证管理智能合约,确定所述区块链账户地址是否合法;
在确定所述区块链账户地址合法的情况下,计算调用所述目标智能合约所需的资源值;
将所述资源值的资源数据发送至所述区块链账户地址,以使得用户能够使用所述区块链账户地址调用所述目标智能合约。
A3.根据条款A1所述的方法,登记用户的身份哈希值与用户的区块链账户地址之间的映射关系,包括:
登记用户的身份哈希值到用户的区块链账户地址的映射关系和/或用户的区块链账户地址到用户的身份哈希值的映射关系。
B4.一种区块链上身份管理方法,区块链系统中部署有身份类型管理智能合约和身份验证管理智能合约,所述方法应用于客户端,包括:
接收用户输入的身份类型和身份信息;
将所述身份类型发送至所述区块链系统中的身份类型管理智能合约;
接收所述身份类型管理智能合约返回的所述身份类型对应的标识值;
对所述身份信息和所述标识值进行哈希处理,得到身份哈希值;
根据所述身份哈希值确定所述用户对应的区块链账户地址;
向所述身份验证管理智能合约发送身份注册请求,其中,所述身份注册请求中携带有所述身份哈希值与所述区块链账户地址,所述身份验证管理智能合约登记所述身份哈希值与所述区块链账户地址之间的映射关系。
B5.根据条款B4所述的方法,根据所述身份哈希值确定所述用户对应的区块链账户地址,包括:
获取当前时间和系统随机数;
根据所述身份哈希值、所述当前时间和所述系统随机数确定所述用户对应的区块链账户地址。
B6.根据条款B5所述的方法,根据所述身份哈希值、所述当前时间和所述系统随机数确定所述用户对应的区块链账户地址,包括:
将所述身份哈希值、所述当前时间和所述系统随机数作为随机源,得到所述用户对应的区块链账户私钥;
基于所述区块链账户私钥通过预设密码算法确定对应的区块链账户公钥;
根据所述区块链账户公钥推导出所述用户对应的区块链账户地址。
B7.根据条款B4所述的方法,在将所述身份哈希值和所述区块链账户地址发送至所述区块链系统中部署的身份验证管理智能合约之后,还包括:
接收用户发出的目标智能合约调用指令,其中,所述目标智能合约调用指令用于调用所述区块链系统中的目标智能合约;
向所述区块链系统发送目标智能合约调用请求,其中,所述目标智能合约调用请求中包括所述用户的区块链账户地址,所述区块链系统调用所述身份验证管理智能合约确定所述区块链账户是否合法,在确定所述区块链账户合法的情况下,计算调用所述目标智能合约所需的资源值并向所述区块链账户地址发送所述资源值的资源数据,使得用户能够使用所述区块链账户地址调用所述目标智能合约。
C8.一种区块链上身份管理方法,区块链系统中部署有身份类型管理智能合约和身份验证管理智能合约,所述方法包括:
客户端接收用户输入的身份类型和身份信息;
客户端将所述身份类型发送至所述区块链系统中的身份类型管理智能合约;
所述身份类型管理智能合约确定所述身份类型对应的标识值,并将所述标识值返回给所述客户端;
所述客户端接收所述标识值,并对所述身份信息和所述标识值进行哈希处理,得到身份哈希值;
所述客户端根据所述身份哈希值确定所述用户对应的区块链账户地址;
所述客户端向所述身份验证管理智能合约发送身份注册请求,其中,所述身份注册请求中携带有所述身份哈希值与所述区块链账户地址;
所述身份验证管理智能合约登记所述身份哈希值与所述区块链账户地址之间的映射关系。
D9.一种区块链上身份管理装置,区块链系统中部署有身份类型管理智能合约和身份验证管理智能合约,所述装置位于所述区块链系统,包括:
确定模块,用于接收客户端发送的用户身份类型,调用所述身份类型管理智能合约,确定所述身份类型对应的标识值;
返回模块,用于将所述身份类型对应的标识值返回给所述客户端;
登记模块,用于接收客户端发送的身份注册请求,调用所述身份验证管理智能合约,登记用户的身份哈希值与用户的区块链账户地址之间的映射关系,其中,所述身份注册请求中携带有所述身份哈希值和所述区块链账户地址,所述身份哈希值是通过对用户输入的身份信息和所述标识值进行哈希处理后得到的,所述区块链账户地址是根据所述身份哈希值确定的。
D10.根据条款D9所述的装置,还包括调用模块,所述调用模块用于:
在登记用户的身份哈希值与用户的区块链账户地址之间的映射关系之后,接收客户端发送的目标智能合约调用请求,其中,所述目标智能合约调用请求中携带有用户的区块链账户地址;
调用所述身份验证管理智能合约,确定所述区块链账户地址是否合法;
在确定所述区块链账户地址合法的情况下,计算调用所述目标智能合约所需的资源值;
将所述资源值的资源数据发送至所述区块链账户地址,以使得用户能够使用所述区块链账户地址调用所述目标智能合约。
D11.根据条款D9所述的装置,所述登记模块具体用于:
登记用户的身份哈希值到用户的区块链账户地址的映射关系和/或用户的区块链账户地址到用户的身份哈希值的映射关系。
E12.一种区块链上身份管理装置,区块链系统中部署有身份类型管理智能合约和身份验证管理智能合约,所述装置位于客户端,包括:
身份信息接收模块,用于接收用户输入的身份类型和身份信息;
身份类型发送模块,用于将所述身份类型发送至所述区块链系统中的身份类型管理智能合约;
标识值接收模块,用于接收所述身份类型管理智能合约返回的所述身份类型对应的标识值;
哈希处理模块,用于对所述身份信息和所述标识值进行哈希处理,得到身份哈希值;
地址确定模块,用于根据所述身份哈希值确定所述用户对应的区块链账户地址;
请求发送模块,用于向所述身份验证管理智能合约发送身份注册请求,其中,所述身份注册请求中携带有所述身份哈希值与所述区块链账户地址,所述身份验证管理智能合约登记所述身份哈希值与所述区块链账户地址之间的映射关系。
E13.根据条款E12所述的装置,所述地址确定模块具体用于:
获取单元,用于获取当前时间和系统随机数;
确定单元,用于根据所述身份哈希值、所述当前时间和所述系统随机数确定所述用户对应的区块链账户地址。
E14.根据条款E13所述的装置,所述确定单元具体用于:
将所述身份哈希值、所述当前时间和所述系统随机数作为随机源,得到所述用户对应的区块链账户私钥;
基于所述区块链账户私钥通过预设密码算法确定对应的区块链账户公钥;
根据所述区块链账户公钥推导出所述用户对应的区块链账户地址。
E15.根据条款E12所述的装置,还包括调用模块,所述调用模块用于:
在将所述身份哈希值和所述区块链账户地址发送至所述区块链系统中部署的身份验证管理智能合约之后,接收用户发出的目标智能合约调用指令,其中,所述目标智能合约调用指令用于调用所述区块链系统中的目标智能合约;
向所述区块链系统发送目标智能合约调用请求,其中,所述目标智能合约调用请求中包括所述用户的区块链账户地址,所述区块链系统调用所述身份验证管理智能合约确定所述区块链账户是否合法,在确定所述区块链账户合法的情况下,计算调用所述目标智能合约所需的资源值并向所述区块链账户地址发送所述资源值的资源数据,使得用户能够使用所述区块链账户地址调用所述目标智能合约。
F16.一种计算机设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现条款A1至A3中任一项所述方法的步骤。
F17.一种计算机设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现条款B4至B7中任一项所述方法的步骤。
G18.一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现条款A1至A3中任一项所述方法的步骤。
G19.一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现条款B4至B7中任一项所述方法的步骤。
显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。
应该理解,以上描述是为了进行图示说明而不是为了进行限制。通过阅读上述描述,在所提供的示例之外的许多实施方式和许多应用对本领域技术人员来说都将是显而易见的。因此,本申请的范围不应该参照上述描述来确定,而是应该参照前述权利要求以及这些权利要求所拥有的等价物的全部范围来确定。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请实施例可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
- 区块链上身份管理方法和装置
- 可信执行环境下的区块链上身份数字化实现方法及系统