CN117216807A - 基于区块链的服务调用方法、装置、设备、介质及产品 - Google Patents
基于区块链的服务调用方法、装置、设备、介质及产品 Download PDFInfo
- Publication number
- CN117216807A CN117216807A CN202311229937.1A CN202311229937A CN117216807A CN 117216807 A CN117216807 A CN 117216807A CN 202311229937 A CN202311229937 A CN 202311229937A CN 117216807 A CN117216807 A CN 117216807A
- Authority
- CN
- China
- Prior art keywords
- service
- transaction
- blockchain
- request
- key
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 106
- 238000012795 verification Methods 0.000 claims abstract description 135
- 230000004044 response Effects 0.000 claims abstract description 14
- 238000012545 processing Methods 0.000 claims description 101
- 238000007726 management method Methods 0.000 claims description 85
- 238000013523 data management Methods 0.000 claims description 75
- 238000013475 authorization Methods 0.000 claims description 55
- 238000004364 calculation method Methods 0.000 claims description 33
- 238000004590 computer program Methods 0.000 claims description 23
- 238000005516 engineering process Methods 0.000 description 24
- 238000010586 diagram Methods 0.000 description 17
- 230000006870 function Effects 0.000 description 16
- 230000003993 interaction Effects 0.000 description 10
- 238000013473 artificial intelligence Methods 0.000 description 6
- 238000004891 communication Methods 0.000 description 4
- 238000013500 data storage Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 238000012384 transportation and delivery Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Abstract
本申请提出一种基于区块链的服务调用方法、装置、设备、介质及产品。该方法包括:响应于针对区块链的事务请求,调用第一服务确定事务请求所需的事务密钥数据;基于事务密钥数据确定待调用的第二服务,第二服务中部署有事务密钥数据;生成针对第二服务的调用请求,并采用第一服务的私钥对调用请求进行签名处理,得到签名调用请求;将签名调用请求发送至第二服务进行验签,并在验签通过后调用第二服务中的事务密钥数据;调用第一服务采用事务密钥数据对事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在区块链上执行所述事务。本申请能够在服务间调用过程中进行签名验证,可提高事务密钥数据的安全性。
Description
技术领域
本申请涉及区块链技术领域,尤其涉及一种基于区块链的服务调用方法、一种基于区块链的服务调用装置、一种计算机设备、一种计算机可读存储介质以及一种计算机程序产品。
背景技术
在区块链中,涉及资产交易、游戏交易、数据查询等诸多事务需在区块链上执行。在区块链上执行这些事务之前,往往需采用事务密钥数据(例如私钥)对事务请求进行签名后,方可上链执行相关事务,在获取事务密钥数据的过程中往往涉及多个服务之间的调用。目前,通常直接调用相关服务来获取所需的事务密钥数据,这样会导致事务密钥数据存在被盗用或窃取的风险,存在极大的数据安全性。
发明内容
本申请实施例提出了一种基于区块链的服务调用方法、装置、设备、介质及产品,能够在获取事务密钥数据的过程中,对服务之间的相互调用进行授权处理,可提高事务密钥数据的安全性。
一方面,本申请实施例提供了一种基于区块链的服务调用方法,该方法包括:
响应于针对区块链的事务请求,调用第一服务确定事务请求所需的事务密钥数据;事务请求用于请求调用第一服务将事务请求上传至区块链上,以触发在区块链上执行所请求的事务;
基于事务密钥数据确定待调用的第二服务,第二服务中部署有事务密钥数据;
生成针对第二服务的调用请求,并采用第一服务的私钥对调用请求进行签名处理,得到签名调用请求;
将签名调用请求发送至第二服务进行验签,并在验签通过后调用第二服务中的事务密钥数据;
调用第一服务采用事务密钥数据对事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在区块链上执行事务。
一方面,本申请实施例提供了一种基于区块链的服务调用方法,该方法包括:
接收第一服务发送的签名调用请求,签名调用请求是第一服务采用私钥对调用请求进行签名处理后得到的,调用请求是第一服务在响应于事务请求并确定事务请求所需的事务密钥数据后生成的;
基于签名调用请求,对第一服务进行验签处理;
若确定对第一服务的验签通过,则对第一服务进行接口授权处理;其中,接口授权处理用于触发第一服务调用第二服务中的密钥数据,以使第一服务采用事务密钥数据对事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在区块链上执行事务。
一方面,本申请实施例提供了一种基于区块链的服务调用装置,该装置包括:
确定单元,用于响应于针对区块链的事务请求,调用第一服务确定事务请求所需的事务密钥数据;事务请求用于请求调用第一服务将事务请求上传至区块链上,以触发在区块链上执行所请求的事务;
确定单元,还用于基于事务密钥数据确定待调用的第二服务,第二服务中部署有事务密钥数据;
处理单元,用于生成针对第二服务的调用请求,并采用第一服务的私钥对调用请求进行签名处理,得到签名调用请求;
发送单元,用于将签名调用请求发送至第二服务进行验签,并在验签通过后调用第二服务中的事务密钥数据;
处理单元,还用于调用第一服务采用事务密钥数据对事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在区块链上执行事务。
在一种可能的实现方式中,第一服务设置于区块链服务系统中,区块链服务系统中部署有多个服务,区块链服务系统中的各个服务用于处理区块链相关事务;第一服务是区块链服务系统中的任一个服务;
第二服务设置于密钥数据管理系统中,密钥数据管理系统中存储有处理区块链相关事务签名所需的事务密钥数据;密钥数据管理系统中部署有多个服务,第二服务是密钥数据管理系统中的任一个服务。
在一种可能的实现方式中,确定单元调用第一服务确定事务请求所需的事务密钥数据,用于执行以下操作:
解析事务请求,获取事务请求需执行的事务的事务类型;
按照事务类型,从区块链服务系统中确定出需调用的第一服务;
调用区块链服务系统中的所述第一服务,确定事务请求所需的事务密钥数据。
在一种可能的实现方式中,处理单元在验签通过后调用第二服务中的事务密钥数据,用于执行以下操作:
若接收第二服务返回的接口授权消息,则确定第二服务对第一服务的验签通过,并调用第二服务的服务接口获取密钥数据管理系统中的事务密钥数据;或者,
接收第二服务返回的反馈数据,并解析反馈数据得到事务密钥数据,反馈数据是第二服务在对第一服务验签通过后发送的。
在一种可能的实现方式中,事务请求为针对区块链的资产交易请求,所述资产交易请求所需的事务密钥数据为:需处理的数字资产所属的目标对象的私钥;第一服务为区块链服务系统中的交易服务,第二服务为密钥管理系统中的密钥管理服务;处理单元还用于执行以下操作:
调用交易服务,采用目标对象的私钥对资产交易请求进行签名处理,得到签名后的资产交易请求;
将签名后的资产交易请求发送至区块链中的目标区块链节点,触发由目标区块链节点执行资产交易;
其中,目标区块链节点为:区块链中的任一个区块链节点、或区块链中指定类型的区块链节点。
在一种可能的实现方式中,处理单元还用于执行以下操作:
获取资产交易请求需处理的数字资产的资产类型;
若数字资产的资产类型为预设资产类型,则对签名后的资产交易请求进行加密处理,得到加密资产交易请求;
调用交易服务,将加密资产交易请求发送至区块链进行上链处理。
一方面,本申请实施例提供了一种基于区块链的服务调用装置,该装置包括:
接收单元,用于接收第一服务发送的签名调用请求,签名调用请求是第一服务采用私钥对调用请求进行签名处理后得到的,调用请求是第一服务在响应于事务请求并确定事务请求所需的事务密钥数据后生成的;
处理单元,用于基于签名调用请求,对第一服务进行验签处理;
处理单元,还用于若确定对第一服务的验签通过,则对第一服务进行接口授权处理;其中,接口授权处理用于触发第一服务调用第二服务中的密钥数据,以使第一服务采用事务密钥数据对事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在区块链上执行事务。
在一种可能的实现方式中,处理单元基于签名调用请求,对第一服务进行验签处理,用于执行以下操作:
解析签名调用请求,得到第一服务的授权签名数据;
从区块链中获取第一服务的公钥,并按照第一服务的公钥,对第一服务的授权签名数据进行验签处理;
若验签通过,则确定对第一服务的验签通过。
在一种可能的实现方式中,处理单元基于签名调用请求,对第一服务进行验签处理,还用于执行以下操作:
获取第二服务对应的白名单列表,白名单列表中记录有允许调用第二服务的至少一个服务的服务标识,服务标识包括:服务名称、公钥中的任一种或多种;
若白名单列表中记录有第一服务的服务标识,则确定对第一服务的验签通过。
在一种可能的实现方式中,第二服务为密钥数据管理系统中的密钥管理服务,密钥数据管理系统中还部署有密钥计算服务;处理单元还用于执行以下操作:
响应于服务密钥请求,服务密钥请求用于请求为目标服务生成服务密钥,服务密钥包括目标服务的公钥和私钥;
调用密钥管理服务将服务密钥请求发送至密钥计算服务,以使密钥计算服务为目标服务生成服务密钥;
接收密钥计算服务返回的目标服务的公钥,并将目标服务的公钥发送至区块链进行上链处理。
在一种可能的实现方式中,处理单元还用于执行以下操作:
调用密钥管理服务获取目标服务的服务类型;
若目标服务的服务类型为预设服务类型,则触发执行将目标服务的服务公钥发送至区块链进行上链处理;
若目标服务的服务类型不为预设服务类型,则将目标服务的公钥存储在密钥数据管理系统中。
一方面,本申请实施例提供一种计算机设备,该计算机设备包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述的基于区块链的服务调用方法。
一方面,本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被计算机设备的处理器读取并执行时,使得计算机设备执行上述的基于区块链的服务调用方法。
一方面,本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述的基于区块链的服务调用方法。
本申请实施例中,响应于针对区块链的事务请求,调用第一服务确定事务请求所需的事务密钥数据,该事务请求用于请求调用第一服务将事务请求上传至区块链上,以触发在区块链上执行所请求的事务;基于事务密钥数据确定待调用的第二服务,第二服务中部署有事务密钥数据;生成针对第二服务的调用请求,并采用第一服务的私钥对调用请求进行签名处理,得到签名调用请求;将签名调用请求发送至第二服务进行验签,并在验签通过后调用第二服务中的事务密钥数据;调用第一服务采用事务密钥数据对事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在区块链上执行事务。由此可见,本申请能够在区块链上请求执行事务之前,需调用第一服务获取第二服务中的事务密钥数据,第一服务调用第二服务时需使用第一服务的私钥进行授权签名,进而第二服务会对第一服务进行验签,当第二服务对第一服务验签通过后,方可允许第一服务调用第二服务中进而获取事务密钥数据,由于服务之间的相互调用需进行验证,因此可以提高事务密钥数据的安全性。
附图说明
为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术对象来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种基于区块链的服务调用方案的原理示意图;
图2a是本申请实施例提供的一种区块链系统的结构示意图;
图2b是本申请实施例提供的一种区块链的结构示意图;
图3是本申请实施例提供的一种基于区块链的服务调用系统的结构示意图;
图4是本申请实施例提供的一种基于区块链的服务调用方法的流程示意图;
图5是本申请实施例提供的一种获取身份信息的场景示意图;
图6是本申请实施例提供的另一种基于区块链的服务调用方法的流程示意图;
图7是本申请实施例提供的一种基于区块链的服务调用方法的交互流程图;
图8a是本申请实施例提供的一种账户注册的流程示意图;
图8b是本申请实施例提供的一种服务的公钥注册流程的示意图;
图9是本申请实施例提供的一种基于区块链的服务调用装置的结构示意图;
图10是本申请实施例提供的另一种基于区块链的服务调用装置的结构示意图;
图11是本申请实施例提供的一种计算机设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
本申请提供了一种基于区块链的服务调用方案,适用于在区块链上执行任何事务的场景(诸如资产交易场景、游戏交易场景等)中,在获取事务请求所需的事务密钥数据的过程中,涉及后台服务之间的相互调用,本申请能够在服务之间相互调用时进行调用验证,以保证服务间相互调用的可信性,从而能够提高事务请求过程中的事务密钥数据的安全性。举例来说,以资产交易场景为例,请参见图1,图1是本申请实施例提供的一种基于区块链的服务调用方案的原理示意图,下面结合图1对本申请服务调用方案的大致原理进行阐述。
1)当目标对象请求在区块链上执行一笔资产交易(例如数字藏品的交易、游戏资产的交易等)之前,需通过该目标对象的私钥(即事务密钥数据)对该笔资产交易请求进行签名处理后方可上链执行交易,通常由区块链服务系统(例如资产管理端)按照目标对象的私钥执行交易签名。那么,目标对象在客户端中发起的资产交易请求(即事务请求)将会被发送至区块链服务系统,其中,该资产交易请求可通过网关服务路由至交易服务(即第一服务)。具体地,区块链服务系统响应于针对区块链的资产交易请求,需调用交易服务确定该资产交易请求所需的目标对象的私钥。其中,该资产交易请求用于请求调用交易服务将资产交易请求上传至区块链上,以触发在区块链上执行上述资产交易。
2)资产管理端需基于目标对象的私钥确定待调用的第二服务为密钥数据管理系统中的密钥管理服务,密钥数据管理系统中存储有目标对象的私钥。可选的,目标对象的私钥可存储于密钥数据管理系统的加密机中。
3)交易服务生成针对密钥管理服务(即第二服务)的调用请求,以获取加密机中存储的私钥。具体地,可采用交易服务的私钥对资产交易请求进行授权签名,得到签名调用请求。
4)交易服务将签名调用请求发送至密钥管理服务进行服务间调用的可信验证,若密钥管理服务基于签名调用请求中的授权签名数据对交易服务的可信验证通过,则允许交易服务调用密钥管理服务的服务接口。
5)当交易服务调用密钥管理服务的服务接口成功获取到该目标对象的私钥后,可基于目标对象的私钥,对资产交易请求进行签名处理,并将签名后的资产交易请求上传至区块链,触发在区块链中执行上述资产转移的事务。
由此可见,本申请能够在区块链上请求执行事务之前,需调用第一服务获取第二服务中的事务密钥数据,第一服务调用第二服务时需使用第一服务的私钥进行授权签名,进而第二服务会对第一服务进行验签,当第二服务对第一服务验签通过后,方可允许第一服务调用第二服务中进而获取事务密钥数据,由于服务之间的相互调用需进行验证,因此可以提高事务密钥数据的安全性。
下面对本申请提供的基于区块链的服务调用方案所涉及到的相关技术术语进行详细介绍。
一、事务
事务是指在区块链上请求执行的一个或多个交易。其中,此处的交易可以包括各种业务类型,例如业务类型可以为:资产类型、游戏类型、查询类型等等。例如,业务类型为资产类型,则在区块链上请求执行的事务可以为资产交易,如处理数字藏品相关的资产交易、处理token相关的资产交易等等,本申请并不对资产交易所处理的数字资产的类型进行具体限定。又如,业务类型为游戏类型,则在区块链上请求执行的事务可以为游戏交易,如处理游戏相关的游戏交易。还如,业务类型为查询类型,则在区块链上请求执行的事务可以为查询事务,如处理待查询数据相关的查询事务。
二、事务密钥数据
事务密钥数据是指请求在区块链上执行上述事务所需使用的数据。其中,不同事务所需的事务密钥数据不相同,例如事务为资产交易,则该资产交易所需的事务密钥数据可以为请求处理数字资产所属的目标对象的私钥;又如事务为游戏交易,则该游戏交易所需的事务密钥数据可以为请求处理的目标游戏的游戏密钥等等。
三、第一服务、第二服务
第一服务是指处理针对区块链的事务请求的一种服务。具体地,该第一服务主要负责获取事务请求所需的事务密钥数据,并采用获取到的事务密钥数据对事务请求进行签名处理,以将签名后的事务请求上传至区块链中。例如,事务请求为资产交易请求,则第一服务可以为交易服务,该交易服务可以获取发起资产交易请求的目标对象的私钥,以基于目标对象的私钥对资产交易请求进行签名后上链,触发在区块链上执行资产交易。
第二服务是指部署有事务密钥数据的一种服务。具体地,第二服务可负责对事务密钥数据进行存储和管理,例如第二服务可按照不同业务类型分类存储各个事务密钥数据;又如第二服务可以还可以按照不同业务类型分类管理各个事务密钥数据,等等。
其中,第一服务与第二服务可以设置于同一系统中,也可以设置在不同的系统中。例如第一服务设置于区块链服务系统中,用于处理区块链相关事务;第二服务设置于密钥数据管理系统中,用于存储和管理多个事务涉及到的事务密钥数据;并且,第一服务是指区块链服务系统中的任一服务,第二服务是指密钥数据管理系统中的任一服务。应当理解,第一服务与第二服务之间允许相互调用,即第一服务可以调用第二服务,同理,第二服务也可以调用第一服务。
需要说明的是,本申请涉及到的服务(例如第一服务与第二服务)可以为人工智能(Artificial Intelligence,AI)服务,所谓人工智能是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。举例来说,本申请中的第一服务可以为计算机视觉服务,第二服务可以为语音处理服务。
四、区块链技术
区块链(Block chain)本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了相关的信息,用于验证其信息的有效性(防伪)和生成下一个区块。具体地,本申请将分别对区块链系统、以及区块链的结构等相关术语进行详细介绍。
(1)区块链系统:
请参见图2a,图2a是本申请实施例提供的一种区块链系统的结构示意图。如图2a所示,区块链系统可以为数据共享系统,所谓数据共享系统是指用于进行节点设备与节点设备之间数据共享的系统,该数据共享系统200中可以包括多个节点设备201,多个节点设备201可以是指数据共享系统中各个计算机设备,计算机设备例如可以为终端设备或服务器。其中,不同的节点设备201的设备类型可以相同,也可以不相同,例如某一节点设备201可以为终端设备,另一节点设备201可以为服务器。
具体地,每个节点设备201在进行正常工作时可以接收到输入信息,并基于接收到的输入信息维护该数据共享系统内的共享数据。例如,当区块链系统中的任一节点设备201接收到输入信息(例如接收到一笔资产交易请求)时,该节点设备201可以解析该资产交易请求,得到交易数据(例如待转移的数字资产的类型、数量),然后将交易数据发送至区块链中的其它各个区块链节点,使得各个区块链节点对当前资产交易的交易数据进行区块链共识,若共识通过,则执行当前资产交易并将交易执行结果写入至区块链中,以使区块链上的各个区块链节点共同维护该资产交易的交易执行结果。
(2)区块链节点:
①节点功能:
a、应用功能,用于部署在区块链中,根据实际业务需求而实现特定业务,记录实现业务功能相关的数据形成记录数据(例如资产交易请求中携带的交易数据,例如交易数据包括需调用的目标智能合约的合约标识),该交易请求可用于请求在区块链上实现目标交易的业务功能,例如业务功能可以包括:资源转移功能、游戏业务功能等。在一种实现方式中,可在交易请求中携带数字签名(即基于目标对象的私钥生成的数字签名)以表示该交易数据的来源,并可将交易数据发送到区块链系统中的其他节点,供其他节点在验证交易数据的来源以及完整性成功时,将交易数据添加到临时区块中,即可完成对交易数据的上链处理。
b、合约功能,区块链系统中任一区块链节点具备调用并执行相应的智能合约的功能,所谓智能合约(可简称合约):智能合约具备承诺、协议、数字形式三大要素,因此能够将区块链的应用范围扩展至金融行业交易、支付、结算和清算的各个环节。智能合约是指当一个预先编译好的条件被触发时,智能合约会立即执行相应的合同条款,其工作原理类似于计算机程序的if-then语句。其中,区块链节点中运行有智能合约虚拟机(是一种能够执行智能合约的虚拟机),智能合约虚拟机可以理解并执行这些代码,以实现智能合约的功能。本申请中,可基于合约功能在区块链节点中部署各个类型的智能合约,以在区块链中能够调用相应的智能合约执行相应的合约交易。
②节点标识:
对于区块链系统中的每个节点,均具有与其对应的节点标识,而且区块链系统中的每个节点均可以存储有区块链系统中其他节点的节点标识,以便后续根据其他节点的节点标识,将生成的区块广播至区块链系统中的其他节点。每个节点中可维护一个如下表所示的节点标识列表,将节点名称和节点标识对应存储至该节点标识列表中。
其中,节点标识可为IP(Internet Protocol,网络之间互联的协议)地址以及其他任一种能够用于标识该节点的信息,表1中仅以IP地址为例进行说明。
表1.节点标识列表
节点名称 | 节点标识 |
节点1 | 000.000.000.000 |
节点2 | 111.111.111.111 |
… | … |
节点N | xxx.xxx.xxx.xxx |
本申请实施例中,资产交易请求中携带有交易数据,例如交易数据包括:需调用的目标智能合约的合约标识、接收数字资产的账户地址、转移数字资产的账户地址等,各个区块链节点可以对资产交易请求中携带的交易数据进行区块链共识,区块链共识过程中涉及到区块链节点之间的数据交互。在进行数据交互过程中,任一区块链节点可以携带有各自的节点标识,使得其他节点在进行共识处理之前可以基于对应的节点标识进行节点验证处理,从而提高区块链共识过程的安全性。
(3)区块的结构:
参见图2b,图2b是本申请实施例提供的一种区块链的结构示意图。如图2b所示,区块链由多个区块组成,且每个区块链均包含一个创始块,顾名思义,所谓创始块即第一个区块、初始区块。创始块中包括区块头和区块体,区块头中存储有输入信息特征值、版本号、时间戳和难度值,区块体中存储有输入信息;创始块的下一区块以创始块为父区块,下一区块中同样包括区块头和区块体,区块头中存储有当前区块的输入信息特征值、父区块的区块头特征值、版本号、时间戳和难度值,并以此类推,使得区块链中每个区块中存储的交易数据均与父区块中存储的交易数据存在关联,保证了区块中交易数据的安全性。
本申请实施例中,按照图2b所示的区块结构构成的区块链,可以保证执行目标交易过程中涉及到的相关交易数据的安全性,从而提高了在链上执行目标交易的可靠性和安全性。
五、云技术:
本申请提出的基于区块链的服务调用方案中,区块链中涉及较多的数据计算服务以及数据存储服务,因此需要花费大量的计算机运营成本。那么,本申请可以基于云技术中的云存储技术来执行相应的服务调用操作,具体包括:可以基于数据存储服务将各个服务的私钥在加密机中进行数据存储,或者基于数据存储服务将各个服务的服务公钥存储在区块链中;以及,可以基于数据计算服务在区块链上执行事务,或者基于数据计算服务对第一服务进行验签。其中,所谓云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。其中,云技术可以包括云存储技术,所谓云存储(cloud storage)是在云计算概念上延伸和发展出来的一个新的概念,分布式云存储系统(以下简称存储系统)是指通过集群应用、网格技术以及分布存储文件系统等功能,将网络中大量各种不同类型的存储设备(存储设备也称之为存储节点)通过应用软件或应用接口集合起来协同工作,共同对外提供数据存储和业务访问功能的一个存储系统。
需要特别说明的是,在本申请中涉及到的服务调用过程中的相关数据,例如:事务密钥数据、各个服务(例如第一服务、第二服务)的公钥、私钥、以及目标对象的私钥等等。在本申请以上实施例运用到具体产品或技术中时,需获得用户许可或同意,且相关数据收集、使用和处理过程需遵守国家和地区的相关法律法规和标准,符合合法、正当、必要的原则,不涉及获取法律法规禁止或限制的数据类型。在一些可选的实施例中,本申请实施例中所涉及的相关数据是经过对象单独授权后获取的,另外,在获取对象单独授权时,需向对象表明所涉及的相关数据的用途。
下面对本申请提供的基于区块链的服务调用系统的架构图进行具体介绍。
请参见图3,图3是本申请实施例提供的一种基于区块链的服务调用系统的架构示意图。如图3所示,该服务调用系统的架构图中至少可以包括:区块链服务系统301、密钥数据管理系统302、以及至少一个区块链节点303。其中,各区块链节点303构成一个区块链网络,应当说明,该区块链网络中的节点数量仅用于示例,并不对本申请中的节点数量进行具体限定。其中,区块链网络中的任一区块链节点303可以通过有线或无线通信方式分别与区块链服务系统301和密钥数据管理系统302之间进行直接或间接地连接。
其中,服务调用系统中的任一计算机设备(区块链服务系统301、密钥数据管理系统302、或者区块链节点303)可以是手机、平板电脑、笔记本电脑、掌上电脑、移动互联网设备(MID,mobile internet device)、车辆、车载设备、路边设备、飞行器、可穿戴设备,诸如智能手表、智能手环、计步器等的智能设备,虚拟现实设备....等等。另外,服务调用系统中的任一计算机设备(区块链服务系统301、密钥数据管理系统302、或者区块链节点303)也可以是服务器。具体地,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器。
可以理解的是,服务调用系统中的各个计算机设备的类型可以相同或不同,例如,区块链服务系统301、密钥数据管理系统302均可以是服务器,区块链节点303可以是手机;再如,区块链服务系统301可以是服务器,密钥数据管理系统302也可以是服务器,区块链节点303还可以是服务器。本申请并不对服务调用系统中的各个计算机设备的数量及类型进行限定。
(1)首先,结合图1对服务调用系统中的区块链服务系统301、密钥数据管理系统302以及区块链节点303中各个计算机设备的主要功能进行简要说明。
①区块链服务系统301:负责为目标对象提供资产交易相关的后台服务。具体地,在目标对象发起一笔资产交易请求后,区块链服务系统能够使用该目标对象的私钥,来对该目标对象发起的资产交易请求进行签名,进而可将签名后的资产交易请求发送至区块链上进行交易执行,以保证该笔资产交易是由目标对象本人发起的,防止目标对象的资产被盗用的分风险。如图1所示,该区块链服务系统主要可以提供以下服务:
a.网关服务:负责提供与用户客户端进行网络交互的服务,例如区块链服务系统可以基于网关服务接收用户客户端发起的资产交易请求。
b.资源管理服务:主要包括对象服务、交易服务、以及资产服务。通过以上这些服务实现对用户资产的后台管理,以保证用户资产的安全性。其中:
i.对象服务,负责提供与用户管理相关的服务,例如管理用户的账户、名称、ID;或者,提供用户注册服务、用户登录服务、以及授权服务等;
ii.交易服务,负责提供与资产交易相关的服务,例如对用户发起的资产交易请求进行签名处理;
iii.资产服务,负责提供与数字资产相关的管理服务,例如查询用户账户中的资产余额、查询有多少类型的数字资产等服务。
②密钥数据管理系统302:用于负责管理各个对象的私钥以及服务的私钥。具体地,该密钥管理平台中包括加密机,为了安全托管用户的私钥,将对象的私钥在加密机中进行生成和保管,可以通过加密机的安全措施保护私钥的安全。其中,加密机是一种使用三层加密技术或四层加密技术的硬件加密设备,具备较为可靠的安全保护措施,因此本方案通过加密机的安全措施来保管各个对象的私钥可以保证私钥的安全性。另外,密钥数据管理系统还用于提供密钥管理服务和密钥计算服务。其中:
a.密钥管理服务:负责与区块链服务系统进行交互的服务,在服务调用之前,主调服务(例如交易服务)需获得被调服务(例如密钥管理服务)的接口授权,方可调用被调用服务,仅允许区块链服务系统中的部分服务(例如交易服务)调用该密钥管理服务。
b.密钥计算服务:负责为各个服务提供加密计算的服务,可直接从加密机中获取对象私钥或私钥,或者将计算得到的私钥存储在加密机中。具体地,密钥计算服务可为上述各个服务(例如网关服务、对象服务、第一服务、资产服务等)生成相应的私钥,并将私钥存储在加密机中安全保管。
③区块链节点303:负责接收签名后的上链请求(例如签名后的资产交易请求),并在区块链上调用相应的智能合约执行交易。
上述可见,在目标对象发起一笔上链交易之前,区块链服务系统需从密钥数据管理系统中获取该目标对象的私钥进行请求签名,在获取对象私钥过程中涉及到多个后台服务直接的相互调用,本申请能够在服务调用之前进行接口授权,从而提高服务调用之间的可信度,以提高对象私钥的数据安全性。
(2)然后,结合图3对服务调用系统中的区块链服务系统301、密钥数据管理系统302以及区块链节点303之间的数据交互过程进行详细介绍:
①区块链服务系统301响应于目标对象针对区块链发起的事务请求,调用第一服务确定事务请求所需的事务密钥数据,该事务请求用于请求调用第一服务将事务请求上传至区块链上,以触发在区块链上执行所请求的事务。
②区块链服务系统301基于事务密钥数据确定待调用的第二服务,第二服务中所属的密钥数据管理系统302中部署有事务密钥数据。
③区块链服务系统301生成针对密钥数据管理系统302中第二服务的调用请求,并采用第一服务的私钥对调用请求进行签名处理,得到签名调用请求。进一步地,区块链服务系统301将签名调用请求发送至密钥数据管理系统302。
④密钥数据管理系统302接收到签名调用请求后,可以调用第二服务对第一服务进行验签。其中,若第二服务对第一服务的验签通过,则第二服务允许第一服务进行接口调用;若第二服务对第一服务的验签不通过,则第二服务拒绝第一服务进行接口调用。
⑤当验签通过后,区块链服务系统301中的第一服务可调用密钥数据管理系统302的第二服务的接口,以获取事务密钥数据;并采用获取到的事务密钥数据对事务请求进行签名处理,得到签名后的事务请求。
⑥区块链服务系统301可以将签名后的事务请求发送至区块链节点303,触发区块链节点303在区块链上执行事务。其中,此处的区块链节点303可以为区块链中的任一节点,或者为区块链中指定类型的区块链节点(例如记账节点)。
本申请提供的服务调用系统,可以响应于针对区块链的事务请求,调用第一服务确定事务请求所需的事务密钥数据,该事务请求用于请求调用第一服务将事务请求上传至区块链上,以触发在区块链上执行所请求的事务;基于事务密钥数据确定待调用的第二服务,第二服务中部署有事务密钥数据;生成针对第二服务的调用请求,并采用第一服务的私钥对调用请求进行签名处理,得到签名调用请求;将签名调用请求发送至第二服务进行验签,并在验签通过后调用第二服务中的事务密钥数据;调用第一服务采用事务密钥数据对事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在区块链上执行事务。由此可见,本申请能够在区块链上请求执行事务之前,需调用第一服务获取第二服务中的事务密钥数据,第一服务调用第二服务时需使用第一服务的私钥进行授权签名,进而第二服务会对第一服务进行验签,当第二服务对第一服务验签通过后,方可允许第一服务调用第二服务中进而获取事务密钥数据,由于服务之间的相互调用需进行验证,因此可以提高事务密钥数据的安全性。
可以理解的是,本申请实施例描述的服务调用系统是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术对象可知,随着系统架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
下面结合附图对基于区块链的服务调用方案涉及的具体实施例进行描述。
请参见图4,图4是本申请实施例所提供的一种基于区块链的服务调用方法的流程示意图。该服务调用方法可以由图3所示的基于区块链的服务调用系统中的区块链服务系统执行。其中,该基于区块链的服务调用方法主要包括但不限于如下步骤S401~S405:
S401:响应于针对区块链的事务请求,调用第一服务确定事务请求所需的事务密钥数据;事务请求用于请求调用第一服务将事务请求上传至区块链上,以触发在区块链上执行所请求的事务。
在一种可能的实现方式中,事务请求中携带有待调用的第一服务的服务标识(例如名称、ID等),在区块链服务系统接收到事务请求后,可以基于事务请求中携带的服务标识,来调用该服务标识所指示的第一服务确定事务请求所需的事务密钥数据。在此实现方式下,直接在事务请求中指定了需调用的第一服务,从而可调用指定的第一服务来确定事务密钥数据,例如事务请求指定需调用的第一服务为交易服务,则区块链服务系统接收到事务请求后,可直接调用交易服务确定该事务请求所需的事务密钥数据。
在另一种可能的实现方式中,调用第一服务确定事务请求所需的事务密钥数据,具体可以包括如下流程:首先可以解析事务请求,获取该事务请求需执行的事务的事务类型;然后按照事务类型,从区块链服务系统中确定出需调用的第一服务;最后调用区块链服务系统中的第一服务,确定事务请求所需的事务密钥数据。在此实现的方式下,区块链服务系统接收到事务请求后,需按照事务类型自行确定相匹配的第一服务进行调用,从而调用第一服务来获取事务请求所需的事务密钥数据。例如事务类型为交易类型,则确定出需调用的第一服务为交易服务;又如事务类型为游戏类型,则确定出需调用的第一服务为游戏服务;还如事务类型为查询类型,则确定出需调用的第一服务为查询服务。
进一步地,在调用第一服务确定事务请求所需的事务密钥数据时,可以由第一服务确定当前事务请求所需的事务密钥数据。例如,事务请求为资产交易请求、第一服务为交易服务,则交易服务可确定事务密钥数据为:资产交易请求的请求对象(即发起关于数字资产交易的目标对象)的私钥;又如,事务请求为游戏请求、第一服务为游戏服务,则游戏服务可确定事务密钥数据为:游戏请求对应的目标游戏的游戏密钥。
在一种可能的实现方式中,区块链服务系统在接收到事务请求后,可以获取发送该事务请求的客户端的标识,并基于客户端的标识对客户端进行鉴权处理,若确定对客户端鉴权通过,则可以响应于事务请求;若对客户端鉴权不通过,则不响应该事务请求。其中,上述鉴权处理可以包括:权限验证、安全性验证、合法性验证中的任一种或多种,例如,区块链服务系统中预先指定有具备发起事务请求权限的至少一个客户端的标识,若区块链服务系统中指定的各个标识中包括当前客户端的标识,则表明对当前客户端的权限验证通过。采用这种方式,能够对发送事务请求的客户端进行鉴权,从而提高数据交互过程中的可靠性和安全性,以保障设备之间的正常通信。
可选的,区块链服务系统还可以对发起事务请求的目标对象进行鉴权处理。其中,在对目标对象进行鉴权处理过程中,区块链节点还可以请求获取目标对象的身份信息,并基于目标对象的身份信息对目标对象进行身份验证处理。其中,在获取目标对象的身份信息时,请参见图5,图5是本申请实施例提供的一种获取身份信息的场景示意图。如图5所示,区块链节点在获取目标对象的身份信息之前,需要向该目标对象发送授权请求,该授权请求用于请求目标对象的授权,当目标对象同意授权后,方可获取到目标对象的身份信息。举例来说,目标对象所使用的终端设备在获取到区块链节点发送的授权请求后,可以在终端设备中显示界面S500,该界面S500中显示有提示信息,该提示信息用于提示目标对象是否进行身份信息的授权,并且设有确认控件501和拒绝控件502,若目标对象点击确认控件501,则代表目标对象同意授权,若目标对象点击拒绝控件502,则代表目标对象拒绝授权。通过这种方式,可以在获取目标对象的身份信息时,请求目标对象的授权,从而提高目标对象的身份信息的安全性,避免数据泄露。
S402:基于事务密钥数据确定待调用的第二服务,第二服务中部署有事务密钥数据。
在一种可能的实现方式中,可以按照事务密钥数据确定出部署有事务密钥数据的第二服务,其中,此处部署有事务密钥数据的第二服务可以是指直接存储有事务密钥数据的服务;第二服务也可以是指能够从第二服务所属的密钥数据管理系统中直接获取到事务密钥数据的服务。举例来说,若事务密钥数据是指目标对象的私钥,则第二服务可以是指密钥数据管理系统中的密钥管理服务,该密钥管理服务能够从密钥数据管理系统中获取所存储的事务密钥数据;第二服务也可以是指密钥数据管理系统中的加密机服务,加密机服务中直接存储有事务密钥数据。
S403:生成针对第二服务的调用请求,并采用第一服务的私钥对调用请求进行签名处理,得到签名调用请求。
具体实现时,可以调用第一服务来生成针对第二服务的调用请求,该调用请求可以包括待调用的第二服务的服务标识,该调用请求用于指示第一服务请求调用第二服务的服务接口,以获取第二服务中的事务密钥数据。进一步地,采用第一服务的私钥对上述调用请求进行签名处理,得到签名调用请求。
S404:将签名调用请求发送至第二服务进行验签,并在验签通过后调用第二服务中的事务密钥数据。
具体实现时,第一服务可以将签名调用请求发送至第二服务进行验签,以使第二服务对第一服务进行验签处理。其中,第一服务可以将签名调用请求直接发送至第二服务进行验签;或者,第一服务也可以将签名调用请求发送至第二服务所属的密钥数据管理系统中,由密钥数据管理系统将签名调用请求路由至第二服务进行验签处理。
在一种可能的实现方式中,在第二服务对第一服务的验签通过后,第一服务调用第二服务中的事务密钥数据,可以包括:若第一服务接收第二服务返回的接口授权消息,则确定第二服务对第一服务的验签通过,那么第一服务即可直接调用第二服务的服务接口获取密钥数据管理系统中的事务密钥数据。在此实现方式中,第二服务在对第一服务验签通过后,即可授予第一服务的接口调用权限,即第一服务具备对第二服务的接口调用权限,那么第一服务即可直接调用第二服务的服务接口自行获取所需的事务密钥数据。
在另一种可能的实现方式中,在第二服务对第一服务的验签通过后,第一服务调用第二服务中的事务密钥数据,还可以包括:接收第二服务返回的反馈数据,并解析反馈数据得到事务密钥数据,反馈数据是第二服务在对第一服务验签通过后发送的,在此方式中,第二服务在对第一服务的验签通过后,可以由第二服务直接返回第一服务所需的事务密钥数据;可选的,第二服务在向第一服务返回事务密钥数据的过程中,还可以对事务密钥数据进行加密处理后再发送至第一服务,可避免数据泄露,从而提高事务密钥数据的安全性。
S405:调用第一服务采用事务密钥数据对事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在区块链上执行事务。
具体地,在获取到事务密钥数据后,第一服务即可采用该事务密钥数据对事务请求进行签名处理,得到签名后的事务请求。在一种可能的实现方式中,将签名后的事务请求上传至区块链,可以包括以下几种方式:方式一、第一服务可以将签名后的事务请求发送至区块链中的任一区块链节点;方式二、第一服务可以将签名后的事务请求发送至区块链中指定类型的区块链节点,其中,指定类型的区块链节点例如可以包括:记账节点、出块节点等等。后续,可以由接收到签名后的事务请求的区块链节点在区块链上执行事务。
举例来说,事务请求为针对区块链的资产交易请求,资产交易请求所需的事务密钥数据为:需处理的数字资产所属的目标对象的私钥,第一服务为区块链服务系统中的交易服务,第二服务为密钥管理系统中的密钥管理服务。那么,首先可以调用交易服务,采用目标对象的私钥对资产交易请求进行签名处理,得到签名后的资产交易请求;接下来,将签名后的资产交易请求上传至区块链,触发在区块链上执行资产交易。在一种可能的实现方式中,获取资产交易请求需处理的数字资产的资产类型;若数字资产的资产类型为预设资产类型(例如数字藏品类型),则对签名后的资产交易请求进行加密处理,得到加密资产交易请求;调用第一服务,将加密资产交易请求发送至区块链进行上链处理。采用这种方式,在资产交易过程中,针对诸如数字藏品等类型的数字资产需进行加密处理后再进行上链交易,从而可进一步提高数字资产的安全性。
本申请实施例中,响应于针对区块链的事务请求,调用第一服务确定事务请求所需的事务密钥数据,该事务请求用于请求调用第一服务将事务请求上传至区块链上,以触发在区块链上执行所请求的事务;基于事务密钥数据确定待调用的第二服务,第二服务中部署有事务密钥数据;生成针对第二服务的调用请求,并采用第一服务的私钥对调用请求进行签名处理,得到签名调用请求;将签名调用请求发送至第二服务进行验签,并在验签通过后调用第二服务中的事务密钥数据;调用第一服务采用事务密钥数据对事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在区块链上执行事务。由此可见,本申请能够在区块链上请求执行事务之前,需调用第一服务获取第二服务中的事务密钥数据,第一服务调用第二服务时需使用第一服务的私钥进行授权签名,进而第二服务会对第一服务进行验签,当第二服务对第一服务验签通过后,方可允许第一服务调用第二服务中进而获取事务密钥数据,由于服务之间的相互调用需进行验证,因此可以提高事务密钥数据的安全性。
请参见图6,图6是本申请实施例所提供的一种基于区块链的服务调用方法的流程示意图。该服务调用方法可以由图3所示的基于区块链的,密钥数据管理系统中执行。其中,该基于区块链的服务调用方法主要包括但不限于如下步骤S601~S603:
S601:接收第一服务发送的签名调用请求,签名调用请求是第一服务采用私钥对调用请求进行签名处理后得到的,调用请求是第一服务在响应于事务请求并确定事务请求所需的事务密钥数据后生成的。
在一种可能的实现方式中,签名调用请求中携带有待接收的第二服务的服务标识,例如第二服务的名称、ID等,则可以由在接收到第一服务发送的签名调用请求后,解析该签名调用请求,根据第二服务的服务标识可以确定待接收的第二服务。
S602:基于签名调用请求,对第一服务进行验签处理。
在一种可能的实现方式中,基于签名调用请求,对第一服务进行验签处理,可以包括如下流程:首先解析签名调用请求,得到第一服务的授权签名数据;然后,从区块链中获取第一服务的公钥,并按照第一服务的公钥,对第一服务的授权签名数据进行验签处理;若验签通过,则确定对第一服务的验签通过。其中,从区块链中获取第一服务的公钥的过程可以包括:向区块链节点发送公钥获取请求,该公钥获取请求中携带待获取的第一服务的服务标识;区块链节点响应于公钥获取请求,可以按照第一服务的服务标识,确定第一服务的公钥;最后,区块链节点将第一服务的公钥返回至第二服务。
在另一种可能的实现方式中,基于签名调用请求,对第一服务进行验签处理,还可以包括如下流程:首先获取第二服务对应的白名单列表,该白名单列表中记录有允许调用第二服务的至少一个服务的服务标识,服务标识包括:服务名称、公钥中的任一种或多种;若白名单列表中记录有第一服务的服务标识,则确定对第一服务的验签通过。具体地,第二服务预先配置有允许接口调用的各个服务构成的白名单列表,若第一服务位于该第二服务的白名单列表中,则允许第一服务调用第二服务,即可以确定第二服务对第一服务的验签通过。
下面对服务注册的具体流程进行相应说明。
在一种可能的实现方式中,第一服务为区块链服务系统中的交易服务,第二服务为密钥数据管理系统中的密钥管理服务,密钥数据管理系统中还部署有密钥计算服务。响应于服务密钥请求,该服务密钥请求用于请求为目标服务生成服务密钥,服务密钥包括目标服务的公钥和私钥;调用密钥管理服务将服务密钥请求发送至密钥计算服务,以使密钥计算服务为目标服务生成服务密钥;接收密钥计算服务返回的目标服务的公钥,并将目标服务的公钥发送至区块链进行上链处理。其中,目标服务可以为区块链服务系统和密钥数据管理系统中的任一服务(例如第一服务),采用这种方式,可以由密钥计算服务为其它各个服务计算公私钥对,以将服务的公钥上传至区块链中进行存储,后续在服务调用时,被调服务(例如第二服务)可以从区块链中获取主调服务(例如第一服务)的公钥进行服务验签。举例来说,基于密钥计算服务为各个服务生成服务密钥之后,可将各个服务的私钥存储在密钥数据管理系统的加密机中,加密机中存储的数据结构如下表2所示:
表2.密钥数据管理系统的数据结构
上述可见,密钥数据管理系统的加密机中可以存储至少一种类型的私钥,例如对象类型、服务类型。其中,任一类型的私钥与其标识之间进行关联存储,例如对象的私钥与对象标识进行关联存储,又如服务的私钥与服务标识进行关联存储。采用这种方式,
可选的,可以调用密钥管理服务获取目标服务的服务类型;若目标服务的服务类型为预设服务类型(例如预设服务类型为操作类型,如交易类型、查询类型等具备操作属性的服务类型),则触发执行将目标服务的服务公钥发送至区块链进行上链处理;若目标服务的服务类型不为预设服务类型,则将目标服务的公钥存储在密钥数据管理系统中。采用这种方式,能够将指定服务类型的服务公钥发送到链上存储,即允许指定服务类型的服务执行服务调用。
S603:若确定对第一服务的验签通过,则对第一服务进行接口授权处理;其中,接口授权处理用于触发第一服务调用第二服务中的密钥数据,以使第一服务采用事务密钥数据对事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在区块链上执行事务。
在一种可能的实现方式中,若确定第二服务对第一服务的验签通过,则可以对第一服务进行接口授权处理,并生成接口授权消息,然后将该接口授权消息返回至第一服务。后续,在接收到接口授权消息后,第一服务方可调用第二服务中的事务密钥数据,从而采用事务密钥数据签名事务请求,以将签名后的事务请求上传至区块链中。
在另一种可能的实现方式中,若确定第二服务对第一服务的验签通过,则可以确定第一服务需调用的事务密钥数据,并基于事务密钥数据生成反馈数据(例如将事务密钥数据直接打包成反馈数据,又如可以将事务密钥数据进行加密处理后生成反馈数据,等等),然后将反馈数据发送至第一服务。举例来说,例如事务请求为资产交易请求,则需调用的事务密钥数据为目标对象的私钥,则签名调用请求中可以携带有待获取的事务密钥数据的标识,即目标对象的标识,那么第二服务可以基于目标对象的标识,获取目标对象的私钥。接下来,第二服务可以将目标对象的私钥返回至第一服务,后续,第一服务即可采用目标对象的私钥对资产交易请求进行签名处理,以将签名后的资产交易请求上传至区块链中。
本申请实施例中,当第一服务需调用第二服务时,第二服务可接收第一服务发送的签名调用请求,然后第二服务可以基于签名调用请求对第一服务进行验签处理,若对第一服务的验签通过,方可允许第一服务调用第二服务的服务接口,获取所需的事务密钥数据。由此可见,当服务间调用时,被调服务(即第二服务)需对主调服务(即第一服务)进行调用鉴权,当对第一服务鉴权通过,方可允许第一服务调用第二服务中的事务密钥数据,从而可以提高第二服务中的事务密钥数据的安全性。
下面以在区块链上执行的事务为资产交易为例,对本申请的服务调用方案的完整流程进行详细说明。
请参见图7,图7是本申请实施例提供的一种基于区块链的服务调用方法的交互流程图。如图7所示,该交互流程主要由:客户端、第一服务(即交易服务)、第二服务(密钥管理服务)、以及区块链节点共同执行。其中,上述流程主要包括如下步骤S701-S713:
S701:目标对象在客户端发起资产交易,生成资产交易请求。
具体实现时,该资产交易可以包括一个交易,也可以是由多个交易构成的批量交易,本申请对此不做具体限定。以资产交易为一个交易为例,该资产交易可以用于指示:目标对象向接收对象转移目标数额的数字资产,即从目标对象的账户中减少目标数额的数字资产,接收对象的账户中增加目标数额的数字资产。那么,资产交易请求中可以包括目标对象的标识、接收对象的标识、待转移的数字资产的目标数额、以及待转移的数字资产的资产类型(例如数字藏品),等等。
S702:客户端将资产交易请求发送至交易服务。
在一种可能的实现方式中,交易服务可以为设置于区块链服务系统中的任一个服务,该区块链服务系统中还部署有网关服务。客户端可以将资产交易请求发送至区块链服务系统,首先由区块链服务系统中的网关服务接收到该资产交易请求,然后由网关服务对发送该资产交易请求的目标对象进行鉴权处理,若对目标对象的鉴权通过,则网关服务将资产交易请求路由至交易服务。其中,鉴权处理可以包括:权限验证、安全性验证、合法性验证中的任一种或多种,以权限验证为例,若在区块链服务系统中执行账户注册的目标对象则表示对该目标对象的权限验证通过,采用这种方式,能够提高数据交互过程的安全性。
请参见图8a,图8a是本申请实施例提供的一种账户注册的流程示意图。如图8a所示,该账户注册流程主要包括如下步骤:
1)目标对象所在的客户端向区块链服务系统发起资产账户的注册请求。
2)区块链服务系统接收注册请求,为目标对象生成对应的资产账户。可选的,在此过程中涉及对客户端的安全性和可靠性验证,验证通过,则响应于注册请求;否则,不响应注册请求。
3)区块链服务系统提示目标对象选择注册方式。其中,注册方式可以包括:单因子注册方式、以及多因子注册方式(例如双因子注册方式),所谓单因子注册方式是指目标对象提供一种验证因子(例如账户名、密码),多因子注册方式是指用户提供至少两种验证因子(例如账户名、密码+指纹),应当理解,双因子注册方式相比单因子注册方式更加安全可靠。
4)目标对象按需选择对应的注册方式,例如双因子注册方式。
5)按照目标对象选择的双因子注册方式,可调用区块链服务系统中的对象服务为目标对象生成资产账户。
6)向客户端返回注册结果。
采用上述注册方式,能够采用区块链服务系统中的对象服务为目标对象提供账户注册管理,并可按照目标对象的需求提供多种注册方式,可提高账户注册过程中的便捷性和灵活性;另外,双因子的注册方式能够提高资产账户安全。
S703:交易服务响应于资产交易请求,确定资产交易请求所需的事务密钥数据。
在一种可能的实现方式中,交易服务可以解析资产交易请求,确定目标对象的标识,然后将目标对象的私钥作为该资产交易请求所需的事务密钥数据。
S704:交易服务基于事务密钥数据确定待调用的密钥管理服务。
在一种可能的实现方式中,可以按照事务密钥数据确定出部署有事务密钥数据的第二服务,其中,此处部署有事务密钥数据的第二服务可以是指直接存储有事务密钥数据的服务;第二服务也可以是指能够从第二服务所属的密钥数据管理系统中直接获取到事务密钥数据的服务。举例来说,若事务密钥数据是指目标对象的私钥,则第二服务可以是指密钥数据管理系统中的密钥管理服务,该密钥管理服务能够从密钥数据管理系统中获取所存储的事务密钥数据;第二服务也可以是指密钥数据管理系统中的加密机服务,加密机服务中直接存储有事务密钥数据。
S705:交易服务生成针对密钥管理服务的调用请求,并采用交易服务的私钥对调用请求进行签名处理,得到签名调用请求。
具体实现时,可以调用交易服务来生成针对密钥管理服务的调用请求,该调用请求可以包括待调用的密钥管理服务的服务标识,该调用请求用于指示交易服务请求调用密钥管理服务的服务接口,以获取密钥管理服务中的事务密钥数据。进一步地,采用交易服务的私钥对上述调用请求进行签名处理,得到签名调用请求。
S706:交易服务将签名调用请求发送至密钥管理服务进行验签。
S707:密钥管理服务基于签名调用请求,对交易服务进行验签处理。
在一种可能的实现方式中,密钥管理服务基于签名调用请求,对交易服务进行验签处理,可以包括如下流程:首先解析签名调用请求,得到交易服务的授权签名数据;然后,从区块链中获取交易服务的公钥,并按照交易服务的公钥,对交易服务的授权签名数据进行验签处理;若验签通过,则确定对交易服务的验签通过。其中,从区块链中获取交易服务的公钥的过程可以包括:向区块链节点发送公钥获取请求,该公钥获取请求中携带待获取的交易服务的服务标识;区块链节点响应于公钥获取请求,可以按照交易服务的服务标识,确定交易服务的公钥;最后,区块链节点将交易服务的公钥返回至密钥管理服务。
在另一种可能的实现方式中,密钥管理服务基于签名调用请求,对交易服务进行验签处理,还可以包括如下流程:首先获取密钥管理服务服务对应的白名单列表,该白名单列表中记录有允许调用密钥管理服务服务的至少一个服务的服务标识,服务标识包括:服务名称、公钥中的任一种或多种;若白名单列表中记录有交易服务的服务标识,则确定对交易服务的验签通过。具体地,密钥管理服务预先配置有允许接口调用的各个服务构成的白名单列表,若交易服务位于该密钥管理服务的白名单列表中,则允许交易服务调用密钥管理服务,即可以确定密钥管理服务对交易服务的验签通过。
下面结合附图对如何生成任一服务的公私钥对的流程进行详细说明。
请参见图8b,图8b是本申请实施例提供的一种服务的公钥注册流程的示意图。如图8b所示,该服务公钥注册流程主要是由:密钥管理服务、密钥计算服务、区块链节点共同执行,该服务公钥注册流程主要包括如下步骤S1-S5:
S1、密钥管理服务向密钥计算服务请求为目标服务生成服务密钥。
具体地,目标服务可以为区块链服务系统中的任一服务,例如交易服务、对象服务、资产服务等任一种;服务密钥包括目标范围的公钥和私钥。
S2、密钥计算服务为目标服务生成对应的公私钥对,并将目标服务的私钥存储在加密机中。
具体地,密钥计算服务可以采用密钥计算公式为目标服务生成对应的公私钥对,并将目标服务的私钥、与目标服务的服务标识(例如名称、或ID)关联存储在加密机中。
S3、密钥计算服务将目标服务的公钥发送至密钥管理服务。
S4、密钥管理服务将目标服务的公钥发送至区块链上进行存储。
在一种可能的实现方式中,调用密钥管理服务获取目标服务的服务类型;若目标服务的服务类型为预设服务类型(例如预设服务类型为操作类型,如交易类型、查询类型等具备操作属性的服务类型),则触发执行将目标服务的服务公钥发送至区块链进行上链处理;若目标服务的服务类型不为预设服务类型,则将目标服务的公钥存储在密钥数据管理系统中。采用这种方式,能够将指定服务类型的服务公钥发送到链上存储,即允许指定服务类型的服务执行服务调用。
S5、区块链节点向密钥管理服务返回链上存储结果。
S708:密钥管理服务向交易服务返回验签结果。
具体地,若密钥管理服务对交易服务的验签通过,则密钥管理服务对交易服务进行接口授权处理,即允许交易服务调用密钥管理服务的服务接口,并生成接口授权消息,然后将该接口授权消息返回至交易服务。后续,交易服务在接收到接口授权消息后,方可调用密钥管理服务中的事务密钥数据,从而采用事务密钥数据签名事务请求,以将签名后的事务请求上传至区块链中。
或者,若密钥管理服务对交易服务的验签不通过,则密钥管理服务拒绝交易服务调用密钥管理服务的服务接口,并生成接口拒绝消息,然后将该接口拒绝消息返回至交易服务。其中,该接口拒绝消息用于指示密钥管理服务不允许交易服务进行接口调用。
S709:交易服务调用密钥管理服务获取事务密钥数据。
S710:交易服务采用事务密钥数据签名资产交易请求。
具体地,交易服务采用目标对象的私钥对资产交易请求进行签名处理,得到签名后的资产交易请求。
S711:交易服务将签名后的资产交易请求发送至区块链节点。
具体地,交易服务将签名后的资产交易请求发送至区块链节点,可以包括以下几种方式:方式一、交易服务可以将签名后的资产交易请求发送至区块链中的任一区块链节点;方式二、交易服务可以将签名后的资产交易请求发送至区块链中指定类型的区块链节点,其中,指定类型的区块链节点例如可以包括:记账节点、出块节点等等。
S712:区块链节点执行资产交易。
具体实现时,区块链节点接收到签名后的资产交易请求后,可以获取目标对象的公钥,并基于目标对象的公钥对签名后的资产交易请求进行验签处理,以确定资产交易请求的来源。若验签通过,则区块链节点可以调用目标智能合约执行当前的资产交易,例如目标智能合约为资产交易合约,从而可以基于资产交易合约在区块链上执行资产转移处理,例如将目标对象的账户中的数字资产转移至接收对象的账户中。最后,在资产交易结束后,可以生成资产交易的交易执行结果。
S713:区块链节点将交易执行结果返回至客户端。
本申请实施例中,在服务之间进行相互调用(例如交易服务调用密钥管理服务)之前,需要使用交易服务的私钥对当前资产交易请求进行签名,密钥管理服务基于交易服务签名后的签名调用请求对交易服务进行验签,若验签成功,才允许交易服务调用密钥管理服务的服务接口。在服务间相互调用时,允许基于服务签名的方式对调用服务进行权限验证,可以提高服务间相互调用的安全性和可靠性,从而提高数据安全性。
下面提供了本申请实施例的装置,接下来结合上述本申请实施例提供的基于区块链的服务调用方案,对本申请实施例的相关装置进行相应介绍。
请参见图9,图9是本申请实施例提供的一种基于区块链的服务调用装置的结构示意图。如图9所示,该基于区块链的服务调用装置900可应用于前述实施例中所提及的区块链服务系统。具体来说,基于区块链的服务调用装置900可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该服务调用装置900为一个应用软件;该服务调用装置900可以用于执行本申请实施例提供的基于区块链的服务调用方法中的相应步骤。具体实现时,该基于区块链的服务调用装置900具体可以包括:
确定单元901,用于响应于针对区块链的事务请求,调用第一服务确定事务请求所需的事务密钥数据;事务请求用于请求调用第一服务将事务请求上传至区块链上,以触发在区块链上执行所请求的事务;
确定单元901,还用于基于事务密钥数据确定待调用的第二服务,第二服务中部署有事务密钥数据;
处理单元902,用于生成针对第二服务的调用请求,并采用第一服务的私钥对调用请求进行签名处理,得到签名调用请求;
发送单元903,用于将签名调用请求发送至第二服务进行验签,并在验签通过后调用第二服务中的事务密钥数据;
处理单元902,还用于调用第一服务采用事务密钥数据对事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在区块链上执行事务。
在一种可能的实现方式中,第一服务设置于区块链服务系统中,区块链服务系统中部署有多个服务,区块链服务系统中的各个服务用于处理区块链相关事务;第一服务是区块链服务系统中的任一个服务;
第二服务设置于密钥数据管理系统中,密钥数据管理系统中存储有处理区块链相关事务签名所需的事务密钥数据;密钥数据管理系统中部署有多个服务,第二服务是密钥数据管理系统中的任一个服务。
在一种可能的实现方式中,确定单元901调用第一服务确定事务请求所需的事务密钥数据,用于执行以下操作:
解析事务请求,获取事务请求需执行的事务的事务类型;
按照事务类型,从区块链服务系统中确定出需调用的第一服务;
调用区块链服务系统中的所述第一服务,确定事务请求所需的事务密钥数据。
在一种可能的实现方式中,处理单元902在验签通过后调用第二服务中的事务密钥数据,用于执行以下操作:
若接收第二服务返回的接口授权消息,则确定第二服务对第一服务的验签通过,并调用第二服务的服务接口获取密钥数据管理系统中的事务密钥数据;或者,
接收第二服务返回的反馈数据,并解析反馈数据得到事务密钥数据,反馈数据是第二服务在对第一服务验签通过后发送的。
在一种可能的实现方式中,事务请求为针对区块链的资产交易请求,所述资产交易请求所需的事务密钥数据为:需处理的数字资产所属的目标对象的私钥;第一服务为区块链服务系统中的交易服务,第二服务为密钥管理系统中的密钥管理服务;处理单元902还用于执行以下操作:
调用交易服务,采用目标对象的私钥对资产交易请求进行签名处理,得到签名后的资产交易请求;
将签名后的资产交易请求发送至区块链中的目标区块链节点,触发由目标区块链节点执行资产交易;
其中,目标区块链节点为:区块链中的任一个区块链节点、或区块链中指定类型的区块链节点。
在一种可能的实现方式中,处理单元902还用于执行以下操作:
获取资产交易请求需处理的数字资产的资产类型;
若数字资产的资产类型为预设资产类型,则对签名后的资产交易请求进行加密处理,得到加密资产交易请求;
调用交易服务,将加密资产交易请求发送至区块链进行上链处理。
本申请实施例中,响应于针对区块链的事务请求,调用第一服务确定事务请求所需的事务密钥数据,该事务请求用于请求调用第一服务将事务请求上传至区块链上,以触发在区块链上执行所请求的事务;基于事务密钥数据确定待调用的第二服务,第二服务中部署有事务密钥数据;生成针对第二服务的调用请求,并采用第一服务的私钥对调用请求进行签名处理,得到签名调用请求;将签名调用请求发送至第二服务进行验签,并在验签通过后调用第二服务中的事务密钥数据;调用第一服务采用事务密钥数据对事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在区块链上执行事务。由此可见,本申请能够在区块链上请求执行事务之前,需调用第一服务获取第二服务中的事务密钥数据,第一服务调用第二服务时需使用第一服务的私钥进行授权签名,进而第二服务会对第一服务进行验签,当第二服务对第一服务验签通过后,方可允许第一服务调用第二服务中进而获取事务密钥数据,由于服务之间的相互调用需进行验证,因此可以提高事务密钥数据的安全性。
请参见图10,图10是本申请实施例提供的另一种基于区块链的服务调用装置的结构示意图。如图10所示,该基于区块链的服务调用装置1000可应用于前述实施例中所提及的密钥数据管理系统。具体来说,基于区块链的服务调用装置1000可以是运行于计算机设备中的一个计算机程序(包括程序代码),例如该服务调用装置1000为一个应用软件;该服务调用装置1000可以用于执行本申请实施例提供的基于区块链的服务调用方法中的相应步骤。具体实现时,该基于区块链的服务调用装置1000具体可以包括:
接收单元1001,用于接收第一服务发送的签名调用请求,签名调用请求是第一服务采用私钥对调用请求进行签名处理后得到的,调用请求是第一服务在响应于事务请求并确定事务请求所需的事务密钥数据后生成的;
处理单元1002,用于基于签名调用请求,对第一服务进行验签处理;
处理单元1002,还用于若确定对第一服务的验签通过,则对第一服务进行接口授权处理;其中,接口授权处理用于触发第一服务调用第二服务中的密钥数据,以使第一服务采用事务密钥数据对事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在区块链上执行事务。
在一种可能的实现方式中,处理单元1002基于签名调用请求,对第一服务进行验签处理,用于执行以下操作:
解析签名调用请求,得到第一服务的授权签名数据;
从区块链中获取第一服务的公钥,并按照第一服务的公钥,对第一服务的授权签名数据进行验签处理;
若验签通过,则确定对第一服务的验签通过。
在一种可能的实现方式中,处理单元1002基于签名调用请求,对第一服务进行验签处理,还用于执行以下操作:
获取第二服务对应的白名单列表,白名单列表中记录有允许调用第二服务的至少一个服务的服务标识,服务标识包括:服务名称、公钥中的任一种或多种;
若白名单列表中记录有第一服务的服务标识,则确定对第一服务的验签通过。
在一种可能的实现方式中,第二服务为密钥数据管理系统中的密钥管理服务,密钥数据管理系统中还部署有密钥计算服务;处理单元1002还用于执行以下操作:
响应于服务密钥请求,服务密钥请求用于请求为目标服务生成服务密钥,服务密钥包括目标服务的公钥和私钥;
调用密钥管理服务将服务密钥请求发送至密钥计算服务,以使密钥计算服务为目标服务生成服务密钥;
接收密钥计算服务返回的目标服务的公钥,并将目标服务的公钥发送至区块链进行上链处理。
在一种可能的实现方式中,处理单元1002还用于执行以下操作:
调用密钥管理服务获取目标服务的服务类型;
若目标服务的服务类型为预设服务类型,则触发执行将目标服务的服务公钥发送至区块链进行上链处理;
若目标服务的服务类型不为预设服务类型,则将目标服务的公钥存储在密钥数据管理系统中。
本申请实施例中,当第一服务需调用第二服务时,第二服务可接收第一服务发送的签名调用请求,然后第二服务可以基于签名调用请求对第一服务进行验签处理,若对第一服务的验签通过,方可允许第一服务调用第二服务的服务接口,获取所需的事务密钥数据。由此可见,当服务间调用时,被调服务(即第二服务)需对主调服务(即第一服务)进行调用鉴权,当对第一服务鉴权通过,方可允许第一服务调用第二服务中的事务密钥数据,从而可以提高第二服务中的事务密钥数据的安全性。
请参见图11,图11是本申请实施例提供的一种计算机设备的结构示意图。该计算机设备1100用于执行前述方法实施例中区块链服务系统或密钥数据关联系统所执行的步骤,该计算机设备1100包括:一个或多个处理器1101;一个或多个输入设备1102,一个或多个输出设备1103和存储器1104。上述处理器1101、输入设备1102、输出设备1103和存储器1104通过总线1105连接。其中,存储器1104用于存储计算机程序,所述计算机程序包括程序指令。
在一个可行的实施例中,当计算机设备1100为区块链服务系统时,处理器1101用于调用存储器1104存储的程序指令,用于执行以下操作:
响应于针对区块链的事务请求,调用第一服务确定事务请求所需的事务密钥数据;事务请求用于请求调用第一服务将事务请求上传至区块链上,以触发在区块链上执行所请求的事务;
基于事务密钥数据确定待调用的第二服务,第二服务中部署有事务密钥数据;
生成针对第二服务的调用请求,并采用第一服务的私钥对调用请求进行签名处理,得到签名调用请求;
将签名调用请求发送至第二服务进行验签,并在验签通过后调用第二服务中的事务密钥数据;
调用第一服务采用事务密钥数据对事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在区块链上执行事务。
在一种可能的实现方式中,第一服务设置于区块链服务系统中,区块链服务系统中部署有多个服务,区块链服务系统中的各个服务用于处理区块链相关事务;第一服务是区块链服务系统中的任一个服务;
第二服务设置于密钥数据管理系统中,密钥数据管理系统中存储有处理区块链相关事务签名所需的事务密钥数据;密钥数据管理系统中部署有多个服务,第二服务是密钥数据管理系统中的任一个服务。
在一种可能的实现方式中,处理器1101调用第一服务确定事务请求所需的事务密钥数据,用于执行以下操作:
解析事务请求,获取事务请求需执行的事务的事务类型;
按照事务类型,从区块链服务系统中确定出需调用的第一服务;
调用区块链服务系统中的所述第一服务,确定事务请求所需的事务密钥数据。
在一种可能的实现方式中,处理器1101在验签通过后调用第二服务中的事务密钥数据,用于执行以下操作:
若接收第二服务返回的接口授权消息,则确定第二服务对第一服务的验签通过,并调用第二服务的服务接口获取密钥数据管理系统中的事务密钥数据;或者,
接收第二服务返回的反馈数据,并解析反馈数据得到事务密钥数据,反馈数据是第二服务在对第一服务验签通过后发送的。
在一种可能的实现方式中,事务请求为针对区块链的资产交易请求,所述资产交易请求所需的事务密钥数据为:需处理的数字资产所属的目标对象的私钥;第一服务为区块链服务系统中的交易服务,第二服务为密钥管理系统中的密钥管理服务;处理器1101还用于执行以下操作:
调用交易服务,采用目标对象的私钥对资产交易请求进行签名处理,得到签名后的资产交易请求;
将签名后的资产交易请求发送至区块链中的目标区块链节点,触发由目标区块链节点执行资产交易;
其中,目标区块链节点为:区块链中的任一个区块链节点、或区块链中指定类型的区块链节点。
在一种可能的实现方式中,处理器1101还用于执行以下操作:
获取资产交易请求需处理的数字资产的资产类型;
若数字资产的资产类型为预设资产类型,则对签名后的资产交易请求进行加密处理,得到加密资产交易请求;
调用交易服务,将加密资产交易请求发送至区块链进行上链处理。
在另一个可行的实施例中,当计算机设备1100为密钥数据管理系统时,处理器1101用于调用存储器1104存储的程序指令,用于执行以下操作:
接收第一服务发送的签名调用请求,签名调用请求是第一服务采用私钥对调用请求进行签名处理后得到的,调用请求是第一服务在响应于事务请求并确定事务请求所需的事务密钥数据后生成的;
基于签名调用请求,对第一服务进行验签处理;
若确定对第一服务的验签通过,则对第一服务进行接口授权处理;其中,接口授权处理用于触发第一服务调用第二服务中的密钥数据,以使第一服务采用事务密钥数据对事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在区块链上执行事务。
在一种可能的实现方式中,处理器1101基于签名调用请求,对第一服务进行验签处理,用于执行以下操作:
解析签名调用请求,得到第一服务的授权签名数据;
从区块链中获取第一服务的公钥,并按照第一服务的公钥,对第一服务的授权签名数据进行验签处理;
若验签通过,则确定对第一服务的验签通过。
在一种可能的实现方式中,处理器1101基于签名调用请求,对第一服务进行验签处理,还用于执行以下操作:
获取第二服务对应的白名单列表,白名单列表中记录有允许调用第二服务的至少一个服务的服务标识,服务标识包括:服务名称、公钥中的任一种或多种;
若白名单列表中记录有第一服务的服务标识,则确定对第一服务的验签通过。
在一种可能的实现方式中,第二服务为密钥数据管理系统中的密钥管理服务,密钥数据管理系统中还部署有密钥计算服务;处理器1101还用于执行以下操作:
响应于服务密钥请求,服务密钥请求用于请求为目标服务生成服务密钥,服务密钥包括目标服务的公钥和私钥;
调用密钥管理服务将服务密钥请求发送至密钥计算服务,以使密钥计算服务为目标服务生成服务密钥;
接收密钥计算服务返回的目标服务的公钥,并将目标服务的公钥发送至区块链进行上链处理。
在一种可能的实现方式中,处理器1101还用于执行以下操作:
调用密钥管理服务获取目标服务的服务类型;
若目标服务的服务类型为预设服务类型,则触发执行将目标服务的服务公钥发送至区块链进行上链处理;
若目标服务的服务类型不为预设服务类型,则将目标服务的公钥存储在密钥数据管理系统中。
本申请实施例中,响应于针对区块链的事务请求,调用第一服务确定事务请求所需的事务密钥数据,该事务请求用于请求调用第一服务将事务请求上传至区块链上,以触发在区块链上执行所请求的事务;基于事务密钥数据确定待调用的第二服务,第二服务中部署有事务密钥数据;生成针对第二服务的调用请求,并采用第一服务的私钥对调用请求进行签名处理,得到签名调用请求;将签名调用请求发送至第二服务进行验签,并在验签通过后调用第二服务中的事务密钥数据;调用第一服务采用事务密钥数据对事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在区块链上执行事务。由此可见,本申请能够在区块链上请求执行事务之前,需调用第一服务获取第二服务中的事务密钥数据,第一服务调用第二服务时需使用第一服务的私钥进行授权签名,进而第二服务会对第一服务进行验签,当第二服务对第一服务验签通过后,方可允许第一服务调用第二服务中进而获取事务密钥数据,由于服务之间的相互调用需进行验证,因此可以提高事务密钥数据的安全性。
此外,这里需要指出的是:本申请实施例还提供了一种计算机存储介质,且计算机存储介质中存储有计算机程序,且该计算机程序包括程序指令,当处理器执行上述程序指令时,能够执行前文所对应实施例中的方法,因此,这里将不再进行赘述。对于本申请所涉及的计算机存储介质实施例中未披露的技术细节,请参照本申请方法实施例的描述。作为示例,程序指令可以被部署在一个计算机设备上,或者在位于一个地点的多个计算机设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算机设备上执行。
根据本申请的一个方面,本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备可以执行前文所对应实施例中的方法,因此,这里将不再进行赘述。
本领域普通技术对象可以意识到,结合本申请中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术对象可以对每个特定的应用,使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程设备。计算机指令可以存储在计算机可读存储介质中,或者通过计算机可读存储介质进行传输。计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如,同轴电缆、光纤、数字线(DSL))或无线(例如,红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据处理设备。可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
以上所揭露的仅为本申请较佳实施例而已,当然不能以此来限定本申请之权利范围,因此依本申请权利要求所作的等同变化,仍属本申请所涵盖的范围。
Claims (16)
1.一种基于区块链的服务调用方法,其特征在于,包括:
响应于针对区块链的事务请求,调用第一服务确定所述事务请求所需的事务密钥数据;所述事务请求用于请求调用所述第一服务将所述事务请求上传至区块链上,以触发在所述区块链上执行所请求的事务;
基于所述事务密钥数据确定待调用的第二服务,所述第二服务中部署有所述事务密钥数据;
生成针对所述第二服务的调用请求,并采用所述第一服务的私钥对所述调用请求进行签名处理,得到签名调用请求;
将所述签名调用请求发送至所述第二服务进行验签,并在验签通过后调用所述第二服务中的所述事务密钥数据;
调用所述第一服务采用所述事务密钥数据对所述事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在所述区块链上执行所述事务。
2.如权利要求1所述的方法,其特征在于,所述第一服务设置于区块链服务系统中,所述区块链服务系统中部署有多个服务,所述区块链服务系统中的各个服务用于处理区块链相关事务;所述第一服务是所述区块链服务系统中的任一个服务;
所述第二服务设置于密钥数据管理系统中,所述密钥数据管理系统中存储有处理区块链相关事务签名所需的事务密钥数据;所述密钥数据管理系统中部署有多个服务,所述第二服务是所述密钥数据管理系统中的任一个服务。
3.如权利要求2所述的方法,其特征在于,所述调用第一服务确定所述事务请求所需的事务密钥数据,包括:
解析所述事务请求,获取所述事务请求需执行的事务的事务类型;
按照所述事务类型,从所述区块链服务系统中确定出需调用的第一服务;
调用所述区块链服务系统中的所述第一服务,确定所述事务请求所需的事务密钥数据。
4.如权利要求2所述的方法,其特征在于,所述在验签通过后调用所述第二服务中的所述事务密钥数据,包括:
若接收所述第二服务返回的接口授权消息,则确定所述第二服务对所述第一服务的验签通过,并调用所述第二服务的服务接口获取所述密钥数据管理系统中的事务密钥数据;或者,
接收所述第二服务返回的反馈数据,并解析所述反馈数据得到所述事务密钥数据,所述反馈数据是所述第二服务在对所述第一服务验签通过后发送的。
5.如权利要求1-4任一项所述的方法,其特征在于,所述事务请求为针对区块链的资产交易请求,所述资产交易请求所需的事务密钥数据为:需处理的数字资产所属的目标对象的私钥;所述第一服务为区块链服务系统中的交易服务,所述第二服务为密钥管理系统中的密钥管理服务;所述方法还包括:
调用所述交易服务,采用所述目标对象的私钥对所述资产交易请求进行签名处理,得到签名后的资产交易请求;
将所述签名后的资产交易请求发送至区块链中的目标区块链节点,触发由所述目标区块链节点执行资产交易;
其中,所述目标区块链节点为:区块链中的任一个区块链节点、或区块链中指定类型的区块链节点。
6.如权利要求5所述的方法,其特征在于,所述方法还包括:
获取所述资产交易请求需处理的数字资产的资产类型;
若所述数字资产的资产类型为预设资产类型,则对所述签名后的资产交易请求进行加密处理,得到加密资产交易请求;
调用所述交易服务,将所述加密资产交易请求发送至所述区块链进行上链处理。
7.一种基于区块链的服务调用方法,其特征在于,包括:
接收第一服务发送的签名调用请求,所述签名调用请求是所述第一服务采用私钥对调用请求进行签名处理后得到的,所述调用请求是所述第一服务在响应于事务请求并确定所述事务请求所需的事务密钥数据后生成的;
基于所述签名调用请求,对所述第一服务进行验签处理;
若确定对所述第一服务的验签通过,则对所述第一服务进行接口授权处理;其中,所述接口授权处理用于触发所述第一服务调用第二服务中的密钥数据,以使所述第一服务采用所述事务密钥数据对所述事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在所述区块链上执行所述事务。
8.如权利要求7所述的方法,其特征在于,所述基于所述签名调用请求,对所述第一服务进行验签处理,包括:
解析所述签名调用请求,得到所述第一服务的授权签名数据;
从区块链中获取所述第一服务的公钥,并按照所述第一服务的公钥,对所述第一服务的授权签名数据进行验签处理;
若验签通过,则确定对所述第一服务的验签通过。
9.如权利要求8所述的方法,其特征在于,所述基于所述签名调用请求,对所述第一服务进行验签处理,还包括:
获取第二服务对应的白名单列表,所述白名单列表中记录有允许调用所述第二服务的至少一个服务的服务标识,所述服务标识包括:服务名称、公钥中的任一种或多种;
若所述白名单列表中记录有所述第一服务的服务标识,则确定对所述第一服务的验签通过。
10.如权利要求7所述的方法,其特征在于,第二服务为密钥数据管理系统中的密钥管理服务,所述密钥数据管理系统中还部署有密钥计算服务;所述方法还包括:
响应于服务密钥请求,所述服务密钥请求用于请求为目标服务生成服务密钥,所述服务密钥包括目标服务的公钥和私钥;
调用密钥管理服务将所述服务密钥请求发送至密钥计算服务,以使所述密钥计算服务为所述目标服务生成服务密钥;
接收所述密钥计算服务返回的目标服务的公钥,并将所述目标服务的公钥发送至区块链进行上链处理。
11.如权利要求10所述的方法,其特征在于,所述方法还包括:
调用密钥管理服务获取所述目标服务的服务类型;
若所述目标服务的服务类型为预设服务类型,则触发执行将所述目标服务的服务公钥发送至区块链进行上链处理;
若所述目标服务的服务类型不为所述预设服务类型,则将所述目标服务的公钥存储在所述密钥数据管理系统中。
12.一种基于区块链的服务调用装置,其特征在于,包括:
确定单元,用于响应于针对区块链的事务请求,调用第一服务确定所述事务请求所需的事务密钥数据;所述事务请求用于请求调用所述第一服务将所述事务请求上传至区块链上,以触发在所述区块链上执行所请求的事务;
所述确定单元,还用于基于所述事务密钥数据确定待调用的第二服务,所述第二服务中部署有所述事务密钥数据;
处理单元,用于生成针对所述第二服务的调用请求,并采用所述第一服务的私钥对所述调用请求进行签名处理,得到签名调用请求;
发送单元,用于将所述签名调用请求发送至所述第二服务进行验签,并在验签通过后调用所述第二服务中的所述事务密钥数据;
所述处理单元,还用于调用所述第一服务采用所述事务密钥数据对所述事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在所述区块链上执行所述事务。
13.一种基于区块链的服务调用装置,其特征在于,包括:
接收单元,用于接收第一服务发送的签名调用请求,所述签名调用请求是所述第一服务采用私钥对调用请求进行签名处理后得到的,所述调用请求是所述第一服务在响应于事务请求并确定所述事务请求所需的事务密钥数据后生成的;
处理单元,用于基于所述签名调用请求,对所述第一服务进行验签处理;
所述处理单元,还用于若确定对所述第一服务的验签通过,则对所述第一服务进行调用授权处理,以触发所述第一服务调用第二服务中的事务密钥数据,以使所述第一服务采用所述事务密钥数据对所述事务请求进行签名处理,并将签名后的事务请求上传至区块链,触发在所述区块链上执行所述事务。
14.一种计算机设备,其特征在于,包括:存储装置和处理器;
存储器,所述存储器中存储一条或多条计算机程序;
处理器,用于加载所述一条或多条计算机程序实现如权利要求1-6或7-11中任一项所述的基于区块链的服务调用方法。
15.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序适于被处理器加载并执行如权利要求1-6或7-11中任一项所述的基于区块链的服务调用方法。
16.一种计算机程序产品,其特征在于,所述计算程序产品包括计算机程序,所述计算机程序适于被处理器加载并执行如权利要求1-6或7-11中任一项所述的基于区块链的服务调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311229937.1A CN117216807A (zh) | 2023-09-21 | 2023-09-21 | 基于区块链的服务调用方法、装置、设备、介质及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311229937.1A CN117216807A (zh) | 2023-09-21 | 2023-09-21 | 基于区块链的服务调用方法、装置、设备、介质及产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117216807A true CN117216807A (zh) | 2023-12-12 |
Family
ID=89035077
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311229937.1A Pending CN117216807A (zh) | 2023-09-21 | 2023-09-21 | 基于区块链的服务调用方法、装置、设备、介质及产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117216807A (zh) |
-
2023
- 2023-09-21 CN CN202311229937.1A patent/CN117216807A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111429254B (zh) | 一种业务数据处理方法、设备以及可读存储介质 | |
CN110912707B (zh) | 基于区块链的数字证书处理方法、装置、设备及存储介质 | |
KR102002509B1 (ko) | 공증센터를 포함하는 프라이빗 블록체인 시스템 및 이의 공증방법 | |
KR101903620B1 (ko) | 블록체인 기반 분산 네트워크에서 피어의 신원을 확인하는 방법 및 이를 이용한 서버 | |
CN105187431B (zh) | 第三方应用的登录方法、服务器、客户端及通信系统 | |
CN111314340B (zh) | 认证方法及认证平台 | |
CN112073400A (zh) | 一种访问控制方法、系统、装置及计算设备 | |
CN112651011B (zh) | 运维系统登录验证方法、装置、设备以及计算机存储介质 | |
CN108876669B (zh) | 应用于多平台教育资源共享的课程公证系统及方法 | |
US20190141048A1 (en) | Blockchain identification system | |
CN106878250B (zh) | 跨应用的单态登录方法及装置 | |
CN112000744A (zh) | 一种签名方法及相关设备 | |
CN105162774A (zh) | 虚拟机登陆方法、用于终端的虚拟机登陆方法及装置 | |
CN112311779A (zh) | 应用于区块链系统的数据访问控制方法及装置 | |
CN106453349A (zh) | 账号登录方法及装置 | |
CN111260475A (zh) | 一种数据处理方法、区块链节点设备及存储介质 | |
JP2017102842A (ja) | 本人認証システム、本人認証用情報出力システム、認証サーバー、本人認証方法、本人認証用情報出力方法及びプログラム | |
CN112446050B (zh) | 应用于区块链系统的业务数据处理方法及装置 | |
CN110910110A (zh) | 一种数据处理方法、装置及计算机存储介质 | |
CN113141404B (zh) | 智能网关、及数据共享系统 | |
CN111241504B (zh) | 身份验证方法、装置、电子设备及存储介质 | |
CN117216807A (zh) | 基于区块链的服务调用方法、装置、设备、介质及产品 | |
CN114978645A (zh) | 基于区块链的数据处理方法、装置、服务器及存储介质 | |
GB2520938A (en) | Mobile device location | |
CN113472781A (zh) | 一种服务获取方法、服务器及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |