区块链网络的资源处理方法、装置、产品、设备和介质转让专利

申请号 : CN202311290511.7

文献号 : CN117040930B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 刘汉卿梁军王宗友蔡庆普吴方时一防朱耿良刘区城廖志勇聂凯轩黄杨峻

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本申请公开了一种区块链网络的资源处理方法、装置、产品、设备和介质,该方法包括:获取被授权对象的资源调用请求,资源调用请求中包含授权对象向被授权对象发放的目标资源授权凭证,目标资源授权凭证用于指示被授权对象具备对授权对象在区块链网络中的资源的使用权限;基于目标资源授权凭证,获取授权对象在区块链网络中的资源包地址;基于授权对象的资源包地址,从授权对象的资源包中获取资源调用请求所请求调用的资源;将获取的资源分配给被授权对象使用。采用本申请,可丰富对区块链网络中的资源的使用方式,并提升对区块链网络中的资源的使用灵活性。

权利要求 :

1.一种区块链网络的资源处理方法,其特征在于,所述方法包括:

获取被授权对象的资源调用请求,所述资源调用请求中包含授权对象向所述被授权对象发放的目标资源授权凭证,所述目标资源授权凭证用于指示所述被授权对象具备对所述授权对象在所述区块链网络中的资源的使用权限;所述目标资源授权凭证是采用所述授权对象的对象私钥对拼接数据进行签名处理后得到的,所述拼接数据中拼接有所述被授权对象在所述区块链网络中的资源包地址;

获取发起所述资源调用请求的资源包地址,基于发起所述资源调用请求的资源包地址还原出所述拼接数据;

基于所述目标资源授权凭证和还原的所述拼接数据,推算所述授权对象的对象公钥,基于所述授权对象的对象公钥获取所述授权对象在区块链网络中的资源包地址;

基于所述授权对象的资源包地址,从所述授权对象的资源包中获取所述资源调用请求所请求调用的资源;

将获取的资源分配给所述被授权对象使用。

2.如权利要求1所述的方法,其特征在于,所述拼接数据是对授权标识、资源授权量和所述被授权对象在所述区块链网络中的资源包地址进行拼接处理后得到的;

其中,所述授权标识用于标识目标授权次数,所述目标授权次数是对已有资源授权次数和单位资源授权次数进行加和后得到的,所述已有资源授权次数是在所述授权对象请求对所述被授权对象发放资源授权凭证时所述区块链网络中已累计的资源授权总次数;

所述资源授权量是所述授权对象授权给所述被授权对象进行使用的资源的资源量。

3.如权利要求2所述的方法,其特征在于,所述基于发起所述资源调用请求的资源包地址还原出所述拼接数据,包括:对发起所述资源调用请求的资源包地址、所述资源调用请求中的所述授权标识及所述资源授权量进行拼接处理,以还原出所述拼接数据;

所述基于所述目标资源授权凭证和还原的所述拼接数据,推算所述授权对象的对象公钥,包括:基于签名验证算法对还原的所述拼接数据和所述目标资源授权凭证进行签名验证运算,以推算出所述授权对象的对象公钥。

4.如权利要求1所述的方法,其特征在于,所述资源调用请求中包含资源调用量;

所述基于所述授权对象的资源包地址,从所述授权对象的资源包中获取所述资源调用请求所请求调用的资源,包括:基于所述授权对象的资源包地址,从所述授权对象的资源包中获取所述资源调用请求所请求调用的目标资源;

其中,所述目标资源的资源量等于所述资源调用量。

5.如权利要求4所述的方法,其特征在于,所述资源调用请求是调用资源处理合约进行资源调用的请求,所述资源调用请求包含授权标识和所述授权对象授权给所述被授权对象进行使用的资源的资源授权量;

在从所述授权对象的资源包中获取所述目标资源之前,所述方法还包括:检测所述资源处理合约中是否存储有所述授权标识所属的授权对应关系;

若检测到所述资源处理合约中未存储有所述授权标识所属的授权对应关系,则在所述资源处理合约中存储所述授权标识与授权数据之间的授权对应关系;

其中,所述授权数据包括发起所述资源调用请求的资源包地址和所述被授权对象在所述授权对象的资源包中的剩余资源授权量,在所述授权标识与所述授权数据之间的授权对应关系被存储至所述资源处理合约中时,所述授权数据中的剩余资源授权量等于所述资源授权量。

6.如权利要求5所述的方法,其特征在于,所述方法还包括:

若检测到所述资源处理合约中存储有所述授权标识所属的授权对应关系,则检测存储的授权对应关系中的资源包地址与发起所述资源调用请求的资源包地址之间的一致性;

若该存储的授权对应关系中的资源包地址与发起所述资源调用请求的资源包地址一致,则启动从所述授权对象的资源包中获取所述目标资源的流程。

7.如权利要求5所述的方法,其特征在于,所述资源调用请求中包含目标资源包地址,所述目标资源包地址是用于接收所述资源调用请求所请求调用的资源的资源包地址,所述资源调用请求是基于所述被授权对象在所述区块链网络中的资源包地址发起的;

所述将获取的资源分配给所述被授权对象使用,包括:

基于所述被授权对象的资源包地址,将所述目标资源转移至所述目标资源包地址所属的资源包中。

8.如权利要求7所述的方法,其特征在于,所述基于所述被授权对象的资源包地址,将所述目标资源转移至所述目标资源包地址所属的资源包中,包括:获取所述资源处理合约存储的所述授权标识所属授权对应关系中的剩余资源授权量,并对获取的剩余资源授权量与所述资源调用量进行比对;

若比对出获取的剩余资源授权量大于或等于所述资源调用量,则基于所述被授权对象的资源包地址,将所述目标资源转移至所述目标资源包地址所属的资源包中。

9.如权利要求8所述的方法,其特征在于,所述若比对出获取的剩余资源授权量大于或等于所述资源调用量,则基于所述被授权对象的资源包地址,将所述目标资源转移至所述目标资源包地址所属的资源包中,包括:若比对出获取的剩余资源授权量大于或等于所述资源调用量,则获取所述授权对象的资源包中的资源的资源总量;

对所述资源总量与所述资源调用量进行比对;

若比对出所述资源总量大于或等于所述资源调用量,则基于所述被授权对象的资源包地址,将所述目标资源转移至所述目标资源包地址所属的资源包中。

10.如权利要求7所述的方法,其特征在于,在将所述目标资源转移至所述目标资源包地址所属的资源包中之后,所述方法还包括:计算所述资源处理合约存储的所述授权标识所属授权对应关系中的剩余资源授权量与所述资源调用量之间的资源量差值;

将所述资源处理合约存储的所述授权标识所属授权对应关系中的剩余资源授权量,更新为所述资源量差值。

11.如权利要求1所述的方法,其特征在于,在将获取的资源分配给所述被授权对象使用之后,所述方法还包括:生成用于提示所述授权对象资源被使用成功的第一提示信息,并生成用于提示所述被授权对象对所述授权对象的资源使用成功的第二提示信息;

将所述第一提示信息发送至所述授权对象的对象设备,并将所述第二提示信息发送至所述被授权对象的对象设备。

12.一种区块链网络的资源处理装置,其特征在于,所述装置包括:

请求获取模块,用于获取被授权对象的资源调用请求,所述资源调用请求中包含授权对象向所述被授权对象发放的目标资源授权凭证,所述目标资源授权凭证用于指示所述被授权对象具备对所述授权对象在所述区块链网络中的资源的使用权限;所述目标资源授权凭证是采用所述授权对象的对象私钥对拼接数据进行签名处理后得到的,所述拼接数据中拼接有所述被授权对象在所述区块链网络中的资源包地址;

地址获取模块,用于获取发起所述资源调用请求的资源包地址,基于发起所述资源调用请求的资源包地址还原出所述拼接数据;基于所述目标资源授权凭证和还原的所述拼接数据,推算所述授权对象的对象公钥,基于所述授权对象的对象公钥获取所述授权对象在区块链网络中的资源包地址;

资源获取模块,用于所述授权对象的资源包地址,从所述授权对象的资源包中获取所述资源调用请求所请求调用的资源;

分配模块,用于将获取的资源分配给所述被授权对象使用。

13.一种计算机设备,其特征在于,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行权利要求1‑11中任一项所述方法的步骤。

14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适用于由处理器加载并执行权利要求1‑11任一项所述的方法。

说明书 :

区块链网络的资源处理方法、装置、产品、设备和介质

技术领域

[0001] 本申请涉及区块链的技术领域,尤其涉及一种区块链网络的资源处理方法、装置、产品、设备和介质。

背景技术

[0002] 区块链网络中可以注册有多个用户,各个用户在区块链网络中均可以持有自己的资源包,一个用户在区块链网络中的资源包就用于存放该用户在区块链网络中的资源,各个用户可以在区块链网络中使用自己的资源包中的资源,而不能在区块链网络中使用其他用户的资源包中的资源。可见,此种区块链网络中的资源的使用方式单一,且资源的使用方式不够灵活。

发明内容

[0003] 本申请提供了一种区块链网络的资源处理方法、装置、产品、设备和介质,可丰富对区块链网络中的资源的使用方式,并提升对区块链网络中的资源的使用灵活性。
[0004] 本申请一方面提供了一种区块链网络的资源处理方法,该方法包括:
[0005] 获取被授权对象的资源调用请求,资源调用请求中包含授权对象向被授权对象发放的目标资源授权凭证,目标资源授权凭证用于指示被授权对象具备对授权对象在区块链网络中的资源的使用权限;
[0006] 基于目标资源授权凭证,获取授权对象在区块链网络中的资源包地址;
[0007] 基于授权对象的资源包地址,从授权对象的资源包中获取资源调用请求所请求调用的资源;
[0008] 将获取的资源分配给被授权对象使用。
[0009] 本申请一方面提供了一种区块链网络的资源处理装置,该装置包括:
[0010] 请求获取模块,用于获取被授权对象的资源调用请求,资源调用请求中包含授权对象向被授权对象发放的目标资源授权凭证,目标资源授权凭证用于指示被授权对象具备对授权对象在区块链网络中的资源的使用权限;
[0011] 地址获取模块,用于基于目标资源授权凭证,获取授权对象在区块链网络中的资源包地址;
[0012] 资源获取模块,用于授权对象的资源包地址,从授权对象的资源包中获取资源调用请求所请求调用的资源;
[0013] 分配模块,用于将获取的资源分配给被授权对象使用。
[0014] 可选的,目标资源授权凭证是采用授权对象的对象私钥对拼接数据进行签名处理后得到的,拼接数据是对授权标识、资源授权量和被授权对象在区块链网络中的资源包地址进行拼接处理后得到的;
[0015] 其中,授权标识用于标识目标授权次数,目标授权次数是对已有资源授权次数和单位资源授权次数进行加和后得到的,已有资源授权次数是在授权对象请求对被授权对象发放资源授权凭证时区块链网络中已累计的资源授权总次数;
[0016] 资源授权量是授权对象授权给被授权对象进行使用的资源的资源量。
[0017] 可选的,资源调用请求中包含资源授权量和授权标识;地址获取模块基于目标资源授权凭证,获取授权对象在区块链网络中的资源包地址的方式,包括:
[0018] 获取发起资源调用请求的资源包地址;
[0019] 对发起资源调用请求的资源包地址、资源调用请求中的授权标识及资源授权量进行拼接处理,生成拼接数据;
[0020] 基于签名验证算法对拼接数据和目标资源授权凭证进行签名验证运算,以生成授权对象的对象公钥;
[0021] 基于对象公钥,确定授权对象在区块链网络中的资源包地址。
[0022] 可选的,资源调用请求中包含资源调用量;
[0023] 资源获取模块基于授权对象的资源包地址,从授权对象的资源包中获取资源调用请求所请求调用的资源的方式,包括:
[0024] 基于授权对象的资源包地址,从授权对象的资源包中获取资源调用请求所请求调用的目标资源;
[0025] 其中,目标资源的资源量等于资源调用量。
[0026] 可选的,资源调用请求是调用资源处理合约进行资源调用的请求,资源调用请求包含授权标识和授权对象授权给被授权对象进行使用的资源的资源授权量;
[0027] 在从授权对象的资源包中获取目标资源之前,上述装置还用于:
[0028] 检测资源处理合约中是否存储有授权标识所属的授权对应关系;
[0029] 若检测到资源处理合约中未存储有授权标识所属的授权对应关系,则在资源处理合约中存储授权标识与授权数据之间的授权对应关系;
[0030] 其中,授权数据包括发起资源调用请求的资源包地址和被授权对象在授权对象的资源包中的剩余资源授权量,在授权标识与授权数据之间的授权对应关系被存储至资源处理合约中时,授权数据中的剩余资源授权量等于资源授权量。
[0031] 可选的,上述装置还用于:
[0032] 若检测到资源处理合约中存储有授权标识所属的授权对应关系,则检测存储的授权对应关系中的资源包地址与发起资源调用请求的资源包地址之间的一致性;
[0033] 若该存储的授权对应关系中的资源包地址与发起资源调用请求的资源包地址一致,则启动从授权对象的资源包中获取目标资源的流程。
[0034] 可选的,资源调用请求中包含目标资源包地址,目标资源包地址是用于接收资源调用请求所请求调用的资源的资源包地址,资源调用请求是基于被授权对象在区块链网络中的资源包地址发起的;
[0035] 分配模块将获取的资源分配给被授权对象使用的方式,包括:
[0036] 基于被授权对象的资源包地址,将目标资源转移至目标资源包地址所属的资源包中。
[0037] 可选的,分配模块基于被授权对象的资源包地址,将目标资源转移至目标资源包地址所属的资源包中的方式,包括:
[0038] 获取资源处理合约存储的授权标识所属授权对应关系中的剩余资源授权量,并对获取的剩余资源授权量与资源调用量进行比对;
[0039] 若比对出获取的剩余资源授权量大于或等于资源调用量,则基于被授权对象的资源包地址,将目标资源转移至目标资源包地址所属的资源包中。
[0040] 可选的,若比对出获取的剩余资源授权量大于或等于资源调用量,则分配模块基于被授权对象的资源包地址,将目标资源转移至目标资源包地址所属的资源包中的方式,包括:
[0041] 若比对出获取的剩余资源授权量大于或等于资源调用量,则获取授权对象的资源包中的资源的资源总量;
[0042] 对资源总量与资源调用量进行比对;
[0043] 若比对出资源总量大于或等于资源调用量,则基于被授权对象的资源包地址,将目标资源转移至目标资源包地址所属的资源包中。
[0044] 可选的,在将目标资源转移至目标资源包地址所属的资源包中之后,上述装置还用于:
[0045] 计算资源处理合约存储的授权标识所属授权对应关系中的剩余资源授权量与资源调用量之间的资源量差值;
[0046] 将资源处理合约存储的授权标识所属授权对应关系中的剩余资源授权量,更新为资源量差值。
[0047] 可选的,在将获取的资源分配给被授权对象使用之后,上述装置还用于:
[0048] 生成用于提示授权对象资源被使用成功的第一提示信息,并生成用于提示被授权对象对授权对象的资源使用成功的第二提示信息;
[0049] 将第一提示信息发送至授权对象的对象设备,并将第二提示信息发送至被授权对象的对象设备。
[0050] 本申请一方面提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行本申请中一方面中的方法。
[0051] 本申请一方面提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时使该处理器执行上述一方面中的方法。
[0052] 根据本申请的一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行上述一方面等各种可选方式中提供的方法。
[0053] 本申请可以获取被授权对象的资源调用请求,资源调用请求中包含授权对象向被授权对象发放的目标资源授权凭证,目标资源授权凭证用于指示被授权对象具备对授权对象在区块链网络中的资源的使用权限;并可以基于目标资源授权凭证,获取授权对象在区块链网络中的资源包地址;还可以基于授权对象的资源包地址,从授权对象的资源包中获取资源调用请求所请求调用的资源;进而,可以将获取的资源分配给被授权对象使用。由此可见,本申请提出的方法被授权对象可以基于授权对象为其发放的目标资源授权凭证,来调用授权对象在区块链网络的资源包中的资源,并可以使用所调用的资源,以此可以丰富对对象在区块链网络中的资源的使用方式,并可以在不同对象(如授权对象和被授权对象)之间提升对区块链网络中的资源的使用灵活性。

