业务处理的方法和装置
技术领域
本说明书一个或多个实施例涉及计算机领域,尤其涉及业务处理的方法和装置。
背景技术
当前,在进行业务处理时,通常需要多方参与,例如,一项业务可以涉及一个业务发起方以及一个或多个业务相关方。随着区块链技术的发展,在业务处理的过程中利用了区块链技术存储多方交互的业务数据。
业务数据记录到区块链网络上之后,可以防止个别区块链成员抵赖或者篡改数据,其一个基础就是大家参与记录,每个区块链成员都可以拿到区块链网络上的所有数据。当业务数据中包含敏感数据时(比如用户隐私数据),如果将敏感数据写入区块链,那么这些敏感数据就会泄露给所有区块链成员。
因此,希望能有改进的方案,能够在利用区块链网络存储业务数据时,不会导致敏感数据的泄露。
发明内容
本说明书一个或多个实施例描述了一种业务处理的方法和装置,能够在利用区块链网络存储业务数据时,不会导致敏感数据的泄露。
第一方面,提供了一种业务处理的方法,方法由业务发起方执行,并包括:
针对目标业务向各业务相关方发送业务确认请求,所述业务确认请求中包括业务数据;
从每个所述业务相关方接收业务确认应答,所述业务确认应答中包括第一数据块和第一签名数据;其中,所述第一数据块包括由业务相关方采用预设编码方式对所述业务数据进行编码而生成的第一编码数据、第一确认结果和所述业务相关方的标识;所述第一签名数据为利用所述业务相关方的私钥对所述第一数据块进行签名计算得到的;
采用所述预设编码方式对所述业务数据进行编码,从而生成第二编码数据;以及生成第二确认结果;
利用所述业务发起方的私钥对包括第二编码数据、第二确认结果和所述业务发起方的标识的第二数据块进行签名,得到第二签名数据;
确定每个所述第一确认结果和所述第二确认结果均为确认通过时,通过区块链网络存储每个所述业务相关方的所述第一数据块和所述第一签名数据,以及所述业务发起方的所述第二数据块和所述第二签名数据。
在一种可能的实施方式中,所述方法还包括:
确定每个所述第一确认结果和所述第二确认结果均为确认通过时,通过所述区块链网络处理所述目标业务。
进一步地,所述通过所述区块链网络处理所述目标业务,包括:
通过所述区块链网络记录所述目标业务的处理结果信息;以及,
通过所述区块链网络向每个所述业务相关方发送所述目标业务的处理结果信息,以使每个所述业务相关方处理所述目标业务。
第二方面,提供了一种业务处理的方法,方法由业务相关方执行,并包括:
从业务发起方接收针对目标业务的业务确认请求,所述业务确认请求中包括业务数据;
根据所述业务数据,生成第一确认结果;
采用预设编码方式对所述业务数据进行编码,生成第一编码数据;
利用所述业务相关方的私钥对包含所述第一确认结果和所述第一编码数据的第一数据块进行签名,得到第一签名数据;
向所述业务发起方发送业务确认应答,所述业务确认应答中包括所述第一数据块和所述第一签名数据;以使所述业务发起方确定每个所述业务相关方的确认结果均为确认通过时,通过区块链网络存储每个所述业务相关方的所述第一数据块和所述第一签名数据,以及所述业务发起方的数据。
在一种可能的实施方式中,所述方法还包括:
从所述区块链网络接收所述目标业务的处理结果信息;
根据所述处理结果信息,处理所述目标业务。
第三方面,提供了一种业务处理的方法,方法由区块链网络执行,并包括:
从目标业务的业务发起方接收每个业务相关方的第一数据块和第一签名数据,以及所述业务发起方的第二数据块和第二签名数据;其中,所述第一数据块包括由业务相关方采用预设编码方式对业务数据进行编码而生成的第一编码数据、第一确认结果和所述业务相关方的标识;所述第一签名数据为利用所述业务相关方的私钥对所述第一数据块进行签名计算得到的;所述第二数据块包括由业务发起方采用所述预设编码方式对所述业务数据进行编码而生成的第二编码数据、第二确认结果和所述业务发起方的标识;所述第二签名数据为利用所述业务发起方的私钥对所述第二数据块进行签名计算得到的;
存储每个所述业务相关方的所述第一数据块和所述第一签名数据,以及所述业务发起方的所述第二数据块和所述第二签名数据。
在一种可能的实施方式中,所述存储每个所述业务相关方的所述第一数据块和所述第一签名数据,以及所述业务发起方的所述第二数据块和所述第二签名数据之后,所述方法还包括:
处理所述目标业务。
进一步地,所述处理所述目标业务,包括:
记录所述目标业务的处理结果信息;以及,
向每个所述业务相关方发送所述目标业务的处理结果信息,以使每个所述业务相关方处理所述目标业务。
进一步地,所述存储每个所述业务相关方的所述第一数据块和所述第一签名数据,以及所述业务发起方的所述第二数据块和所述第二签名数据之前,所述方法还包括:
进行如下各项核对:
核对所述业务相关方的标识和/或所述业务发起方的标识是否与所述目标业务的业务链路上的成员标识相匹配;
核对每个所述第一编码数据和所述第二编码数据是否相同;
利用每个所述业务相关方的公钥对每个所述业务相关方的所述第一数据块和所述第一签名数据进行签名验证,验证所述第一数据块和所述第一签名数据是否匹配;
利用所述业务发起方的公钥对所述业务发起方的所述第二数据块和所述第二签名数据进行签名验证,验证所述第二数据块和所述第二签名数据是否匹配;
确定所述各项核对的核对结果均为是。
在一种可能的实施方式中,所述存储每个所述业务相关方的所述第一数据块和所述第一签名数据,以及所述业务发起方的所述第二数据块和所述第二签名数据,包括:
将每个所述业务相关方的所述第一数据块和所述第一签名数据,以及所述业务发起方的所述第二数据块和所述第二签名数据存储在一个区块中。
第四方面,提供了一种业务处理的装置,装置设置于业务发起方,并包括:
发送单元,用于针对目标业务向各业务相关方发送业务确认请求,所述业务确认请求中包括业务数据;
接收单元,用于从每个所述业务相关方接收业务确认应答,所述业务确认应答中包括第一数据块和第一签名数据;其中,所述第一数据块包括由业务相关方采用预设编码方式对所述业务数据进行编码而生成的第一编码数据、第一确认结果和所述业务相关方的标识;所述第一签名数据为利用所述业务相关方的私钥对所述第一数据块进行签名计算得到的;
编码单元,用于采用所述预设编码方式对所述业务数据进行编码,从而生成第二编码数据;以及生成第二确认结果;
签名单元,用于利用所述业务发起方的私钥对包括第二编码数据、第二确认结果和所述业务发起方的标识的第二数据块进行签名,得到第二签名数据;
存储单元,用于确定所述接收单元接收的每个所述第一确认结果和所述编码单元生成的所述第二确认结果均为确认通过时,通过区块链网络存储所述接收单元接收的每个所述业务相关方的所述第一数据块和所述第一签名数据,以及所述业务发起方的所述第二数据块和所述第二签名数据。
第五方面,提供了一种业务处理的装置,装置设置于业务相关方,并包括:
接收单元,用于从业务发起方接收针对目标业务的业务确认请求,所述业务确认请求中包括业务数据;
确认单元,用于根据所述接收单元接收的业务数据,生成第一确认结果;
编码单元,用于采用预设编码方式对所述接收单元接收的业务数据进行编码,生成第一编码数据;
签名单元,用于利用所述业务相关方的私钥对包含所述第一确认结果和所述第一编码数据的第一数据块进行签名,得到第一签名数据;
发送单元,用于向所述业务发起方发送业务确认应答,所述业务确认应答中包括所述第一数据块和所述第一签名数据;以使所述业务发起方确定每个所述业务相关方的确认结果均为确认通过时,通过区块链网络存储每个所述业务相关方的所述第一数据块和所述第一签名数据,以及所述业务发起方的数据。
第六方面,提供了一种业务处理的装置,装置设置于区块链网络,并包括:
接收单元,用于从目标业务的业务发起方接收每个业务相关方的第一数据块和第一签名数据,以及所述业务发起方的第二数据块和第二签名数据;其中,所述第一数据块包括由业务相关方采用预设编码方式对业务数据进行编码而生成的第一编码数据、第一确认结果和所述业务相关方的标识;所述第一签名数据为利用所述业务相关方的私钥对所述第一数据块进行签名计算得到的;所述第二数据块包括由业务发起方采用所述预设编码方式对所述业务数据进行编码而生成的第二编码数据、第二确认结果和所述业务发起方的标识;所述第二签名数据为利用所述业务发起方的私钥对所述第二数据块进行签名计算得到的;
存储单元,用于存储所述接收单元接收的每个所述业务相关方的所述第一数据块和所述第一签名数据,以及所述业务发起方的所述第二数据块和所述第二签名数据。
第七方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面或第二方面或第三方面的方法。
第八方面,提供了一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面或第二方面或第三方面的方法。
通过本说明书实施例提供的方法和装置,业务发起方向业务相关方发送业务数据,从而便于业务相关方对业务进行确认,但是业务相关方不会直接返回给业务发起方业务数据和确认结果,而是业务相关方对业务数据进行编码得到编码数据,将编码数据和确认结果返回给业务发起方,后续业务发起方不是直接将业务数据和确认结果存储在区块链网络中,而是将编码数据和确认结果作为一个数据块存储在区块链网络中,区块链成员不会知道业务数据,从而能够在利用区块链网络存储业务数据时,不会导致敏感数据的泄露。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本说明书披露的一个实施例的实施场景示意图;
图2为图1所示实施场景对应的区块链记账实施场景示意图;
图3示出根据一个实施例的业务处理的方法流程图;
图4示出根据另一个实施例的业务处理的方法流程图;
图5示出根据另一个实施例的业务处理的方法流程图;
图6示出根据一个实施例的业务处理过程中各成员交互过程示意图;
图7示出根据一个实施例的业务处理时序图;
图8示出根据一个实施例的业务处理的装置的示意性框图;
图9示出根据另一个实施例的业务处理的装置的示意性框图;
图10示出根据另一个实施例的业务处理的装置的示意性框图;
图11示出根据一个实施例的业务处理的系统的示意性框图。
具体实施方式
下面结合附图,对本说明书提供的方案进行描述。
图1为本说明书披露的一个实施例的实施场景示意图。该实施场景涉及资金交易业务,具体为转账业务,图1中示出精简版的转账过程,张三通过第一钱包汇款给第二钱包的李四。参照图1,资金的流向是:第一钱包(第一成员)→资金流通银行(第二成员)→第二钱包(第三成员)。为了保障资金流转的可靠性、简化对账和缩短转账周期等原因,引入了区块链记账。
图2为图1所示实施场景对应的区块链记账实施场景示意图。该实施场景涉及转账过程中通过区块链进行数据记录。参照图2,第一成员加入区块链后,通过第一钱包发起交易业务,区块链记录交易数据,并且把记录的交易数据发送给所有的成员。由于在金融监管里要求,每个资金链路的参与方都需要进行风险扫描,比如反洗钱、反恐怖融资等等,这些风险扫描往往需要用户的敏感数据(比如身份证号码)。所以,交易环节中需要发起风险扫描,发起风险扫描的可以为第一成员、第二成员和第三成员中的任意一个,本说明书实施例中仅以第一成员作为业务发起方来举例描述,但是可以理解的是,业务发起方并不限定于第一成员。第一成员发起风险扫描后,资金链路中的各成员进行风险扫描,并反馈扫描结果。为了防止个别成员抵赖等风险,需要将各成员进行风险扫描的详细信息和扫描结果写入区块链,但是,风险扫描的详细信息里往往包含了大量隐私信息,如果将这些信息写入区块链,那么这些信息就会被泄露出去。
针对上述问题,本说明书实施例在进行业务处理时,业务数据经过编码后存储到区块链上,实现了业务信息的脱敏,从而解决业务链路的各成员对业务进行认可,并不可抵赖,不泄露业务信息。
需要说明的是,该实施场景涉及多成员参与一个区块链业务,并且需要各成员对于业务进行认可的场景。其中,上述多成员可以仅为两个,例如,一个业务发起方,一个业务相关方,上述多成员还可以为三个或更多个,例如,一个业务发起方,多个业务相关方。
此外,上述业务可以是资金交易业务,也可以是非资金交易业务。
例如,非资金交易业务可以是汽车租赁业务。该业务可以不存在中间方,第一成员可以是中介/平台,第二成员是某个汽车提供方的租赁公司,第一成员将实际租赁人的信息明文提交给第二成员进行确认是否可以租赁,然后第二成员对上述信息进行编码,并将编码数据和确认结果一起进行签名返回给第一成员。最后第一成员将脱敏的信息放到区块链上。
可以理解的是,本说明实施例业务处理的方法可以应用的实施场景有很多,只要是多成员参与一个区块链业务,并且需要各成员对于业务进行认可的场景均适用,在此不再赘述。
图3示出根据一个实施例的业务处理的方法流程图,所述方法由业务发起方执行,例如,图2所示场景中的第一成员。如图3所示,该实施例中业务处理的方法包括以下步骤:步骤31,针对目标业务向各业务相关方发送业务确认请求,所述业务确认请求中包括业务数据;步骤32,从每个所述业务相关方接收业务确认应答,所述业务确认应答中包括第一数据块和第一签名数据;其中,所述第一数据块包括由业务相关方采用预设编码方式对所述业务数据进行编码而生成的第一编码数据、第一确认结果和所述业务相关方的标识;所述第一签名数据为利用所述业务相关方的私钥对所述第一数据块进行签名计算得到的;步骤33,采用所述预设编码方式对所述业务数据进行编码,从而生成第二编码数据;以及生成第二确认结果;步骤34,利用所述业务发起方的私钥对包括第二编码数据、第二确认结果和所述业务发起方的标识的第二数据块进行签名,得到第二签名数据;步骤35,确定每个所述第一确认结果和所述第二确认结果均为确认通过时,通过区块链网络存储每个所述业务相关方的所述第一数据块和所述第一签名数据,以及所述业务发起方的所述第二数据块和所述第二签名数据。下面描述以上各个步骤的具体执行方式。
首先在步骤31,针对目标业务向各业务相关方发送业务确认请求,所述业务确认请求中包括业务数据。
本说明书实施例中,对于业务数据包含的内容不做限定,例如,可以包括用户的姓名、身份证号码、年龄等隐私信息,但并不限定于此。
接着在步骤32,从每个所述业务相关方接收业务确认应答,所述业务确认应答中包括第一数据块和第一签名数据;其中,所述第一数据块包括由业务相关方采用预设编码方式对所述业务数据进行编码而生成的第一编码数据、第一确认结果和所述业务相关方的标识;所述第一签名数据为利用所述业务相关方的私钥对所述第一数据块进行签名计算得到的。
可以理解的是,上述业务相关方的数目可以为多个,也可以为一个。
上述预设编码方式可以采用任一通过编码数据不容易获取原始数据的编码方式,例如,哈希编码方式。
上述第一确认结果用于指示业务相关方是否认可该目标业务。
上述签名数据可以用于证明身份,区块链的每个成员都有一个成员ID和一对公私钥,公钥是公开的,公私钥可以用于证明身份。例如,A可以用私钥对数据D进行签名,得到签名串S;A把数据D和签名串S发送给B;B通过A的公钥,对数据D和签名串S进行验证签名,如果匹配,说明B收到的数据确实来自于A。
然后在步骤33,采用所述预设编码方式对所述业务数据进行编码,从而生成第二编码数据;以及生成第二确认结果。
可以理解的是,业务发起方与业务相关方生成编码数据的方式相同,理论上,第一编码数据与第二编码数据也应用相同,后续可以由区块链网络对二者是否相同进行核对。
上述第二确认结果用于指示业务发起方是否认可该目标业务。
再在步骤34,利用所述业务发起方的私钥对包括第二编码数据、第二确认结果和所述业务发起方的标识的第二数据块进行签名,得到第二签名数据。
签名计算的方式,前面已有描述,在此不做赘述。
最后在步骤35,确定每个所述第一确认结果和所述第二确认结果均为确认通过时,通过区块链网络存储每个所述业务相关方的所述第一数据块和所述第一签名数据,以及所述业务发起方的所述第二数据块和所述第二签名数据。
在一个示例中,确定每个所述第一确认结果和所述第二确认结果均为确认通过时,还可以通过所述区块链网络处理所述目标业务。例如,通过所述区块链网络记录所述目标业务的处理结果信息;以及,通过所述区块链网络向每个所述业务相关方发送所述目标业务的处理结果信息,以使每个所述业务相关方处理所述目标业务。
通过本说明书实施例提供的方法,业务发起方向业务相关方发送业务数据,从而便于业务相关方对业务进行确认,但是业务相关方不会直接返回给业务发起方业务数据和确认结果,而是业务相关方对业务数据进行编码得到编码数据,将编码数据和确认结果返回给业务发起方,后续业务发起方不是直接将业务数据和确认结果存储在区块链网络中,而是将编码数据和确认结果作为一个数据块存储在区块链网络中,区块链成员不会知道业务数据,从而能够在利用区块链网络存储业务数据时,不会导致敏感数据的泄露。
图4示出根据另一个实施例的业务处理的方法流程图,所述方法由业务相关方执行,例如,图2所示场景中的第二成员或第三成员。如图4所示,该实施例中业务处理的方法包括以下步骤:步骤41,从业务发起方接收针对目标业务的业务确认请求,所述业务确认请求中包括业务数据;步骤42,根据所述业务数据,生成第一确认结果;步骤43,采用预设编码方式对所述业务数据进行编码,生成第一编码数据;步骤44,利用所述业务相关方的私钥对包含所述第一确认结果和所述第一编码数据的第一数据块进行签名,得到第一签名数据;步骤45,向所述业务发起方发送业务确认应答,所述业务确认应答中包括所述第一数据块和所述第一签名数据;以使所述业务发起方确定每个所述业务相关方的确认结果均为确认通过时,通过区块链网络存储每个所述业务相关方的所述第一数据块和所述第一签名数据,以及所述业务发起方的数据。下面描述以上各个步骤的具体执行方式。
首先在步骤41,从业务发起方接收针对目标业务的业务确认请求,所述业务确认请求中包括业务数据。
本说明书实施例中,对于业务数据包含的内容不做限定,例如,可以包括用户的姓名、身份证号码、年龄等隐私信息,但并不限定于此。
接着在步骤42,根据所述业务数据,生成第一确认结果。
上述第一确认结果用于指示业务相关方是否认可该目标业务。
然后在步骤43,采用预设编码方式对所述业务数据进行编码,生成第一编码数据。
可以理解的是,业务发起方与业务相关方生成编码数据的方式相同,理论上,第一编码数据与第二编码数据也应用相同,后续可以由区块链网络对二者是否相同进行核对。
再在步骤44,利用所述业务相关方的私钥对包含所述第一确认结果和所述第一编码数据的第一数据块进行签名,得到第一签名数据。
签名计算的方式,前面已有描述,在此不做赘述。
最后在步骤45,向所述业务发起方发送业务确认应答,所述业务确认应答中包括所述第一数据块和所述第一签名数据;以使所述业务发起方确定每个所述业务相关方的确认结果均为确认通过时,通过区块链网络存储每个所述业务相关方的所述第一数据块和所述第一签名数据,以及所述业务发起方的数据。
其中,所述业务发起方的数据包括所述业务发起方的所述第二数据块和所述第二签名数据,具体可以参见图3对应的描述。
在一个示例中,所述方法还包括:
从所述区块链网络接收所述目标业务的处理结果信息;
根据所述处理结果信息,处理所述目标业务。
通过本说明书实施例提供的方法,业务相关方从业务发起方接收业务数据,从而便于业务相关方对业务进行确认,但是业务相关方不会直接返回给业务发起方业务数据和确认结果,而是业务相关方对业务数据进行编码得到编码数据,将编码数据和确认结果返回给业务发起方,后续业务发起方不是直接将业务数据和确认结果存储在区块链网络中,而是将编码数据和确认结果作为一个数据块存储在区块链网络中,区块链成员不会知道业务数据,从而能够在利用区块链网络存储业务数据时,不会导致敏感数据的泄露。
图5示出根据另一个实施例的业务处理的方法流程图,所述方法由区块链网络执行,区块链网络可以简称为区块链,例如,图2所示场景中的区块链。如图5所示,该实施例中业务处理的方法包括以下步骤:
步骤51,从目标业务的业务发起方接收每个业务相关方的第一数据块和第一签名数据,以及所述业务发起方的第二数据块和第二签名数据;其中,所述第一数据块包括由业务相关方采用预设编码方式对业务数据进行编码而生成的第一编码数据、第一确认结果和所述业务相关方的标识;所述第一签名数据为利用所述业务相关方的私钥对所述第一数据块进行签名计算得到的;所述第二数据块包括由业务发起方采用所述预设编码方式对所述业务数据进行编码而生成的第二编码数据、第二确认结果和所述业务发起方的标识;所述第二签名数据为利用所述业务发起方的私钥对所述第二数据块进行签名计算得到的。
可以理解的是,业务发起方和业务相关方可以预先加入该区块链网络,成为该区块链网络的成员。
步骤52,存储每个所述业务相关方的所述第一数据块和所述第一签名数据,以及所述业务发起方的所述第二数据块和所述第二签名数据。
在一个示例中,步骤52之后,所述方法还可以包括:处理所述目标业务。例如,记录所述目标业务的处理结果信息;以及,向每个所述业务相关方发送所述目标业务的处理结果信息,以使每个所述业务相关方处理所述目标业务。
在一个示例中,步骤52之前,所述方法还可以包括:
进行如下各项核对:
核对所述业务相关方的标识和/或所述业务发起方的标识是否与所述目标业务的业务链路上的成员标识相匹配;
核对每个所述第一编码数据和所述第二编码数据是否相同;
利用每个所述业务相关方的公钥对每个所述业务相关方的所述第一数据块和所述第一签名数据进行签名验证,验证所述第一数据块和所述第一签名数据是否匹配;
利用所述业务发起方的公钥对所述业务发起方的所述第二数据块和所述第二签名数据进行签名验证,验证所述第二数据块和所述第二签名数据是否匹配;
确定所述各项核对的核对结果均为是。
作为示例,步骤52具体可以将每个所述业务相关方的所述第一数据块和所述第一签名数据,以及所述业务发起方的所述第二数据块和所述第二签名数据存储在一个区块中。
通过本说明书实施例提供的方法,区块链网络不是直接从业务发起方接收业务数据和确认结果,而是接收编码数据和确认结果,并且将编码数据和确认结果作为一个数据块存储在区块链网络中,区块链成员不会知道业务数据,从而能够在利用区块链网络存储业务数据时,不会导致敏感数据的泄露。
图6示出根据一个实施例的业务处理过程中各成员交互过程示意图。图7示出根据一个实施例的业务处理时序图。参照图6或图7,业务链路涉及第一成员、第二成员和第三成员,第一成员为业务发起方,第二成员和第三成员为业务相关方,业务的进行需要得到第一成员、第二成员和第三成员的许可。
根据另一方面的实施例,还提供一种业务处理的装置,所述装置设置于业务发起方。图8示出根据一个实施例的业务处理的装置的示意性框图。如图8所示,该装置800包括:
发送单元81,用于针对目标业务向各业务相关方发送业务确认请求,所述业务确认请求中包括业务数据;
接收单元82,用于从每个所述业务相关方接收业务确认应答,所述业务确认应答中包括第一数据块和第一签名数据;其中,所述第一数据块包括由业务相关方采用预设编码方式对所述业务数据进行编码而生成的第一编码数据、第一确认结果和所述业务相关方的标识;所述第一签名数据为利用所述业务相关方的私钥对所述第一数据块进行签名计算得到的;
编码单元83,用于采用所述预设编码方式对所述业务数据进行编码,从而生成第二编码数据;以及生成第二确认结果;
签名单元84,用于利用所述业务发起方的私钥对包括第二编码数据、第二确认结果和所述业务发起方的标识的第二数据块进行签名,得到第二签名数据;
存储单元85,用于确定所述接收单元82接收的每个所述第一确认结果和所述编码单元83生成的所述第二确认结果均为确认通过时,通过区块链网络存储所述接收单元82接收的每个所述业务相关方的所述第一数据块和所述第一签名数据,以及所述业务发起方的所述第二数据块和所述第二签名数据。
可选地,作为一个实施例,所述装置还包括:
处理单元,用于确定所述接收单元82接收的每个所述第一确认结果和所述第二确认结果均为确认通过时,通过所述区块链网络处理所述目标业务。
进一步地,所述处理单元,具体用于:
通过所述区块链网络记录所述目标业务的处理结果信息;以及,
通过所述区块链网络向每个所述业务相关方发送所述目标业务的处理结果信息,以使每个所述业务相关方处理所述目标业务。
通过本说明书实施例提供的装置,发送单元81向业务相关方发送业务数据,从而便于业务相关方对业务进行确认,但是业务相关方不会直接返回给接收单元82业务数据和确认结果,而是业务相关方对业务数据进行编码得到编码数据,将编码数据和确认结果返回给接收单元82,后续存储单元85不是直接将业务数据和确认结果存储在区块链网络中,而是将编码数据和确认结果作为一个数据块存储在区块链网络中,区块链成员不会知道业务数据,从而能够在利用区块链网络存储业务数据时,不会导致敏感数据的泄露。
根据另一方面的实施例,还提供一种业务处理的装置,所述装置设置于业务相关方。图9示出根据另一个实施例的业务处理的装置的示意性框图。如图9所示,该装置900包括:
接收单元91,用于从业务发起方接收针对目标业务的业务确认请求,所述业务确认请求中包括业务数据;
确认单元92,用于根据所述接收单元91接收的业务数据,生成第一确认结果;
编码单元93,用于采用预设编码方式对所述接收单元91接收的业务数据进行编码,生成第一编码数据;
签名单元94,用于利用所述业务相关方的私钥对包含所述第一确认结果和所述第一编码数据的第一数据块进行签名,得到第一签名数据;
发送单元95,用于向所述业务发起方发送业务确认应答,所述业务确认应答中包括所述第一数据块和所述第一签名数据;以使所述业务发起方确定每个所述业务相关方的确认结果均为确认通过时,通过区块链网络存储每个所述业务相关方的所述第一数据块和所述第一签名数据,以及所述业务发起方的数据。
可选地,作为一个实施例,
所述接收单元91,还用于从所述区块链网络接收所述目标业务的处理结果信息;
所述装置还包括:
处理单元,用于根据所述接收单元91接收的处理结果信息,处理所述目标业务。
通过本说明书实施例提供的装置,接收单元91从业务发起方接收业务数据,从而便于确认单元92对业务进行确认,但是发送单元95不会直接返回给业务发起方业务数据和确认结果,而是业务相关方对业务数据进行编码得到编码数据,将编码数据和确认结果返回给业务发起方,后续业务发起方不是直接将业务数据和确认结果存储在区块链网络中,而是将编码数据和确认结果作为一个数据块存储在区块链网络中,区块链成员不会知道业务数据,从而能够在利用区块链网络存储业务数据时,不会导致敏感数据的泄露。
根据另一方面的实施例,还提供一种业务处理的装置,所述装置设置于区块链网络,具体地,设置于区块链网络的节点,可以简称为区块链。图10示出根据另一个实施例的业务处理的装置的示意性框图。如图10所示,该装置1000包括:
接收单元1001,用于从目标业务的业务发起方接收每个业务相关方的第一数据块和第一签名数据,以及所述业务发起方的第二数据块和第二签名数据;其中,所述第一数据块包括由业务相关方采用预设编码方式对业务数据进行编码而生成的第一编码数据、第一确认结果和所述业务相关方的标识;所述第一签名数据为利用所述业务相关方的私钥对所述第一数据块进行签名计算得到的;所述第二数据块包括由业务发起方采用所述预设编码方式对所述业务数据进行编码而生成的第二编码数据、第二确认结果和所述业务发起方的标识;所述第二签名数据为利用所述业务发起方的私钥对所述第二数据块进行签名计算得到的;
存储单元1002,用于存储所述接收单元1001接收的每个所述业务相关方的所述第一数据块和所述第一签名数据,以及所述业务发起方的所述第二数据块和所述第二签名数据。
可选地,作为一个实施例,所述装置还包括:
处理单元,用于在所述存储单元1002存储每个所述业务相关方的所述第一数据块和所述第一签名数据,以及所述业务发起方的所述第二数据块和所述第二签名数据之后,处理所述目标业务。
进一步地,所述处理单元,具体用于:
记录所述目标业务的处理结果信息;以及,
向每个所述业务相关方发送所述目标业务的处理结果信息,以使每个所述业务相关方处理所述目标业务。
进一步地,所述装置还包括:
核对单元,用于在所述存储单元1002存储每个所述业务相关方的所述第一数据块和所述第一签名数据,以及所述业务发起方的所述第二数据块和所述第二签名数据之前,进行如下各项核对:
核对所述业务相关方的标识和/或所述业务发起方的标识是否与所述目标业务的业务链路上的成员标识相匹配;
核对每个所述第一编码数据和所述第二编码数据是否相同;
利用每个所述业务相关方的公钥对每个所述业务相关方的所述第一数据块和所述第一签名数据进行签名验证,验证所述第一数据块和所述第一签名数据是否匹配;
利用所述业务发起方的公钥对所述业务发起方的所述第二数据块和所述第二签名数据进行签名验证,验证所述第二数据块和所述第二签名数据是否匹配;
确定单元,用于确定所述核对单元得到的所述各项核对的核对结果均为是。
可选地,作为一个实施例,所述存储单元1002,具体用于将所述接收单元1001接收的每个所述业务相关方的所述第一数据块和所述第一签名数据,以及所述业务发起方的所述第二数据块和所述第二签名数据存储在一个区块中。
通过本说明书实施例提供的装置,接收单元1001不是直接从业务发起方接收业务数据和确认结果,而是接收编码数据和确认结果,并且存储单元1002将编码数据和确认结果作为一个数据块存储在区块链网络中,区块链成员不会知道业务数据,从而能够在利用区块链网络存储业务数据时,不会导致敏感数据的泄露。
根据另一方面的实施例,还提供一种业务处理的系统,所述系统包括第一成员业务系统、第二成员业务系统、区块链桥接系统和区块链。图11示出根据一个实施例的业务处理的系统的示意性框图。如图11所示,该系统的处理过程包括:
首先,第一成员(即业务发起方)向第一成员的区块链桥接系统发起交易确认请求,请求中的数据包括交易约定的明细数据(以下统称BIZ_DATA)。
接下来,第一成员的区块链桥接系统的接收模块收到请求后,经过发送模块将数据按照约定的格式发送给交易链路上的所有成员,发送的数据包括BIZ_DATA。
然后,第二成员(如果业务相关方还包括第三成员,则与第二成员采用相同的处理逻辑)的区块链桥接系统的接收模块收到请求后,将数据转发给第二成员的业务系统,进行交易确认,收到的数据包括BIZ_DATA。第二成员进行确认后,将确认结果(以下统称RESULT)返回给区块链桥接系统的接收模块。接收模块,将所述的BIZ_DATA和所述的结果传给脱敏模块处理。
再然后,第二成员的区块链桥接系统的脱敏模块,对所述的BIZ_DATA进行哈希(hash)处理(也可采用其他的编码方式),计算出对应的哈希编码(hash code)。然后,将hash code、RESULT传给签名模块。
再然后,第二成员的区块链桥接系统的签名模块,将所述的hash code、RESULT和第二成员预设的成员ID按照约定的格式作为一个数据块(以下统称CHECK_RESULT),然后用私钥计算签名(以下统称SIGNATURE)。
再然后,第二成员的区块链桥接系统的发送模块将所述的CHECK_RESULT和SIGNATURE返回给第一成员。
再然后,第一成员的区块链桥接系统的发送模块收到交易链路上所有成员返回的CHECK_RESULT和SIGNATURE后,解析并检查所有收到的CHECK_RESULT里的交易确认结果(所述的RESULT)是否都是确认通过,如果确认通过,则继续调用接入模块。
再然后,第一成员的区块链桥接系统的接入模块,将交易链路上所有成员的CHECK_RESULT和SIGNATURE发送给区块链进行处理。
再然后,区块链里的核对模块进行以下核对:解析所有的CHECK_RESULT,解析后的数据包括所述的hash code、RESULT和成员ID;核对解析得到的所有成员ID和交易链路上的所有成员ID是否匹配;核对每个成员的hash code是否完全相同;检查每一对CHECK_RESULT和SIGNATURE,通过成员ID拿到对应成员的公钥,利用公钥对CHECK_RESULT和SIGNATURE进行签名验证,验证是否匹配。
最后,区块链在上述核对都完成后就可以调用区块链的业务模块进行业务处理了。
根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图3至图5中任一所描述的方法。
根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图3至图5中任一所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。