业务处理方法、装置、电子设备及可读存储介质与流程

文档序号:30589094发布日期:2022-07-01 19:02阅读:105来源:国知局
业务处理方法、装置、电子设备及可读存储介质与流程

1.本发明涉及通信技术领域,特别是涉及一种业务处理方法、装置、电子设备及可读存储介质。


背景技术:

2.区块链技术实现于区块链网络之上,区块链网络中的分布式节点设备(以下简称为节点)通过运行区块链程序,从而实现区块数据的生成和共识,最终实现了数据的防篡改机制,为业务开展提供了安全可信的技术新思路。
3.区块链技术可应用至多种业务场景,例如金融领域、电子商务领域、商品或原材料溯源领域、电子存证领域等,由于区块链技术实现了数据防篡改机制,因此利用区块链技术开展业务,能解决业务参与各方之间的信任危机。
4.相关技术中,用户在借助区块链网络开展业务时,需要构建区块链网络支持的交易结构,然后将交易提交给区块链网络执行。然而由于交易的结构复杂,交易的构建过程比较耗时。用户为了构建交易,通常需要预先学习区块链技术和区块链网络的相关技术规程。因此对于用户而言,在利用区块链网络开展业务时,业务开展过程较为复杂。


技术实现要素:

5.本发明实施例的目的在于提供一种业务处理方法、装置、电子设备及可读存储介质,旨在降低业务开展的难度。具体技术方案如下:
6.在本发明实施例的第一方面,提供一种业务处理方法,所述方法包括:
7.获得业务报文,并将所述业务报文解析成交易,其中,所述业务报文携带:提出业务的目标用户的用户信息、以及发起该业务报文的目标商户的商户信息;
8.基于所述用户信息和所述商户信息,控制加密机利用所述目标用户的私钥对所述交易进行签名以得到第一签名数据、以及利用所述目标商户的私钥对所述交易和所述第一签名数据进行签名以得到第二签名数据;
9.将所述交易、所述第一签名数据以及所述第二签名数据提交给区块链网络处理。
10.在本发明实施例的第二方面,提供一种业务处理装置,所述装置包括:
11.报文解析模块,用于获得业务报文,并将所述业务报文解析成交易,其中,所述业务报文携带:提出业务的目标用户的用户信息、以及发起该业务报文的目标商户的商户信息;
12.签名控制模块,用于基于所述用户信息和所述商户信息,控制加密机利用所述目标用户的私钥对所述交易进行签名以得到第一签名数据、以及利用所述目标商户的私钥对所述交易和所述第一签名数据进行签名以得到第二签名数据;
13.交易提交模块,用于将所述交易、所述第一签名数据以及所述第二签名数据提交给区块链网络处理。
14.在本发明实施例的第三方面,提供一种电子设备,包括处理器、通信接口、存储器
和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
15.所述存储器,用于存放计算机程序;
16.所述处理器,用于在执行存储器上所存放的程序时,实现本发明任一实施例所提供的业务处理方法。
17.在本发明实施例的第四方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任一实施例所提供的业务处理方法。
18.本发明中,用户或商户在开展业务时,不需要手动构建交易,而可以简便地发出业务报文。本发明的执行主体在接收到业务报文后,自动将业务报文解析成交易。此外,为了使得交易在提交给区块链网络之后,区块链网络可以对交易的有效性进行验证,本发明的执行主体在解析出交易后,可以利用加密机对交易进行签名,然后执行主体将交易和相应签名一并提交给区块链网络处理。
19.需要说明的是,本发明中,通过加密机管理私钥和进行签名,相比于通过软件方式管理私钥和进行签名,有利于确保私钥的安全性和提升签名的可靠性。
20.还需要说明的是,本发明在签名期间,首先利用目标用户的私钥对交易进行签名以得到第一签名数据,该目标用户是业务提出方;再利用目标商户的私钥对交易和第一签名数据进行签名以得到第二签名数据,该目标商户是承接业务方,也是发起业务报文的一方。可见,本发明从用户级别和商户级别对交易进行了嵌套签名,嵌套签名数据可以作为后期审计用户行为和商户行为的依据,使得业务开展过程具有可被审计的特性。
21.还需要说明的是,本发明的执行主体将交易、第一签名数据以及第二签名数据提交给区块链网络处理,使得区块链网络可以根据第二签名数据对商户签名和用户签名进行验证,也可以根据第一签名数据单独对用户签名进行验证。
附图说明
22.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,以下描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他附图。
23.图1是本发明一实施例提出的业务处理方法的示意图;
24.图2是本发明一实施例提出的签名示意图;
25.图3是本发明另一实施例提出的业务处理方法的示意图;
26.图4是本发明一实施例提出的控制加密机进行签名的示意图;
27.图5是本发明另一实施例提出的控制加密机进行签名的示意图;
28.图6是本发明另一实施例提出的控制加密机进行签名的示意图;
29.图7是本发明一实施例提出的业务处理装置的示意图;
30.图8是本发明一实施例提出的电子设备的示意图。
具体实施方式
31.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发
明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
32.区块链技术实现于区块链网络之上,区块链网络中的分布式节点设备(以下简称为节点)通过运行区块链程序,从而实现区块数据的生成和共识,最终实现了数据的防篡改机制,为业务开展提供了安全可信的技术新思路。
33.相关技术中,用户在借助区块链网络开展业务时,需要构建区块链网络支持的交易结构,然后将交易提交给区块链网络执行。然而由于交易的结构复杂,交易的构建过程比较耗时。用户为了构建交易,通常需要预先学习区块链技术和区块链网络的相关技术规程。因此对于用户而言,在利用区块链网络开展业务时,业务开展过程较为复杂。
34.有鉴于此,本发明通过以下实施例,提出业务处理方法、装置、电子设备及可读存储介质,旨在降低业务开展的难度。
35.参考图1,图1是本发明一实施例提出的业务处理方法的示意图。本发明的执行主体可以是中间件,换言之,所述业务处理方法可以由中间件执行。以下,本发明将以执行主体是中间件为例,对业务处理方法进行介绍。
36.如图1所示,中间件获得业务报文,并将该业务报文解析成交易。
37.可选地,在一些具体实施方式中,中间件可以部署于应用程序和区块链网络之间。应用程序用于响应商户操作(例如银行工作人员的操作),向中间件发送业务报文。中间件接收到业务报文后,将业务报文解析成交易。其中,应用程序的类型可以是债券管理程序、abs资产管理程序、基金管理程序等业务类应用程序,也可以是交易审计程序、交易监管程序、网络维护程序等监控类应用程序。
38.或者可选地,在一些具体实施方式中,中间件可以部署于报文转换程序和区块链网络之间。报文转换程序用于接收应用程序发送的报文(例如swift报文),并调用预设转换逻辑,将该报文转换成业务报文,然后将转换成的业务报文发送给中间件。中间件接收到业务报文后,将业务报文解析成交易。
39.可选地,在一些具体实施方式中,业务报文携带有业务类型标识,业务类型标识用于表示业务报文用于处理的业务类型。
40.为便于理解,示例地,假设某用户准备将智能合约中托管的资产回退至账户,则该用户可以向开户的银行提出业务请求。银行响应于该业务请求,通过其应用程序向中间件发送一个用于回退资产的业务报文,该业务报文携带的业务类型标识为smtc,smtc表示该业务报文用于回退资产。
41.或者示例地,假设某用户准备向另一用户转账,则该用户可以向开户的银行提出业务请求。银行响应于该业务请求,通过其应用程序向中间件发送一个用于转账的业务报文,该业务报文携带的业务类型标识为smtt,smtt表示该业务报文用于转账。
42.此外,中间件预设有多个用于解析业务报文的报文解析策略,每个报文解析策略分别对应一种业务类型标识,并用于对包含相应业务类型标识的业务报文进行解析,以获得与相应业务类型相关的一个或多个交易。
43.当中间件接收到业务报文后,为了将业务报文解析成交易,中间件可以从业务报文中读取业务类型标识,并以读取到的业务类型标识为索引,从预设的多个报文解析策略中查找该业务类型标识对应的报文解析策略。中间件再基于查找到的报文解析策略,将该
业务报文解析成若干交易。
44.具体实现时,一个报文解析策略实际是一段计算机程序,中间件通过运行该段计算机程序,从而执行该报文解析策略。
45.其中,报文解析策略至少用于对报文解析操作做以下限定:
46.1、由业务报文所需解析出的交易数量、以及每个交易的交易类型;
47.2、针对每个交易,限定其所需携带的交易数据;并且针对每个交易数据,限定具体从业务报文的哪个字段处获取该交易数据,并限定将该交易数据填充至交易模板的哪个字段处。
48.为便于理解,示例地,中间件在接收到某条业务报文后,从该条业务报文中读取出业务类型标识,假设读取出的业务类型标识为smtc。然后,中间件以业务类型标识smtc为索引,从预设的多个报文解析策略中查找出业务类型标识smtc对应的报文解析策略,假设查找到的报文解析策略为x。接着,报文中间件基于报文解析策略x,解析该条业务报文。
49.其中,报文解析策略x对报文解析操作做出以下限定:
50.1、将业务报文解析成2个交易,这2个交易分别为资产回退交易r和合约冻结交易f;
51.2-1、在构建资产回退交易r时,从业务报文的第21至第100个字段处读取交易代码,并将读取的交易代码填充至交易模板r的第11至第90个字段处;从业务报文的第5和第6个字段处读取合约地址,并将读取的合约地址填充至交易模板r的第9和第10个字段处;填充了上述交易数据的交易模板r,形成资产回退交易r。
52.2-2、在构建合约冻结交易f时,从业务报文的第106至第150个字段处读取交易代码,并将读取的交易代码填充至交易模板f的第11至第55个字段处;从业务报文的第5和第6个字段处读取合约地址,并将读取的合约地址填充至交易模板f的第9和第10个字段处;填充了上述交易数据的交易模板f,形成合约冻结交易f。
53.需要说明的是,上述示例中所涉及的具体数据(例如业务类型标识、交易数量、交易数据、字段编号等),仅作为示意性举例。本发明在实际实施期间,所涉及的实际数据可以与上述示例中的数据相同或不同。
54.还需要说明的是,报文解析策略对报文解析操作的上述限定,仅作为示例。本领域技术人员在上述示例的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
55.本发明中,业务报文还携带:提出业务的目标用户的用户信息、以及发起该业务报文的目标商户的商户信息。为便于理解,示例地,假设用户a1在银行a开设了账户,用户a1准备针对该账户开展业务,则用户a1可以向银行a提交业务请求。银行a响应于该业务请求,生成业务报文,并将该业务报文发送给中间件。其中,该业务报文携带了用户a1的用户信息和银行a的商户信息,用户a1即是提出业务的目标用户,银行a即是发起业务报文的目标商户。
56.本发明中,中间件将业务报文解析成交易后,需要将交易提交给区块链网络执行。但是为了使得交易在提交给区块链网络之后,区块链网络可以对交易的有效性进行验证,中间件在解析出交易后,可以对交易执行签名操作。
57.如图1所示,中间件将业务报文解析成交易后,基于业务报文携带的用户信息和商户信息,控制加密机利用所述目标用户的私钥对该交易进行签名以得到第一签名数据、以
及利用所述目标商户的私钥对该交易和第一签名数据进行签名以得到第二签名数据。
58.为便于理解,参考图2,图2是本发明一实施例提出的签名示意图。加密机在进行签名时,首先利用目标用户的私钥,对交易tx进行签名,得到第一签名数据(即用户签名)。然后利用目标商户的私钥,对交易tx和第一签名数据整体进行签名,得到第二签名数据。
59.本发明中,通过加密机管理私钥和进行签名,相比于通过软件方式管理私钥和进行签名,有利于确保私钥的安全性和提升签名的可靠性。
60.此外本发明中,首先利用目标用户的私钥对交易进行签名以得到第一签名数据,该目标用户是发起该业务报文的用户,再利用目标商户的私钥对交易和第一签名数据进行签名以得到第二签名数据,该目标商户是目标用户所属的商户。可见,本发明从用户级别和商户级别对交易进行了嵌套签名,嵌套签名数据可以作为后期审计用户行为和商户行为的依据,使得业务开展过程具有可被审计的特性。
61.如图1所示,中间件将交易、第一签名数据以及第二签名数据提交给区块链网络处理。
62.具体实现时,中间件获得加密机输出的第一签名数据和第二签名数据后,将交易、第一签名数据以及第二签名数据一并提交给区块链网络处理。区块链网络除了对交易进行处理,还可以对第一签名和第二签名进行存证。
63.通过执行图1所示的业务处理方法,用户或商户在开展业务时,不需要手动构建交易,而可以简便地发出业务报文。中间件在接收到业务报文后,自动将业务报文解析成交易,并控制加密机对交易进行嵌套签名,然后将交易和相应签名一并提交给区块链网络处理。可见,本发明提出的业务处理方法有效简化了用户开展业务的难度,有利于提升用户体验。
64.此外,中间件将交易、第一签名数据以及第二签名数据提交给区块链网络处理,使得区块链网络可以根据第二签名数据对商户签名和用户签名进行验证,也可以根据第一签名数据单独对用户签名进行验证。可见,中间件为区块链网络的不同验签策略提供了充足的数据支持。
65.需要补充说明的是,中间件的上述各处理流程可视为中间件的多个功能模块,例如报文解析模块、签名控制模块以及交易提交模块。中间件的各个功能模块可以全部部署在一台设备中,也可以分布在两台或多台设备中。为简化附图,图1中仅示出了中间件的处理流程,未示出中间件各处理流程具体是由那台设备执行。
66.例如,中间件的报文解析模块和交易提交模块可以部署在第一设备中,而中间件的签名控制模块可以部署在第二设备中。第一设备接收到业务报文后,利用报文解析模块,将业务报文解析成交易。第一设备将业务报文携带的用户信息和商户信息以及解析出的交易,发送给第二设备。第二设备接收到用户信息、商户信息以及交易后,利用签名控制模块,控制第二设备本地的加密机执行上述签名操作。加密机向第二设备输出第一签名数据和第二签名数据后,第二设备将第一签名数据和第二签名数据发送给第一设备。第一设备接收到第一签名数据和第二签名数据后,利用交易提交模块,将交易、所述第一签名数据以及所述第二签名数据提交给区块链网络处理。其中,第一设备和第二设备之间传输信息时,可以对信息进行加密,确保信息传输期间不被篡改。
67.此外,第二设备和加密机可以部署在商户侧,由商户对第二设备和加密机进行管
理。商户发送给第一设备的业务报文中还携带有:业务参数和该业务参数对应的加密数据。第一设备在向第二设备发送交易、用户信息以及商户信息时,还一并将加密数据发送给第二设备。第二设备接收到这些数据后,首先对这些数据进行解密,然后比较解密后的业务参数和交易中的业务参数的一致性,从而判断交易是否合法。如果解密后的业务参数与交易携带的业务参数具有一致性,则说明第一设备在解析业务报文时没有作恶,第一设备解析出的交易合法。如此,第二设备才会利用签名控制模块,控制第二设备本地的加密机执行上述签名操作。
68.参考图3,图3是本发明另一实施例提出的业务处理方法的示意图。如图3所示,中间件预设有第一数据库,第一数据库用于记录每个商户各自所包含的用户。其中,所谓商户包含的用户,可以理解为在该商户下注册的账户。例如,在银行a注册的账户总共有20万个,则这20万个账户可以视为银行a包含的用户,每个账户具有各自的账户地址。
69.具体实现时,示例地,每个商户id代表一个商户,每个用户地址代表一个用户。在商户id条目下的用户地址,表示该用户属于该商户。
70.如图3所示,中间件在基于用户信息和商户信息,控制加密机利用目标用户的私钥对交易进行签名以得到第一签名数据、以及利用目标商户的私钥对交易和第一签名数据进行签名以得到第二签名数据之前,中间价还可以根据业务报文携带的用户信息和商户信息,查询第一数据库,以判断该商户信息的条目下是否包含该用户信息。
71.在该商户信息的条目下包含了该用户信息的情况下,说明提出业务的目标用户属于发起业务报文的目标商户,该目标用户可以基于该目标商户开展业务,或者该目标商户可以承接该目标用户的业务。如此,中间件基于该用户信息和该商户信息,控制加密机利用目标用户的私钥对交易进行签名以得到第一签名数据、以及利用目标商户的私钥对交易和第一签名数据进行签名以得到第二签名数据。
72.而在该商户信息的条目下未包含该用户信息的情况下,说明提出业务的目标用户不属于发起业务报文的目标商户,该目标用户不能基于该目标商户开展业务,或者该目标商户不能承接该目标用户的业务。如此,中间件不执行控制加密机进行签名的流程,从而终止业务。
73.本发明通过上述查询和判断操作,可以自动剔除目标用户和目标商户不对应的业务,从而有利于进一步提升业务安全性。
74.可选地,在一些具体实施方式中,加密机用于生成和保存密钥组,每个密钥组包含私钥、公钥以及地址。而业务报文携带的用户信息为目标用户的用户地址,业务报文携带的商户信息为目标商户的商户id。
75.由于加密机在生成密钥组时,自然建立了私钥、公钥以及地址之间的对应关系。而加密机中不存在商户id和私钥之间的对应关系,因此中间件为了控制加密机执行签名操作,可以首先根据业务报文携带的商户id,查询第二数据库,以确定该商户id对应的商户地址。其中,第二数据库用于记录每个商户id与每个商户地址之间的对应关系。
76.在确定出商户id对应的商户地址后,中间件基于用户地址和确定出的商户地址,控制加密机利用该用户地址对应的私钥对交易进行签名以得到第一签名数据、以及利用该商户地址对应的私钥对交易和第一签名数据进行签名以得到第二签名数据。
77.需要说明的是,本发明中,通过将第一数据库部署在加密机之外,预先查询到商户
id对应的商户地址后,再基于用户地址和查询到的商户地址,控制加密机进行签名。如此,由于加密机不需要部署第一数据库,因此可以节约加密机内存。此外,又由于加密机不需要根据商户id查询对应的商户地址,仅需简单地执行签名操作,因此使得加密机内需要植入的必要程序较少,加密机内随程序引入的安全漏洞也相应较少。
78.此外,进一步考虑到加密机用于为用户生成和保存密钥组,也用于为商户生成和保存密钥组,因此加密机内保存有多个密钥组,其中一部分密钥组是各个商户的密钥组,另一部分密钥组是各个用户的密钥组。然而,加密机并不感知密钥组的属性,换言之,加密机并不能确定每个密钥组具体是属于商户还是属于用户。
79.由于加密机不感知密钥组的属性,而在对交易进行签名时,需要首先利用目标用户的私钥进行签名,再利用目标商户的私钥进行签名。为了使得加密机签名时,能按照上述顺序进行签名,可以参考图4,图4是本发明一实施例提出的控制加密机进行签名的示意图。
80.如图4所示,中间件可以首先将用户地址和交易提交给加密机,使加密机利用该用户地址对应的私钥对交易进行签名,以得到第一签名数据。
81.当获得加密机返回的第一签名数据后,将交易、第一签名数据以及商户地址提交给加密机,使加密机利用该商户地址对应的私钥对交易和第一签名数据进行签名,以得到第二签名数据。
82.示例地,具体实现时,如图4所示,中间件生成第一命令消息,并将该第一命令消息发送给加密机。该第一命令消息至少携带:第一命令码和数据元素。其中,数据元素中包含交易和用户地址,而第一命令码用于表征运算类型。由于第一命令消息用于指示加密机利用目标用户的私钥对交易进行签名,因此第一命令消息携带的第一命令码表征的运算类型为用户私钥签名。示例地,第一命令码可以形如us。
83.如图4所示,加密机接收到第一命令消息后,根据第一命令消息携带的第一命令码,确定该第一命令消息用于指示其执行签名操作。如此,加密机从第一命令消息携带的数据元素中读取出交易和地址,然后以读取出的地址为索引,从保存的多个密钥组中查询包含该地址的目标密钥组,接着利用目标密钥组中的私钥对读取出的交易进行签名,以得到第一签名数据。
84.如图4所示,加密机执行完第一命令消息后,生成第一响应消息,并将该第一响应消息发送给中间件。该第一响应消息至少携带:第一响应码和数据元素。其中,数据元素中至少包含第一签名数据,还可以包含交易和用户地址。而第一响应码与第一命令码对应,具体地,第一响应码可以等于第一命令码(例如第一命令码形如us,第一响应码也形如us),或者,第一响应码的最后一位大于第一命令码的最后一位(例如第一命令码形如us,第一响应码形如ut)。
85.如图4所示,中间件接收到第一响应消息后,根据第一响应消息携带的第一响应码,确定该第一响应消息用于返回第一签名数据。如此,中间件从第一响应消息中读取出交易、用户地址和第一签名数据。接着,中间件可以根据读取的用户地址,查询上述第一数据库(即图3所示的第一数据库),从而确定该用户地址对应的商户地址。需要说明的是,如果在执行图4所示的签名操作之前,预先执行图3所示的查询和判断流程,则中间件根据用户地址从第一数据库中查询到的商户地址,必定等于业务报文携带的商户地址。
86.如此,如图4所示,中间件可以根据第一响应消息携带的交易和第一签名数据、以
及根据查询到的商户地址,生成第二命令消息,并将该第二命令消息发送给加密机。该第二命令消息至少携带:第二命令码和数据元素。其中,数据元素中包含交易、第一签名数据以及商户地址,而第二命令码用于表征运算类型。由于第二命令消息用于指示加密机利用目标商户的私钥对交易和第一签名数据进行签名,因此第二命令消息携带的第二命令码表征的运算类型为商户私钥签名。示例地,第二命令码可以形如ms。
87.如图4所示,加密机接收到第二命令消息后,根据第二命令消息携带的第二命令码,确定该第二命令消息用于指示其执行签名操作。如此,加密机从第二命令消息携带的数据元素中读取出交易、第一签名数据和地址,然后以读取出的地址为索引,从保存的多个密钥组中查询包含该地址的目标密钥组,接着利用目标密钥组中的私钥对读取出的交易和第一签名数据进行签名,以得到第二签名数据。
88.如图4所示,加密机执行完第二命令消息后,生成第二响应消息,并将该第二响应消息发送给中间件。该第二响应消息至少携带:第二响应码和数据元素。其中,数据元素中至少包含第二签名数据,还可以包含交易、第一签名数据以及商户地址。而第二响应码与第二命令码对应,具体地,第二响应码可以等于第二命令码(例如第二命令码形如ms,第二响应码也形如ms)。或者,第二响应码的最后一位大于第二命令码的最后一位(例如第二命令码形如ms,第二响应码形如mt)。
89.如图4所示,中间件接收到第二响应消息后,根据第二响应消息携带的第二响应码,确定该第二响应消息用于返回第二签名数据。如此,中间件从第二响应消息中读取出交易、第一签名数据以及第二签名数据。接着,中间件可以将读取的交易、第一签名数据以及第二签名数据提交给区块链网络执行。
90.需要说明的是,图4所示的签名流程中,第一命令消息和第二命令消息各自携带了第一命令码和第二命令码,且第一命令码与第二命令码不相同。如此,加密机在执行完命令消息后,可以根据命令消息携带的命令码确定出相应的响应码,从而生成携带该响应码的响应消息。
91.而中间件在接收到加密机发送的响应消息后,可以根据响应消息携带的响应码,确定出签名流程的当前环节。具体地,如果响应消息携带第一响应码,则确定出签名流程的当前环节为:用户私钥签名已执行但商户私钥签名未执行。而如果响应消息携带第二响应码,则确定出签名流程的当前环节为:用户私钥签名和商户私钥签名均已执行。进而,中间件可以根据签名流程的当前环节,做出相应的响应,例如生成第二命令消息或者向区块链网络提交交易,使得签名流程按照“首先利用目标用户的私钥进行签名,再利用目标商户的私钥进行签名”的顺序,有序执行。
92.或者,为了使得加密机签名时,能按照上述顺序进行签名,可以参考图5,图5是本发明另一实施例提出的控制加密机进行签名的示意图。
93.如图5所示,中间件可以首先将用户地址和交易提交给第一加密机,使第一加密机利用该用户地址对应的私钥对交易进行签名,以得到第一签名数据。其中,第一加密机用于为用户生成和保存密钥组。
94.在获得第一加密机返回的第一签名数据后,将交易、第一签名数据以及商户地址提交给第二加密机,使第二加密机利用该商户地址对应的私钥对交易和第一签名数据进行签名,以得到第二签名数据。其中,第二加密机用于为商户生成和保存密钥组。
95.示例地,具体实现时,如图5所示,中间件可以生成命令消息,并将该第命令消息发送给第一加密机。该命令消息至少携带:命令码和数据元素。其中,数据元素中包含交易和用户地址,而命令码用于表征运算类型。由于该命令消息用于指示加密机对交易进行签名,因此该命令消息携带的命令码表征的运算类型为签名类型。示例地,命令码可以形如sg。
96.如图5所示,第一加密机接收到命令消息后,根据命令消息携带的命令码,确定该命令消息用于指示其执行签名操作。如此,第一加密机从命令消息携带的数据元素中读取出交易和地址,然后以读取出的地址为索引,从保存的多个密钥组中查询包含该地址的目标密钥组,接着利用目标密钥组中的私钥对读取出的交易进行签名,以签名数据。
97.如图5所示,第一加密机执行完命令消息后,生成响应消息,并将该响应消息发送给中间件。该响应消息至少携带:响应码和数据元素。其中,数据元素中至少包含第一签名数据,还可以包含交易和用户地址。而响应码与命令码对应,具体地,响应码可以等于命令码,或者,响应码的最后一位大于命令码的最后一位。
98.如图5所示,中间件接收到第一加密机发送的响应消息后,从该响应消息中读取出交易、用户地址和第一签名数据。接着,中间件可以根据读取的用户地址,查询上述第一数据库(即图3所示的第一数据库),从而确定该用户地址对应的商户地址。
99.如图5所示,中间件根据响应消息携带的交易和第一签名数据、以及根据查询到的商户地址,生成另一个命令消息,并将该命令消息发送给第二加密机。该命令消息至少携带:命令码和数据元素。其中,数据元素中包含交易、第一签名数据以及商户地址,而命令码用于表征运算类型。由于该命令消息用于指示加密机对交易和第一签名数据进行签名,因此该命令消息携带的命令码表征的运算类型为签名类型。示例地,命令码可以形如sg。
100.如图5所示,第二加密机接收到命令消息后,根据命令消息携带的命令码,确定该命令消息用于指示其执行签名操作。如此,加密机从命令消息携带的数据元素中读取出交易、第一签名数据和地址,然后以读取出的地址为索引,从保存的多个密钥组中查询包含该地址的目标密钥组,接着利用目标密钥组中的私钥对读取出的交易和第一签名数据进行签名,以得到第二签名数据。
101.如图5所示,第二加密机执行完命令消息后,生成响应消息,并将该响应消息发送给中间件。该响应消息至少携带:响应码和数据元素。其中,数据元素中至少包含第二签名数据,还可以包含交易、第一签名数据以及商户地址。而响应码与命令码对应,具体地,响应码可以等于命令码,或者,响应码的最后一位大于命令码的最后一位。
102.如图5所示,中间件接收到第二加密机发送的响应消息后,从该响应消息中读取出交易、第一签名数据以及第二签名数据。接着,中间件可以将读取的交易、第一签名数据以及第二签名数据提交给区块链网络执行。
103.需要说明的是,图5所示的签名流程中,通过第一加密机执行用户私钥签名环节并返回响应消息,通过第二加密机执行商户私钥签名环节并返回响应消息。如此,中间件可以根据响应消息的来源,确定出签名流程的当前环节。具体地,如果响应消息来源于第一加密机,则确定出签名流程的当前环节为:用户私钥签名已执行但商户私钥签名未执行。如果响应消息来源于第二加密机,则确定出签名流程的当前环节为:用户私钥签名和商户私钥签名均已执行。进而,中间件可以根据签名流程的当前环节,做出相应的响应,例如向第二加密机发送命令消息或者向区块链网络提交交易,使得签名流程按照“首先利用目标用户的
私钥进行签名,再利用目标商户的私钥进行签名”的顺序,有序执行。
104.或者,为了使得加密机签名时,能按照上述顺序进行签名,可以参考图6,图6是本发明另一实施例提出的控制加密机进行签名的示意图。
105.如图6所示,中间件将交易、用户地址以及商户地址提交给加密机,所述用户地址和所述商户地址之间具有顺序关系,或者所述用户地址和所述商户地址各自携带有特定标识,使加密机根据该顺序关系或特定标识,从两个地址中区分出用户地址和商户地址,以及利用区分出的用户地址所对应的私钥对交易进行签名,以得到第一签名数据,再利用区分出的商户地址所对应的私钥对交易和第一签名数据进行签名,以得到第二签名数据。
106.示例地,具体实现时,如图6所示,中间件生成命令消息,并将该命令消息发送给加密机。该命令消息至少携带:命令码和数据元素。其中,数据元素中包含交易、用户地址以及商户地址。如图6所示,用户地址和商户地址之间具有顺序关系,例如用户地址在前、商户地址在后。而命令码用于表征运算类型,由于该命令消息用于指示加密机进行嵌套签名,因此该命令消息携带的命令码表征的运算类型为嵌套签名。示例地,命令码可以形如ds。
107.如图6所示,加密机接收到命令消息后,根据命令消息携带的命令码,确定该命令消息用于指示其执行嵌套签名操作。如此,加密机从命令消息携带的数据元素中读取出交易和两个地址,然后以两个地址中排列靠前的地址为索引,从保存的多个密钥组中查询包含该地址的目标密钥组,接着利用该目标密钥组中的私钥对读取出的交易进行签名,以得到第一签名数据。
108.加密机再以两个地址中排列靠后的地址为索引,从保存的多个密钥组中查询包含该地址的另一目标密钥组,接着利用该目标密钥组中的私钥对读取出的交易和得到的第一签名数据进行签名,以得到第二签名数据。
109.如图6所示,加密机执行完命令消息后,生成响应消息,并将该响应消息发送给中间件。该响应消息至少携带:响应码和数据元素。其中,数据元素中包含交易、第一签名数据以及第二签名数据。而响应码与命令码对应,具体地,响应码可以等于命令码,或者,响应码的最后一位大于命令码的最后一位。
110.如图6所示,中间件接收到加密机发送的响应消息后,从该响应消息中读取出交易、第一签名数据以及第二签名数据。接着,中间件可以将读取的交易、第一签名数据以及第二签名数据提交给区块链网络执行。
111.或者示例地,中间件发送的命令消息中,数据元素中的用户地址携带第一预设标识,数据元素中的商户地址携带第二预设标识。加密机接收到命令消息后,从数据元素中读取出两个地址,然后首先以携带第一预设标识的地址为索引,从保存的多个密钥组中查询包含该地址的目标密钥组,接着利用该目标密钥组中的私钥对读取出的交易进行签名,以得到第一签名数据。加密机再以携带第二预设标识的地址为索引,从保存的多个密钥组中查询包含该地址的另一目标密钥组,接着利用该目标密钥组中的私钥对读取出的交易和得到的第一签名数据进行签名,以得到第二签名数据。加密机最后生成响应消息,通过该响应消息将交易、第一签名数据以及第二签名数据发送给中间件。为简化附图,图2中未示出该段所述的示例。
112.需要说明的是,图6所示的流程中,中间件控制加密机进行签名时,按照约定顺序对用户地址和商户地址进行排序,且加密机预先嵌入有该约定顺序的识别逻辑。如此,加密
机接收到具有顺序关系的用户地址和商户地址后,可以根据识别逻辑,首先从两个地址中识别出用户地址和商户地址,从而首先利用用户地址对应的私钥进行签名,再利用商户地址对应的私钥进行签名。使得签名流程按照“首先利用目标用户的私钥进行签名,再利用目标商户的私钥进行签名”的顺序,有序执行。
113.总言之,前述各示例中,中间件首先根据业务报文携带的商户id查询到对应的商户地址,然后基于业务报文携带的用户地址和查询到的商户地址,控制加密机首先利用该用户地址对应的私钥对交易进行签名,以得到第一签名数据,然后利用该商户地址对应的私钥对交易和第一签名数据进行签名,以得到第二签名数据。
114.可选地,在另一些具体实施方式中,加密机中可以记录有商户id与商户地址之间的对应关系。中间件可以将交易、业务报文携带的用户地址、以及业务报文携带的商户id发送给加密机。加密机接收到交易、用户地址和商户id后,利用该用户地址对应的私钥对交易进行签名,以得到第一签名数据。然后加密机以商户id为索引,查询该商户id对应的商户地址,再利用该商户地址对应的商户私钥对交易和第一签名数据进行签名,以得到第二签名数据。加密机将交易、第一签名数据以及第二签名数据发送给中间件,中间件再将交易、第一签名数据以及第二签名数据提交给区块链网络处理。
115.在区块链技术领域中,地址通常对应资产,或者说地址对应账户,因此如果想要对账户执行业务操作,则需要提供相应的地址。基于该技术背景,在前述各示例中,由于业务提出方是用户,用户的账户需要被执行相应的业务操作,因此业务报文中需要携带用户地址。而商户用于承接业务,商户的账户不会被执行业务操作,因此业务报文中不需要携带商户地址。又由于需要利用商户私钥进行签名,因此仍然需要携带商户信息(例如商户id),从而可以根据商户信息映射出商户地址,进而使得加密机可以根据商户地址映射出商户私钥。
116.然而,在另一些示例中,业务报文中携带的商户信息也可以是商户地址,而业务报文携带的用户信息依然是用户地址。同样地,加密机用于生成和保存密钥组,每个密钥组包含私钥、公钥以及地址。
117.如此,中间件为了控制加密机进行签名,中间件可以将用户地址和交易提交给加密机,使加密机利用该用户地址对应的私钥对交易进行签名,以得到第一签名数据。中间件在获得加密机返回的第一签名数据后,将交易、第一签名数据以及商户地址提交给加密机,使加密机利用该商户地址对应的私钥对交易和第一签名数据进行签名,以得到第二签名数据。具体实现时,可参考图4和图4对应的说明,为避免重复,此处不再赘述。
118.或者,中间件为了控制加密机进行签名,中间件可以将用户地址和交易提交给第三加密机,使第三加密机利用该用户地址对应的私钥对交易进行签名,以得到第一签名数据,其中,第三加密机用于为用户生成和保存密钥组,每个密钥组包含私钥、公钥以及地址;中间件在获得第三加密机返回的第一签名数据后,将交易、第一签名数据以及商户地址提交给第四加密机,使第四加密机利用该商户地址对应的私钥对交易和第一签名数据进行签名,以得到第二签名数据,其中,第四加密机用于为商户生成和保存密钥组,每个密钥组包含私钥、公钥以及地址。具体实现时,可参考图5和图5对应的说明,为避免重复,此处不再赘述。
119.或者,中间件为了控制加密机进行签名,中间件可以将交易、用户地址以及商户地
址提交给加密机,其中用户地址和商户地址之间具有顺序关系,或者用户地址和商户地址各自携带有特定标识,使加密机根据该顺序关系或特定标识,从两个地址中区分出用户地址和商户地址,以及利用区分出的用户地址所对应的私钥对交易进行签名,以得到第一签名数据,再利用区分出的商户地址所对应的私钥对交易和第一签名数据进行签名,以得到第二签名数据。具体实现时,可参考图6和图6对应的说明,为避免重复,此处不再赘述。
120.基于同一发明构思,本发明实施例还提供一种业务处理装置。参考图7,图7是本发明一实施例提出的业务处理装置的示意图。如图7所示,该装置包括:
121.报文解析模块71,用于获得业务报文,并将所述业务报文解析成交易,其中,所述业务报文携带:提出业务的目标用户的用户信息、以及发起该业务报文的目标商户的商户信息;
122.签名控制模块72,用于基于所述用户信息和所述商户信息,控制加密机利用所述目标用户的私钥对所述交易进行签名以得到第一签名数据、以及利用所述目标商户的私钥对所述交易和所述第一签名数据进行签名以得到第二签名数据;
123.交易提交模块73,用于将所述交易、所述第一签名数据以及所述第二签名数据提交给区块链网络处理。
124.可选地,在一些具体实施方式中,所述装置还包括:
125.包含关系判断模块,用于在所述签名控制模块控制加密机执行签名操作之前,根据所述用户信息和所述商户信息,查询第一数据库,以判断所述商户信息的条目下是否包含所述用户信息,其中,所述第一数据库用于记录每个商户各自所包含的用户;
126.在所述商户信息的条目下未包含所述用户信息的情况下,所述签名控制模块不执行控制所述加密机进行签名的流程。
127.可选地,在一些具体实施方式中,所述加密机用于生成和保存密钥组,每个密钥组包含私钥、公钥以及地址;所述业务报文携带的用户信息为所述目标用户的用户地址,所述业务报文携带的商户信息为所述目标商户的商户id;
128.所述签名控制模块包括:
129.商户地址查询单元,用于根据所述商户id,查询第二数据库,以确定该商户id对应的商户地址,其中,所述第二数据库用于记录每个商户id与每个商户地址之间的对应关系;
130.签名控制单元,用于基于所述用户地址和确定出的商户地址,控制加密机利用该用户地址对应的私钥对所述交易进行签名以得到第一签名数据、以及利用该商户地址对应的私钥对所述交易和所述第一签名数据进行签名以得到第二签名数据。
131.可选地,在一些具体实施方式中,所述签名控制单元包括:
132.第一控制子单元,用于将所述用户地址和所述交易提交给所述加密机,使所述加密机利用所述用户地址对应的私钥对所述交易进行签名,以得到第一签名数据;
133.第二控制子单元,用于在获得所述加密机返回的所述第一签名数据后,将所述交易、所述第一签名数据以及所述商户地址提交给所述加密机,使所述加密机利用所述商户地址对应的私钥对所述交易和所述第一签名数据进行签名,以得到第二签名数据。
134.可选地,在一些具体实施方式中,所述签名控制单元包括:
135.第三控制子单元,用于将所述用户地址和所述交易提交给第一加密机,使所述第一加密机利用所述用户地址对应的私钥对所述交易进行签名,以得到第一签名数据,其中,
所述第一加密机用于为用户生成和保存密钥组;
136.第四控制子单元,用于在获得所述第一加密机返回的所述第一签名数据后,将所述交易、所述第一签名数据以及所述商户地址提交给第二加密机,使所述第二加密机利用所述商户地址对应的私钥对所述交易和所述第一签名数据进行签名,以得到第二签名数据,其中,所述第二加密机用于为商户生成和保存密钥组。
137.可选地,在一些具体实施方式中,所述签名控制单元,具体用于将所述交易、所述用户地址以及所述商户地址提交给所述加密机,所述用户地址和所述商户地址之间具有顺序关系,或者所述用户地址和所述商户地址各自携带有特定标识,使所述加密机根据所述顺序关系或所述特定标识,从两个地址中区分出用户地址和商户地址,以及利用区分出的用户地址所对应的私钥对所述交易进行签名,以得到第一签名数据,再利用区分出的商户地址所对应的私钥对所述交易和所述第一签名数据进行签名,以得到第二签名数据。
138.可选地,在一些具体实施方式中,所述加密机用于生成和保存密钥组,每个密钥组包含私钥、公钥以及地址;所述业务报文携带的用户信息为所述目标用户的用户地址,所述业务报文携带的商户信息为所述目标商户的商户地址;
139.所述签名控制模块包括:
140.第一控制单元,用于将所述用户地址和所述交易提交给所述加密机,使所述加密机利用所述用户地址对应的私钥对所述交易进行签名,以得到第一签名数据;
141.第二控制单元,用于在获得所述加密机返回的所述第一签名数据后,将所述交易、所述第一签名数据以及所述商户地址提交给所述加密机,使所述加密机利用所述商户地址对应的私钥对所述交易和所述第一签名数据进行签名,以得到第二签名数据。
142.可选地,在一些具体实施方式中,所述业务报文携带的用户信息为所述目标用户的用户地址,所述业务报文携带的商户信息为所述目标商户的商户地址;
143.所述签名控制模块包括:
144.第三控制单元,用于将所述用户地址和所述交易提交给第三加密机,使所述第三加密机利用所述用户地址对应的私钥对所述交易进行签名,以得到第一签名数据,其中,所述第三加密机用于为用户生成和保存密钥组,每个密钥组包含私钥、公钥以及地址;
145.第四控制单元,用于在获得所述第三加密机返回的所述第一签名数据后,将所述交易、所述第一签名数据以及所述商户地址提交给第四加密机,使所述第四加密机利用所述商户地址对应的私钥对所述交易和所述第一签名数据进行签名,以得到第二签名数据,其中,所述第四加密机用于为商户生成和保存密钥组,每个密钥组包含私钥、公钥以及地址。
146.可选地,在一些具体实施方式中,所述加密机用于生成和保存密钥组,每个密钥组包含私钥、公钥以及地址;所述业务报文携带的用户信息为所述目标用户的用户地址,所述业务报文携带的商户信息为所述目标商户的商户地址;
147.所述签名控制模块,具体用于将所述交易、所述用户地址以及所述商户地址提交给所述加密机,所述用户地址和所述商户地址之间具有顺序关系,或者所述用户地址和所述商户地址各自携带有特定标识,使所述加密机根据所述顺序关系或所述特定标识,从两个地址中区分出用户地址和商户地址,以及利用区分出的用户地址所对应的私钥对所述交易进行签名,以得到第一签名数据,再利用区分出的商户地址所对应的私钥对所述交易和
所述第一签名数据进行签名,以得到第二签名数据。
148.对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
149.基于同一发明构思,本发明实施例还提供了一种电子设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信。
150.所述存储器803,用于存放计算机程序;
151.所述处理器801,用于在执行存储器803上所存放的程序时,实现如下步骤:
152.获得业务报文,并将所述业务报文解析成交易,其中,所述业务报文携带:提出业务的目标用户的用户信息、以及发起该业务报文的目标商户的商户信息;
153.基于所述用户信息和所述商户信息,控制加密机利用所述目标用户的私钥对所述交易进行签名以得到第一签名数据、以及利用所述目标商户的私钥对所述交易和所述第一签名数据进行签名以得到第二签名数据;
154.将所述交易、所述第一签名数据以及所述第二签名数据提交给区块链网络处理。
155.或者,处理器801用于在执行存储器803上所存放的程序时,实现本发明以上其他方法实施例所提供的业务处理方法步骤。
156.上述电子设备提到的通信总线可以是外设部件互连标准(peripheral component interconnect,简称pci)总线或扩展工业标准结构(extended industry standard architecture,简称eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
157.通信接口用于上述电子设备与其他设备之间的通信。
158.存储器可以包括随机存取存储器(random access memory,简称ram),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
159.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,简称cpu)、网络处理器(network processor,简称np)等;还可以是数字信号处理器(digital signal processing,简称dsp)、专用集成电路(application specific integrated circuit,简称asic)、现场可编程门阵列(field-programmable gate array,简称fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
160.在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的业务处理方法。
161.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字
用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk(ssd))等。
162.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
163.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
164.以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1