附图说明

[0054] 为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0055] 图1是本申请实施例提供的一种资源调用网络的架构示意图;
[0056] 图2是本申请实施例提供的一种资源调用的场景示意图;
[0057] 图3是本申请实施例提供的一种区块链网络的资源处理方法的流程示意图;
[0058] 图4是本申请实施例提供的一种合约进行数据存储的结构示意图;
[0059] 图5是本申请实施例提供的一种数据签名处理的场景示意图;
[0060] 图6是本申请实施例提供的一种资源使用过程的场景示意图;
[0061] 图7是本申请实施例提供的一种资源调用方法的流程示意图;
[0062] 图8是本申请实施例提供的一种区块链网络的资源处理装置的结构示意图;
[0063] 图9是本申请实施例提供的一种计算机设备的结构示意图。

具体实施方式

[0064] 下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0065] 本申请还涉及到区块链的相关技术。其中,区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(Blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层。
[0066] 区块链底层平台可以包括用户管理、基础服务、智能合约以及运营等处理模块。其中,用户管理模块负责所有区块链参与者的身份信息管理,包括维护公私钥生成(账户管理)、密钥管理以及用户真实身份和区块链地址对应关系维护(权限管理)等,并且在授权的情况下,监管和审计某些真实身份的交易情况,提供风险控制的规则配置(风控审计);基础服务模块部署在所有区块链节点设备上,用来验证业务请求的有效性,并对有效请求完成共识后记录到存储上,对于一个新的业务请求,基础服务先对接口适配解析和鉴权处理(接口适配),然后通过共识算法将业务信息加密(共识管理),在加密之后完整一致的传输至共享账本上(网络通信),并进行记录存储;智能合约模块负责合约的注册发行以及合约触发和合约执行,开发人员可以通过某种编程语言定义合约逻辑,发布到区块链上(合约注册),根据合约条款的逻辑,调用密钥或者其它的事件触发执行,完成合约逻辑,同时还提供对合约升级注销的功能;运营模块主要负责产品发布过程中的部署、配置的修改、合约设置、云适配以及产品运行中的实时状态的可视化输出,例如:告警、监测网络情况、监测节点设备健康状态等。
[0067] 平台产品服务层提供典型应用的基本能力和实现框架,开发人员可以基于这些基本能力,叠加业务的特性,完成业务逻辑的区块链实现。应用服务层提供基于区块链方案的应用服务给业务参与方进行使用。
[0068] 本申请中,授权对象可以将自己在区块链网络的资源包中的资源,授权给被授权对象进行调用和使用,以此可以丰富对区块链网络中的资源的使用方式,并提升对区块链网络中的资源的使用灵活性。
[0069] 首先,需要进行说明的是,本申请所采集的所有数据(如资源调用请求、资源授权凭证、资源包地址等相关数据)都是在该数据所属对象(如用户、机构或者企业)同意并授权的情况下进行采集的,且相关数据的收集、使用和处理均需要遵守相关国家和地区的相关法律法规和标准。
[0070] 此处,对本申请涉及到的相关技术概念进行描述:
[0071] 智能合约:一种以数字形式定义的协议,需运行在可信的环境中,比如区块链平台。智能合约(Smart contract)是依托计算机在网络空间运行的合约,它以信息化方式传播、验证或执行,由计算机读取、执行,具备自助的特点。区块链的去中心化,数据的防篡改,决定了智能合约更加适合于在区块链上来实现。因此区块链技术的发展,让智能合约拥有了更广阔的发展前景。智能合约事实上是由计算机代码构成的一段程序,其缔结过程是:第一步,参与缔约的双方或多方用户商定后将共同合意制定成一份智能合约;第二步,该智能合约通过区块链网络向全球各个区块链的支点广播并存储;第三步,构建成功的智能合约等待条件达成后自动执行合约内容。
[0072] Map结构:是一种将键对象和值对象进行映射的集合,使得后续可以使用键对象获取值对象。
[0073] 智能合约资源包:是数字资源领域中的一种重要工具,它帮助用户管理和操作智能合约,实现了去中心化的信任和安全性。智能合约资源包的主要功能包括:存储数字资源、执行智能合约、管理资源包和提供开发工具。首先,智能合约资源包能够安全地存储数字资源。用户可以将数字资源存储在智能合约资源包中,这些数字资源将受到智能合约的保护。智能合约资源包通常使用加密标准(如SSL加密标准)来保护用户的数字资源,确保用户的数字资源不会被盗用。其次,智能合约资源包可以执行智能合约。智能合约是一种计算机程序,它可以自动执行合约条款。智能合约资源包可以帮助用户创建和部署智能合约,然后执行这些合约,这使得智能合约资源包成为了去中心化应用(DApps)的重要组成部分。
[0074] 请参见图1,图1是本申请实施例提供的一种资源调用网络的架构示意图。如图1所示,该资源调用网络可以包括终端设备100和区块链网络,区块链网络中可以包括多个区块链节点,各个区块链节点均可以是由一个或多个服务器构成,各个区块链节点之间可以相互进行网络连接,以便于进行数据交互。
[0075] 上述图1对应实施例中描述的服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。终端设备可以是:智能手机、平板电脑、笔记本电脑、桌上型电脑、智能电视等智能终端。
[0076] 其中,授权对象和被授权对象均可以是在区块链网络中进行注册的对象,授权对象和被授权对象均具有在区块链网络中的资源包其中,对象在区块链网络中的资源包可以用于存储对象在区块链网络中所拥有的资源,该资源包可以具有相应的资源包地址(可以称为对象的链上地址)。
[0077] 授权对象可以向被授权对象发放目标资源授权凭证,该目标资源授权凭证可以是授权对象用于将自己在区块链网络中的资源授权给被授权对象进行使用的凭证。被授权对象在拿到该目标资源授权凭证后,就可以使用该目标资源授权凭证向区块链网络(如向区块链网络中的区块链节点)发起资源调用请求,该资源调用请求即为用于调用授权对象的资源的请求,如下述内容描述。
[0078] 请一并参见图2,图2是本申请实施例提供的一种资源调用的场景示意图。如图2所示,接收到该资源调用请求的区块链节点(下述统称为区块链节点)可以从该资源调用请求中提取出目标资源授权凭证。并可以通过该目标资源授权凭证来获取授权对象在区块链网络中的资源包地址。
[0079] 进而,区块链节点通过获取的授权对象在区块链网络中的资源包地址,即可定位到授权对象的资源包,进而,区块链节点即可在授权对象的资源包中获取上述资源调用请求所请求调用的资源,并将该获取到的请求调用的资源分配给被授权对象进行使用。其中,该具体过程也可以参见下述图3对应实施例中的过程。
[0080] 采用本申请提供的方法,授权对象可以向被授权对象发放目标资源授权凭证,以将自己在区块链网络中的资源授权给被授权对象进行使用,后续,被授权对象即可通过持有的该目标资源授权凭证便捷地使用授权对象对其授权的资源,以此可以丰富区块链网络中对象的资源的使用方式,并可以提升区块链网络中对象的资源的使用灵活性以及资源流通性。
[0081] 请参见图3,图3是本申请实施例提供的一种区块链网络的资源处理方法的流程示意图。如图3所示,该方法可以包括:
[0082] 步骤S101,获取被授权对象的资源调用请求,资源调用请求中包含授权对象向被授权对象发放的目标资源授权凭证,目标资源授权凭证用于指示被授权对象具备对授权对象在区块链网络中的资源的使用权限。
[0083] 可选的,区块链网络中可以包含区块链节点,区块链节点可以是由一个或多个节点设备构成的,该节点设备可以是服务器或者是终端设备,等等。因此,可以理解的是,本申请实施例中的执行主体可以是资源处理设备,该资源处理设备可以是区块链网络中区块链节点的节点设备,资源处理设备具体是哪个区块链节点的节点设备可以根据实际应用场景确定,对此不做限制。
[0084] 授权对象和被授权对象均可以是在区块链网络中进行身份注册且拥有自己的资源包的对象,该对象可以是用户、机构或者企业,等等。对象在区块链网络中的资源包可以用于存储对象在区块链网络中拥有(同持有)的资源,如授权对象在区块链网络中的资源包可以用于存储授权对象在区块链网络中拥有的资源,被授权对象在区块链网络中的资源包可以用于存储被授权对象在区块链网络中拥有的资源。
[0085] 其中,本申请中的资源可以是任意的数字资源,如该数字资源可以是任意的数字藏品、数字资产,等等。对象的资源包可以具有相应的资源包地址,对象的资源包的资源包地址可以是通过该对象的对象公钥得到的,如该对象的资源包地址可以是该对象的对象公钥的哈希值的前20位。对象的资源包地址可以称之为是对象在区块链网络中的链上地址。
[0086] 授权对象可以是向被授权对象进行资源授权的对象,即授权对象可以将自己的资源包中的资源授权给被授权对象进行使用,该过程可以包括:
[0087] 授权对象可以对被授权对象发放目标资源授权凭证,该目标资源授权凭证即为是授权对象用于将自己在区块链网络中的资源授权给被授权对象进行使用的凭证,换句话说,该目标资源授权凭证可以用于指示被授权对象具备对授权对象在区块链网络中的资源的使用权限。
[0088] 其中,该目标资源授权凭证可以是由授权对象以任意的方式给到被授权对象的,如该目标资源授权凭证可以不是由授权对象在链上(即区块链网络中)给到被授权对象的(可以理解的是,该目标资源授权凭证也可以是由授权对象在链上给到被授权对象的),而可以是在链下(即区块链网络外)给到被授权对象的,或者还可以是在线下给到被授权对象的。
[0089] 因此,可以理解的是,本申请中通过资源授权凭证可以更为灵活、快捷且方便地实现授权对象对被授权对象的资源授权,授权对象可以将该目标资源授权凭证通过多种方式(如链上、链下以及线下等)中的任意一种方式给到被授权对象,即可实现对被授权对象的资源授权。
[0090] 可选的,上述目标资源授权凭证可以是由授权对象通过自己的对象设备(可以是终端设备)来生成的,授权对象的对象设备中可以包含授权对象在区块链网络中的资源包(可以理解为资源包前端,即资源包客户端),授权对象可以通过自己在对象设备中的资源包来生成上述目标资源授权凭证,目标资源授权凭证的生成过程可以包括:
[0091] 授权对象可以在自己的资源包客户端中发起生成资源授权凭证的请求,进而,资源包客户端可以向区块链网络查询在此之前(即授权对象在发起生成资源授权凭证的请求之前)区块链网络中已累计有的资源授权总次数,可以理解的是,该资源授权总次数可以是面向区块链网络中的所有对象的,换句话说,该资源授权总次数可以是区块链网络中的所有对象在此之前已成功生成资源授权凭证(各个对象生成资源授权凭证的原理与授权对象生成目标资源授权凭证的原理都是相同的)的总次数。
[0092] 进而,可以将该资源授权总次数称之为是授权对象在发起生成资源授权凭证的请求时区块链网络中的已有资源授权次数,资源包客户端可以对该已有资源授权次数与单位资源授权次数进行加和,以得到目标授权次数。该单位资源授权次数可以是1,即可以在该已有资源授权次数的基础上加1,以得到当前的目标授权次数。该目标授权次数也就是授权对象在发起生成资源授权凭证的请求时在区块链网络中对应的资源授权次数,即该目标授权次数可以用于标识授权对象当前发起的生成资源授权凭证的请求可以是在区块链网络中的第几次授权。因此,可以将该目标授权次数(可以表示为nonce)作为授权对象当前进行资源授权的授权标识,即该授权标识可以用于标识该目标授权次数。
[0093] 授权对象还可以在资源包客户端中提供需要进行资源授权的对象(即被授权对象)在区块链网络中的资源包的资源包地址。可选的,该资源包地址可以是授权对象在资源包客户端中自行录入的,或者是在资源包客户端中进行选择的,或者是由被授权对象给到授权对象的,或者是以其他方式提供的,对此不做限制。
[0094] 授权对象还可以在资源包客户端中给出(如输入)需要对被授权对象授权的资源的资源量,可以将该资源量称之为是资源授权量,换句话说,该资源授权量即为授权对象授权给被授权对象进行使用的资源(授权对象的资源)的总的资源量。
[0095] 进而,资源包客户端还可以对上述授权标识(即目标授权次数)、上述资源授权量(可以表示为value)、以及被授权对象在区块链网络中的资源包地址(可以表示为address)进行拼接处理(拼接的顺序可以是预先设定的某个任意的固定顺序),以得到拼接数据,该拼接数据就包括上述授权标识、上述资源授权量以及被授权对象在区块链网络中的资源包地址。
[0096] 授权对象的资源包客户端可以获取到授权对象的私钥(可以称为对象私钥),可选的,该对象私钥可以存储在该资源客户端中的,或者该对象私钥也可以是由授权对象在资源包客户端中输入的。因此,资源包客户端可以通过授权对象的对象私钥对上述拼接数据进行签名处理,如可以通过ecdsa签名算法(一种椭圆曲线的签名算法)对该拼接数据进行签名处理,即可生成目标资源授权凭证,即该目标资源授权凭证可以是该拼接数据的签名。
[0097] 可选的,上述资源包客户端向区块链网络查询的已有资源授权次数可以是向区块链网络中的资源处理合约查询的,该资源处理合约可以用于记录区块链网络中累计成功发生的资源授权的总次数。上述资源包客户端在成功生成目标资源授权凭证后,可以向资源处理合约发送提示信息,以向资源处理合约提示已成功生成资源授权凭证,使得资源处理合约就可以对当前记录的区块链网络中累计成功发生的资源授权的总次数加1。
[0098] 请参见图4,图4是本申请实施例提供的一种合约进行数据存储的结构示意图。如图4所示,资源处理合约中可以存储链上所有用户的资源包地址,还可以以Mapping(即Map的存储结构)存储区块链网络中对象进行资源授权的授权对应关系(如上述授权标识所属的授权对应关系)。以图4中的“1=>{Addr1,10}”为例进行说明:前面的1表示nonce(即授权次数),被授权对象的资源包地址为Addr1,被授权对象在授权对象的资源包中的剩余资源调用量为10。
[0099] 基于上述描述,被授权对象在拿到目标资源授权凭证后,就可以通过该目标资源授权凭证来使用授权对象在区块链网络中的资源,该过程可以如下述内容描述。
[0100] 资源处理设备可以获取到被授权对象的资源调用请求,该资源调用请求可以是被授权对象通过自己的对象设备中的资源包客户端发起的。该资源调用请求中可以包含上述授权对象向被授权对象发放的目标资源授权凭证,该资源调用请求可以是用于调用并使用授权对象在区块链网络中的资源的请求。
[0101] 需要进行说明的是,一个对象的资源包客户端中存储有该对象的资源包的资源包地址,如被授权对象的资源包客户端中存储有被授权对象的资源包地址,因此,可以理解的是,上述资源调用请求可以是被授权对象的资源包客户端基于被授权对象在区块链网络中的资源包地址所发起的。
[0102] 步骤S102,基于目标资源授权凭证,获取授权对象在区块链网络中的资源包地址。
[0103] 可选的,资源处理设备可以通过上述目标资源授权凭证,来推算出授权对象在区块链网络中的资源包地址,如下述内容描述。
[0104] 其中,用于发起上述资源调用请求的资源包地址可以随资源调用请求一并给到资源处理设备,因此,资源处理设备可以获取到发起上述资源调用请求的资源包地址(即被授权对象的资源包地址)。
[0105] 资源调用请求中还可以包含上述资源授权量和授权标识,该资源授权量和授权标识可以是由授权对象以任意方式给到被授权对象的,进而由被授权对象在自己的资源包客户端中输入的,或者该资源授权量和授权标识可以是在授权对象的资源包客户端成功生成上述目标资源授权凭证时,由授权对象的资源包客户端给到被授权对象的资源包客户端的。
[0106] 上述资源授权量、授权标识以及目标资源授权凭证可以属于是资源调用请求中用于进行资源调用的调用参数。
[0107] 因此,资源处理设备可以对发起上述资源调用请求的资源包地址、资源调用请求中的授权标识以及资源授权量进行拼接处理,可以生成上述拼接数据。
[0108] 资源处理设备在获取到该拼接数据后,就可以通过该拼接数据和目标资源授权凭证,来推算出授权对象的资源包地址,该过程包括:该拼接数据属于被签名的原数据,目标资源授权凭证为对该拼接数据进行签名后的数据,因此,可以通过签名验证算法,对该拼接数据和该目标资源授权凭证进行签名验证运算,如若目标资源授权凭证是采用ecdsa签名算法对该拼接数据进行签名得到的,则可以采用ecdsa签名验证算法(一种椭圆曲线的签名验证算法)对该拼接数据和该目标资源授权凭证进行签名验证运算,即可推算出授权对象的公钥(可以称为对象公钥)。
[0109] 进而,通过推算的该授权对象的公钥,即可确定授权对象在区块链网络中的资源包地址(即链上地址),如可以对授权对象的对象公钥进行哈希计算,得到授权对象的对象公钥的哈希值,进而,可以取授权对象的对象公钥的哈希值的前20位,作为是获取到的授权对象的资源包地址。
[0110] 请参见图5,图5是本申请实施例提供的一种数据签名处理的场景示意图。如图5所示,授权对象的资源包客户端可以获取到授权对象在对被授权对象进行资源授权时的授权标识、资源授权量及被授权对象的资源包地址,授权对象的资源包客户端可以对该授权标识、资源授权量及被授权对象的资源包地址进行拼接处理,以得到拼接数据。
[0111] 进而,授权对象的资源包客户端可以采用授权对象的对象私钥对该拼接数据进行签名处理,即可生成目标资源授权凭证。后续,在被授权对象向资源处理设备发起资源调用请求后,资源处理设备也可以获取到该拼接数据和该目标资源授权凭证,进而通过对该拼接数据以及目标资源授权凭证进行签名验证运算,即可推算出授权对象的对象公钥,通过该对象公钥即可确定出授权对象的资源包地址。
[0112] 步骤S103,基于授权对象的资源包地址,从授权对象的资源包中获取资源调用请求所请求调用的资源。
[0113] 可选的,资源调用请求中还可以包含资源调用量,该资源调用量即为被授权对象需要调用被授权对象的资源的资源量,该资源调用量可以是被授权对象在发起该资源调用量时在资源包客户端中输入的。
[0114] 因此,资源处理设备可以通过授权对象的资源包地址确定授权对象的资源包,进而,可以从授权对象的资源包中获取该资源调用请求所请求调用的目标资源,该目标资源的资源量即为该资源调用量。
[0115] 更多的,在从授权对象的资源包中获取上述目标资源之前,资源处理设备还可以检测资源处理合约中是否存储有授权标识所属的授权对应关系,该授权对应关系可以用于指示授权标识与被授权的被授权对象的资源包地址之间的对应关系,如下述内容描述:
[0116] 可选的,资源调用请求是调用资源处理合约进行资源调用的请求,即本申请中可以由资源处理合约来对该资源调用请求进行处理,以执行对授权对象的上述目标资源进行调用和使用的流程。由于该资源调用请求是基于被授权对象的资源包地址发起的,因此,该资源处理合约也可以是由该被授权对象的资源包地址进行调用的。
[0117] 因此,资源处理设备可以检测资源处理合约中是否存储有授权标识(资源调用请求中的授权标识)所属的授权对应关系,若资源处理合约中未存储有该授权标识所属的授权对应关系,则表明当前是在授权对象将目标资源授权凭证发放给被授权对象后,被授权对象首次通过该目标资源授权凭证使用授权对象的资源。
[0118] 因此,若资源处理设备检测到资源处理合约中未存储有授权标识所属的授权对应关系,则资源处理设备可以在资源处理合约中存储该授权标识与授权数据之间的授权对应关系(即该授权标识所属的授权对应关系)。
[0119] 其中,该授权数据就可以包括发起资源调用请求的资源包地址(即被授权对象的资源包地址)以及被授权对象在授权对象的资源包中的剩余资源授权量。其中,可以理解的是,在将授权标识与该授权数据之间的授权对应关系刚存储至资源处理合约中时,该授权数据中的剩余资源授权量就等于上述资源授权量(即资源调用请求中的资源授权量,即授权对象最开始总共授权给被授权对象进行使用的资源的资源量),而随着被授权对象通过目标资源授权凭证对授权对象的资源的使用,该剩余资源授权量会越来越少,直至为0之后,表明授权对象对被授权对象向其授权的资源已使用完。
[0120] 通过上述,可以理解的是,授权标识所属的授权对应关系中可以包含该授权标识、被授权对象的资源包地址以及被授权对象在授权对象的资源包中的剩余资源授权量。
[0121] 其中,上述授权标识与授权数据之间的授权对应关系可以是基于Map结构进行存储的,该授权标识可以是键对象,该授权数据可以是值对象。
[0122] 而若资源处理设备检测到资源处理合约中已经存储有上述授权标识所属的授权对应关系,表明当前不是被授权对象首次通过目标资源授权凭证使用授权对象的资源,则资源处理设备可以检测已经存储的授权对应关系中的资源包地址与当前发起上述资源调用请求的资源包地址之间的一致性,即检测已经存储的授权对应关系中的资源包地址与当前发起上述资源调用请求的资源包地址是否一致(即是否相同)。
[0123] 若该已经存储的授权对应关系中的资源包地址与发起上述资源调用请求的资源包地址一致,则可以启动(即开始)从授权对象的资源包中获取上述目标资源的流程。反之,可选的,若该已经存储的授权对应关系中的资源包地址与发起上述资源调用请求的资源包地址不一致,则可以拒绝此次调用授权对象的资源的请求。
[0124] 步骤S104,将获取的资源分配给被授权对象使用。
[0125] 可选的,资源调用请求中可以包含目标资源包地址,该目标资源包地址是用于接收该资源调用请求所请求调用的资源的资源包地址。举个例子,该资源调用请求可以是资源转移请求,该资源转移请求可以是用于将资源转移至该目标资源包地址所属的资源包的请求。可选的,该目标资源包地址可以是被授权对象的资源包地址,或者可以是除授权对象以及被授权对象之外的其他对象在区块链网络中的资源包地址,目标资源包地址具体是哪个对象在区块链网络中的资源包地址可以根据实际应用场景确定,对此不做限制。
[0126] 由于资源调用请求是通过被授权对象在区块链网络中的资源包地址发起的,因此,资源处理设备可以通过该被授权对象的资源包地址,将上述获取的目标资源转移至目标资源包地址所属的资源包中,以此就实现了被授权对象对该目标资源的使用。
[0127] 其中,上述目标资源包地址和资源调用量可以一起表示为calldata,该calldata也属于资源调用请求中用于进行资源调用和使用的调用参数。
[0128] 请参见图6,图6是本申请实施例提供的一种资源使用过程的场景示意图。如图6所示,资源调用请求可以是基于被授权对象在区块链网络中的资源包地址发起的,即资源调用请求可以是由被授权对象发起的。资源调用请求中的调用参数可以包括目标资源授权凭证、授权标识、资源授权量、资源调用量以及目标资源包地址。
[0129] 其中,资源调用请求中的目标资源授权凭证可以用于获取授权对象在区块链网络中的资源包地址;资源调用请求中的授权标识、资源授权量以及用于发起资源调用请求的资源包地址(即被授权对象在区块链网络中的资源包地址),可以用于一起还原出目标资源授权凭证进行签名前的原数据(即上述拼接数据);资源调用请求中的资源调用量用于获取请求调用的目标资源;资源调用请求中的目标资源包地址可以用于接收请求调用的目标资源。因此,通过资源调用请求中的各个调用参数即可实现被授权对象对授权对象的资源进行使用的目的。
[0130] 在一种可行的实施方式中,通过被授权对象的资源包地址,将目标资源转移至目标资源包地址所属的资源包的过程中,还可以进行相应的验证,该过程可以包括:
[0131] 资源处理设备可以获取资源处理合约中存储的授权标识所属授权对应关系(可以是上述未检测到存储有授权标识所属授权对应关系时所存储的授权标识与授权数据之间的授权对应关系,或者是上述检测到资源处理合约中已存储有的授权标识所属的授权对应关系)中的剩余资源授权量,并可以对该获取的剩余资源授权量与上述被授权对象的资源调用量进行比对,即对该获取的剩余资源授权量与上述资源调用量之间的大小进行比对。
[0132] 若资源处理设备比对出该获取的剩余资源授权量大于或等于该资源调用量,则可以通过该被授权对象的资源包地址,将目标资源转移至目标资源包地址所属的资源包中。通过该比对过程,即可以保证被授权对象需要调用的资源的资源量(即资源调用量)要小于或等于被授权对象在授权对象的资源包中的剩余资源授权量。
[0133] 反之,若资源处理设备比对出该获取的剩余资源授权量小于该资源调用量,则资源处理设备可以拒绝被授权对象的当前资源调用请求,并可以提示被授权对象(如发送相应的提示信息至授权对象的资源包客户端)资源调用失败。此种情况即为,被授权对象在授权对象的资源包中的剩余资源授权量不够当前被授权对象想要进行调用和使用的资源的资源量。
[0134] 或者,若资源处理设备比对出该获取的剩余资源授权量大于或等于该资源调用量,则可以继续获取授权对象的资源包中的资源的资源总量,该资源总量可以是授权对象当前的资源包中所具有的可以进行使用的全部资源的资源量。
[0135] 资源处理设备可以进一步对该资源总量与上述资源调用量进行比对,若比对出该资源总量大于或等于该资源调用量,则可以通过上述被授权对象的资源包地址,将目标资源转移至目标资源包地址所属的资源包中。通过该比对过程,即可以保证被授权对象需要调用的资源的资源量要小于或等于授权对象的资源包中可进行使用的资源的资源总量。
[0136] 反之,若比对出该资源总量小于该资源调用量,则资源处理设备可以拒绝被授权对象的当前资源调用请求,并可以提示被授权对象(如发送相应的提示信息至授权对象的资源包客户端)资源调用失败。此种情况即为,授权对象的资源包中的资源的资源量不够当前被授权对象想要进行调用和使用的资源的资源量。
[0137] 更多的,在将目标资源成功转移至目标资源包地址所属的资源包中之后,资源处理设备还可以计算资源处理合约中存储的上述授权标识所属的授权对应关系中的剩余资源授权量与上述资源调用量之间的差值(可以称为资源量差值)。
[0138] 进而,资源处理设备可以将资源处理合约中存储的上述授权标识所属的授权对应关系中的剩余资源授权量,更新为该资源量差值,即将该资源量差异重新写入资源处理合约中,即该资源量差值可以作为被授权对象使用上述目标资源后在授权对象的资源包中的剩余资源授权量。
[0139] 可选的,若目标资源包地址不是被授权对象的资源包地址,则在目标资源包地址所属对象获取到目标资源后(即将目标资源转移至目标资源包地址所属的资源包中后),目标资源包地址所属的对象可以感知不到授权对象的存在,从目标资源包地址所属的对象的视角来看,就是被授权对象向其转移了目标资源。
[0140] 示例地,若目标资源包地址是被授权对象的资源包地址,则通过上述过程,可以将授权对象的目标资源转移给被授权对象,后续目标资源如何使用就是由被授权对象自己决定。此种情况下,若授权对象是机构,则上述过程也可以是授权对象对被授权对象授权了一定资源额度(如资源授权量)的资源,被授权对象可以在该资源额度内进行资源的提现,以自行使用,可选的,被授权对象提现使用的资源可以在后续再归还给该进行资源授权的机构。
[0141] 可选的,此种场景可以适用于,被授权对象在区块链网络中没有足够的链上资源,则可以向机构申请进行资源的借用,被授权对象借用的资源即为机构向被授权对象授权的资源。
[0142] 换句话说,授权对象和被授权对象可以是用户(即个人)、企业或者机构。可选的,若授权对象和被授权对象均为用户,则通过上述过程可以实现用户将自己的链上资源(如用户在区块链网络中的资源包中的资源)授权给其他用户进行使用的目的;若授权对象是机构,被授权对象是用户,则通过上述过程可以实现机构将自己的链上资源授权给用户进行使用的目的。
[0143] 在将获取的资源(即上述目标资源)分配给被授权对象使用之后(即将目标资源成功转移至目标资源包地址所属的资源包中之后),资源处理设备还可以生成用于提示授权对象资源被使用成功的第一提示信息,即该第一提示信息可以用于向授权对象提示被授权对象已对其资源使用成功;资源处理设备并可以生成用于提示被授权对象对授权对象的资源使用成功的第二提示信息,即该第二提示信息可以用于提示被授权对象已对授权对象的资源使用成功。
[0144] 资源处理设备可以将上述第一提示信息发送至授权对象的对象设备,如可以将第一提示信息发送至授权对象的对象设备中的资源包客户端中(可以通过授权对象的资源包地址发送),以提示授权对象;资源处理设备还可以将上述第二提示信息发送至被授权对象的对象设备,如可以将第二提示信息发送至被授权对象的对象设备中的资源包客户端中(可以通过被授权对象的资源包地址发送),以提示被授权对象。
[0145] 通过本申请的上述过程,授权对象就可以向被授权对象授权一定的资源额度(如资源授权量)供被授权对象使用,被授权对象可以通过授权对象发放的资源授权凭证自行使用授权对象在区块链网络中的资源,而无需由被授权对象来发起将资源转移给授权对象的请求,使得区块链网络中不同对象的资源可以相互授权使用,丰富了区块链网络中的资源的使用方式,提升了区块链网络中的资源的使用灵活性,且提升了区块链网络中不同对象之间的资源的流通性,从而可以提升对象进行资源使用的便捷性和体验感。
[0146] 本申请可以获取被授权对象的资源调用请求,资源调用请求中包含授权对象向被授权对象发放的目标资源授权凭证,目标资源授权凭证用于指示被授权对象具备对授权对象在区块链网络中的资源的使用权限;并可以基于目标资源授权凭证,获取授权对象在区块链网络中的资源包地址;还可以基于授权对象的资源包地址,从授权对象的资源包中获取资源调用请求所请求调用的资源;进而,可以将获取的资源分配给被授权对象使用。由此可见,本申请提出的方法被授权对象可以基于授权对象为其发放的目标资源授权凭证,来调用授权对象在区块链网络的资源包中的资源,并可以使用所调用的资源,以此可以丰富对对象在区块链网络中的资源的使用方式,并可以在不同对象(如授权对象和被授权对象)之间提升对区块链网络中的资源的使用灵活性。
[0147] 请参见图7,图7是本申请实施例提供的一种资源调用方法的流程示意图。如图7所示,该流程可以包括:
[0148] 1.授权对象可以在链下对被授权对象授权指定数量(如上述资源授权量)的资源,如为被授权对象生成上述目标资源授权凭证(即授权的token),并可以将生成该目标资源授权凭证发放给被授权对象。
[0149] 2.被授权对象在拿到授权对象发放的授权token之后,可以使用该授权token以及相关的调用参数(如上述资源调用量、授权标识、资源授权量以及目标资源包地址),调用对资源处理合约配置的合约接口向资源处理合约发起资源调用请求。
[0150] 3.资源处理合约在接收到资源调用请求之后,可以对被授权对象提供的授权token进行验证(如通过授权token推算出授权对象的资源包地址等),验证通过后,即可对相应的资源(如目标资源)进行调用并分配给被授权对象使用。
[0151] 4.资源处理合约在基于授权token进行相应资源的调用之后,可以更新被授权对象在授权对象的资源包中的剩余资源授权量。
[0152] 基于本申请的上述方法,就可以实现被授权对象对授权对象在区块链网络中的资源的使用。
[0153] 请参见图8,图8是本申请实施例提供的一种区块链网络的资源处理装置的结构示意图。如图8所示,该区块链网络的资源处理装置1可以包括:请求获取模块11、地址获取模块12、资源获取模块13和分配模块14。
[0154] 请求获取模块11,用于获取被授权对象的资源调用请求,资源调用请求中包含授权对象向被授权对象发放的目标资源授权凭证,目标资源授权凭证用于指示被授权对象具备对授权对象在区块链网络中的资源的使用权限;
[0155] 地址获取模块12,用于基于目标资源授权凭证,获取授权对象在区块链网络中的资源包地址;
[0156] 资源获取模块13,用于授权对象的资源包地址,从授权对象的资源包中获取资源调用请求所请求调用的资源;
[0157] 分配模块14,用于将获取的资源分配给被授权对象使用。
[0158] 可选的,目标资源授权凭证是采用授权对象的对象私钥对拼接数据进行签名处理后得到的,拼接数据是对授权标识、资源授权量和被授权对象在区块链网络中的资源包地址进行拼接处理后得到的;
[0159] 其中,授权标识用于标识目标授权次数,目标授权次数是对已有资源授权次数和单位资源授权次数进行加和后得到的,已有资源授权次数是在授权对象请求对被授权对象发放资源授权凭证时区块链网络中已累计的资源授权总次数;
[0160] 资源授权量是授权对象授权给被授权对象进行使用的资源的资源量。
[0161] 可选的,资源调用请求中包含资源授权量和授权标识;地址获取模块12基于目标资源授权凭证,获取授权对象在区块链网络中的资源包地址的方式,包括:
[0162] 获取发起资源调用请求的资源包地址;
[0163] 对发起资源调用请求的资源包地址、资源调用请求中的授权标识及资源授权量进行拼接处理,生成拼接数据;
[0164] 基于签名验证算法对拼接数据和目标资源授权凭证进行签名验证运算,以生成授权对象的对象公钥;
[0165] 基于对象公钥,确定授权对象在区块链网络中的资源包地址。
[0166] 可选的,资源调用请求中包含资源调用量;
[0167] 资源获取模块13基于授权对象的资源包地址,从授权对象的资源包中获取资源调用请求所请求调用的资源的方式,包括:
[0168] 基于授权对象的资源包地址,从授权对象的资源包中获取资源调用请求所请求调用的目标资源;
[0169] 其中,目标资源的资源量等于资源调用量。
[0170] 可选的,资源调用请求是调用资源处理合约进行资源调用的请求,资源调用请求包含授权标识和授权对象授权给被授权对象进行使用的资源的资源授权量;
[0171] 在从授权对象的资源包中获取目标资源之前,上述装置1还用于:
[0172] 检测资源处理合约中是否存储有授权标识所属的授权对应关系;
[0173] 若检测到资源处理合约中未存储有授权标识所属的授权对应关系,则在资源处理合约中存储授权标识与授权数据之间的授权对应关系;
[0174] 其中,授权数据包括发起资源调用请求的资源包地址和被授权对象在授权对象的资源包中的剩余资源授权量,在授权标识与授权数据之间的授权对应关系被存储至资源处理合约中时,授权数据中的剩余资源授权量等于资源授权量。
[0175] 可选的,上述装置1还用于:
[0176] 若检测到资源处理合约中存储有授权标识所属的授权对应关系,则检测存储的授权对应关系中的资源包地址与发起资源调用请求的资源包地址之间的一致性;
[0177] 若该存储的授权对应关系中的资源包地址与发起资源调用请求的资源包地址一致,则启动从授权对象的资源包中获取目标资源的流程。
[0178] 可选的,资源调用请求中包含目标资源包地址,目标资源包地址是用于接收资源调用请求所请求调用的资源的资源包地址,资源调用请求是基于被授权对象在区块链网络中的资源包地址发起的;
[0179] 分配模块14将获取的资源分配给被授权对象使用的方式,包括:
[0180] 基于被授权对象的资源包地址,将目标资源转移至目标资源包地址所属的资源包中。
[0181] 可选的,分配模块14基于被授权对象的资源包地址,将目标资源转移至目标资源包地址所属的资源包中的方式,包括:
[0182] 获取资源处理合约存储的授权标识所属授权对应关系中的剩余资源授权量,并对获取的剩余资源授权量与资源调用量进行比对;
[0183] 若比对出获取的剩余资源授权量大于或等于资源调用量,则基于被授权对象的资源包地址,将目标资源转移至目标资源包地址所属的资源包中。
[0184] 可选的,若比对出获取的剩余资源授权量大于或等于资源调用量,则分配模块14基于被授权对象的资源包地址,将目标资源转移至目标资源包地址所属的资源包中的方式,包括:
[0185] 若比对出获取的剩余资源授权量大于或等于资源调用量,则获取授权对象的资源包中的资源的资源总量;
[0186] 对资源总量与资源调用量进行比对;
[0187] 若比对出资源总量大于或等于资源调用量,则基于被授权对象的资源包地址,将目标资源转移至目标资源包地址所属的资源包中。
[0188] 可选的,在将目标资源转移至目标资源包地址所属的资源包中之后,上述装置1还用于:
[0189] 计算资源处理合约存储的授权标识所属授权对应关系中的剩余资源授权量与资源调用量之间的资源量差值;
[0190] 将资源处理合约存储的授权标识所属授权对应关系中的剩余资源授权量,更新为资源量差值。
[0191] 可选的,在将获取的资源分配给被授权对象使用之后,上述装置1还用于:
[0192] 生成用于提示授权对象资源被使用成功的第一提示信息,并生成用于提示被授权对象对授权对象的资源使用成功的第二提示信息;
[0193] 将第一提示信息发送至授权对象的对象设备,并将第二提示信息发送至被授权对象的对象设备。
[0194] 根据本申请的一个实施例,图3所示的区块链网络的资源处理方法所涉及的步骤可由图8所示的区块链网络的资源处理装置1中的各个模块来执行。例如,图3中所示的步骤S101可由图8中的请求获取模块11来执行,图3中所示的步骤S102可由图8中的地址获取模块12来执行;图3中所示的步骤S103可由图8中的资源获取模块13来执行,图3中所示的步骤S104可由图8中的分配模块14来执行。
[0195] 本申请可以获取被授权对象的资源调用请求,资源调用请求中包含授权对象向被授权对象发放的目标资源授权凭证,目标资源授权凭证用于指示被授权对象具备对授权对象在区块链网络中的资源的使用权限;并可以基于目标资源授权凭证,获取授权对象在区块链网络中的资源包地址;还可以基于授权对象的资源包地址,从授权对象的资源包中获取资源调用请求所请求调用的资源;进而,可以将获取的资源分配给被授权对象使用。由此可见,本申请提出的方法被授权对象可以基于授权对象为其发放的目标资源授权凭证,来调用授权对象在区块链网络的资源包中的资源,并可以使用所调用的资源,以此可以丰富对对象在区块链网络中的资源的使用方式,并可以在不同对象(如授权对象和被授权对象)之间提升对区块链网络中的资源的使用灵活性。
[0196] 根据本申请的一个实施例,图8所示的区块链网络的资源处理装置1中的各个模块可以分别或全部合并为一个或若干个单元来构成,或者其中的某个(些)单元还可以再拆分为功能上更小的多个子单元,可以实现同样的操作,而不影响本申请的实施例的技术效果的实现。上述模块是基于逻辑功能划分的,在实际应用中,一个模块的功能也可以由多个单元来实现,或者多个模块的功能由一个单元实现。在本申请的其它实施例中,区块链网络的资源处理装置1也可以包括其它单元,在实际应用中,这些功能也可以由其它单元协助实现,并且可以由多个单元协作实现。
[0197] 根据本申请的一个实施例,可以在通用计算机设备(该计算机设备可以包含中央处理单元(CPU)、随机存取存储介质(RAM)、只读存储介质(ROM)等处理元件和存储元件)上,运行能够执行本申请各实施例中所示的相应方法所涉及的各步骤的计算机程序,来构造如图8中所示的区块链网络的资源处理装置1。上述计算机程序可以记载于如计算机可读记录介质上,且可以通过该计算机可读记录介质装载于上述计算机设备中,并在其中运行。
[0198] 请参见图9,图9是本申请实施例提供的一种计算机设备的结构示意图。如图9所示,计算机设备1000可以包括:处理器1001,网络接口1004和存储器1005,此外,在一些实施例中,计算机设备1000还可以包括:用户接口1003,和至少一个通信总线1002。其中,通信总线1002用于实现这些组件之间的连接通信。其中,用户接口1003可以包括显示屏(Display)、键盘(Keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI‑FI接口)。存储器1005可以是高速RAM存储器,也可以是非不稳定的存储器(non‑volatile memory),例如至少一个磁盘存储器。存储器1005可选的还可以是至少一个位于远离前述处理器1001的存储装置。如图9所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块、用户接口模块以及设备控制应用程序。
[0199] 在图9所示的计算机设备1000中,网络接口1004可提供网络通讯功能;而用户接口1003主要用于为用户提供输入的接口;而处理器1001可以用于调用存储器1005中存储的设备控制应用程序,以实现:
[0200] 获取被授权对象的资源调用请求,资源调用请求中包含授权对象向被授权对象发放的目标资源授权凭证,目标资源授权凭证用于指示被授权对象具备对授权对象在区块链网络中的资源的使用权限;
[0201] 基于目标资源授权凭证,获取授权对象在区块链网络中的资源包地址;
[0202] 基于授权对象的资源包地址,从授权对象的资源包中获取资源调用请求所请求调用的资源;
[0203] 将获取的资源分配给被授权对象使用。
[0204] 应当理解,本申请实施例中所描述的计算机设备1000可执行本申请各实施例中对上述区块链网络的资源处理方法的描述,也可执行前文图8所对应实施例中对上述区块链网络的资源处理装置1的描述,在此不再赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。
[0205] 此外,这里需要指出的是:本申请还提供了一种计算机可读存储介质,且计算机可读存储介质中存储有计算机程序,当处理器执行该计算机程序时,能够执行本申请各实施例中对区块链网络的资源处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
[0206] 作为示例,上述计算机程序可被部署在一个计算机设备上执行,或者被部署位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行,分布在多个地点且通过通信网络互连的多个计算机设备可以组成区块链网络。
[0207] 上述计算机可读存储介质可以是上述计算机设备的内部存储单元,例如计算机设备的硬盘或内存。该计算机可读存储介质也可以是该计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,SMC),安全数字(secure digital,SD)卡,闪存卡(flash card)等。进一步地,该计算机可读存储介质还可以既包括该计算机设备的内部存储单元也包括外部存储设备。该计算机可读存储介质用于存储该计算机程序以及该计算机设备所需的其他程序和数据。该计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。
[0208] 本申请提供了一种计算机程序产品,该计算机程序产品包括计算机程序,该计算机程序存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机程序,处理器执行该计算机程序,使得该计算机设备执行本申请各实施例中对上述区块链网络的资源处理方法的描述,因此,这里将不再进行赘述。另外,对采用相同方法的有益效果描述,也不再进行赘述。对于本申请所涉及的计算机可读存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。
[0209] 本申请实施例的说明书和权利要求书及附图中的术语“第一”、“第二”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、装置、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、装置、产品或设备固有的其他步骤单元。
[0210] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0211] 以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。