一种跨区块链的交易身份确认方法及装置
文献发布时间:2023-06-19 09:24:30
技术领域
本发明涉及金融科技(Fintech)领域中的区块链(blockchain)领域,尤其涉及一种跨区块链的交易身份确认方法及装置。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出的更高的要求。金融交易常与区块链(blockchain)技术相结合。目前随着区块链技术的发展,跨链交易的场景逐渐出现。
但是,目前的跨链解决方案中,同一个用户分别在多条区块链上有不同的身份。举例来说,一个用户在两条区块链上有两个账户,在两条区块链上发起了两笔关联交易,但交易的签名仍然是区块链上原生账户完成的。然而,这样以来,交易最终零散地分布在各个区块链上,对于同一用户在不同链上的两笔交易,并不知晓是同一用户发起的。这不利于跨链场景下交易身份的监管,是一个亟待解决的问题。
发明内容
本发明提供一种跨区块链的交易身份确认方法及装置,解决了现有技术中同一用户在不同链上的两笔交易,并不知晓是同一用户发起的问题。
第一方面,本发明提供一种跨区块链的交易身份确认方法,包括:获取第一交易的公钥和第二交易的公钥;所述第一交易为第一区块链上第一用户的交易,所述第二交易为第二区块链上第二用户的交易;所述第一交易的公钥是所述第一用户在所述第一区块链上的公钥所述第二交易的公钥是所述第二用户在所述第二区块链上的公钥;所述第一区块链和所述第二区块链均为区块链系统中的区块链;根据所述第一交易的公钥从所述第一区块链获取第一身份管理信息,并根据所述第二交易的公钥从所述第二区块链获取第二身份管理信息;所述第一身份管理信息包括:所述第一用户在所述区块链系统中除所述第一区块链之外区块链上的公钥;所述第二身份管理信息包括:所述第二用户在所述区块链系统中除所述第二区块链之外区块链上的公钥;若所述第二身份管理信息包括所述第一交易的公钥,且所述第一身份管理信息包括所述第二交易的公钥,则确定所述第一用户和所述第二用户为同一用户,从而确定所述第一交易和所述第二交易为同一用户发起的交易。
上述方法中,所述第一交易为第一区块链上第一用户的交易,所述第二交易为第二区块链上第二用户的交易,在并不知悉所述第一交易与所述第二交易是否为同一用户发起的情况下,可以先获取第一交易的公钥和第二交易的公钥,可以根据所述第一交易的公钥从所述第一区块链获取第一身份管理信息,并根据所述第二交易的公钥从所述第二区块链获取第二身份管理信息所述第二交易的公钥在所述第二区块链上对应第二身份管理信息,而所述第一身份管理信息记录了所述第一用户在所述区块链系统中除所述第一区块链之外区块链上的公钥,所述第二身份管理信息记录了所述第二用户在所述区块链系统中除所述第二区块链之外区块链上的公钥,因此,如果确定了所述第二身份管理信息包括所述第一交易的公钥,且所述第一身份管理信息包括所述第二交易的公钥,便说明所述第一交易的公钥是所述第二用户在所述第一区块链上的公钥,所述第二交易的公钥是所述第一用户在所述第二区块链上的公钥,也就是说,所述第一用户和所述第二用户为同一用户,即所述第一交易和所述第二交易为同一用户发起的交易,从而提供了一种跨区块链的交易身份确认方法。
可选的,所述第一身份管理信息还包括:所述第一用户在所述区块链系统中除所述第一区块链之外区块链上的公钥签名,其中,任一区块链的公钥签名是根据所述第一用户在所述第一区块链的私有信息对该区块链的公钥进行签名得到的;所述第二身份管理信息还包括:所述第二用户在所述区块链系统中除所述第二区块链之外区块链上的公钥签名,其中,任一区块链的公钥签名是根据所述第二用户在所述第二区块链的私有信息对该区块链的公钥进行签名得到的;所述确定所述第一用户和所述第二用户为同一用户之前,还包括:确定所述第一交易的公钥在所述第二身份管理信息中对应的公钥签名验签通过及所述第二交易的公钥在所述第一身份管理信息中对应的公钥签名验签通过。
上述方法中,所述第一身份管理信息还包括:所述第一用户在所述区块链系统中除所述第一区块链之外区块链上的公钥签名,且是通过私有信息对该区块链的公钥进行签名得到的,所以所述第一身份管理信息中的公钥签名可用于验证交易的公钥是否确实为某个公钥,同理所述第二身份管理信息中的公钥签名也可用于验证交易的公钥是否确实为某个公钥,从而通过增加公钥签名验签通过的环节,提升了交易身份确认的可靠性。
可选的,所述第一用户在所述第一区块链的私有信息具体为所述第一用户在所述第一区块链的私钥;所述第二用户在所述第二区块链的私有信息具体为所述第二用户在所述第二区块链的私钥。
上述方法中,所述第一用户在所述第一区块链的私有信息为所述第一用户在所述第一区块链的私钥,由于私钥是和公钥对应的私有信息,从而公钥签名公钥的耦合性更强,更方便地验证公钥签名。
可选的,所述区块链系统中各区块链的公钥签名是采用不同的签名算法得到的。
上述方式下,通过不同的签名算法,得到基于不同签名算法的公钥签名,从而提升了验签过程的安全性。
可选的,所述第一身份管理信息和所述第一交易的公钥存储在所述第一区块链的第一智能合约中;所述第二身份管理信息和所述第二交易的公钥存储在所述第二区块链的第二智能合约中;所述根据所述第一交易的公钥从所述第一区块链获取第一身份管理信息,并根据所述第二交易的公钥从所述第二区块链获取第二身份管理信息,包括:根据所述第一交易的公钥,调用所述第一智能合约,获得所述第一身份管理信息;根据所述第二交易的公钥,调用所述第二智能合约,获得所述第二身份管理信息。
上述方式下,通过智能合约存储交易的公钥,从而锁定了访问身份管理信息的权限,根据交易的公钥,调用智能合约,才能获得身份管理信息,从而增加了身份管理信息的安全性。
可选的,所述第一交易的公钥和所述第一身份管理信息以键值对形式存储在所述第一区块链;所述第二交易的公钥和所述第二身份管理信息以键值对形式存储在所述第二区块链。
上述方式下,通过键值对形式增加了身份管理信息在区块链上的存储效率。
可选的,若确定所述第二身份管理信息不包括所述第一交易的公钥,或者所述第一身份管理信息不包括所述第二交易的公钥,则确定所述第一用户和所述第二用户为不同用户,从而确定所述第一交易和所述第二交易为不同用户发起的交易。
上述方式下,提供了一种确定所述第一用户和所述第二用户为不同用户的方法。
第二方面,本发明提供一种跨区块链的交易身份确认装置,包括:获取模块,用于获取第一交易的公钥和第二交易的公钥;所述第一交易为第一区块链上第一用户的交易,所述第二交易为第二区块链上第二用户的交易;所述第一交易的公钥是所述第一用户在所述第一区块链上的公钥;所述第二交易的公钥是所述第二用户在所述第二区块链上的公钥;所述第一区块链和所述第二区块链均为区块链系统中的区块链;处理模块,用于根据所述第一交易的公钥从所述第一区块链获取第一身份管理信息,并根据所述第二交易的公钥从所述第二区块链获取第二身份管理信息;所述第一身份管理信息包括:所述第一用户在所述区块链系统中除所述第一区块链之外区块链上的公钥;所述第二身份管理信息包括:所述第二用户在所述区块链系统中除所述第二区块链之外区块链上的公钥;所述处理模块,还用于若所述第二身份管理信息包括所述第一交易的公钥,且所述第一身份管理信息包括所述第二交易的公钥,则确定所述第一用户和所述第二用户为同一用户,从而确定所述第一交易和所述第二交易为同一用户发起的交易。
可选的,所述第一身份管理信息还包括:所述第一用户在所述区块链系统中除所述第一区块链之外区块链上的公钥签名,其中,任一区块链的公钥签名是根据所述第一用户在所述第一区块链的私有信息对该区块链的公钥进行签名得到的;所述第二身份管理信息还包括:所述第二用户在所述区块链系统中除所述第二区块链之外区块链上的公钥签名,其中,任一区块链的公钥签名是根据所述第二用户在所述第二区块链的私有信息对该区块链的公钥进行签名得到的;所述处理模块还用于:确定所述第一交易的公钥在所述第二身份管理信息中对应的公钥签名验签通过及所述第二交易的公钥在所述第一身份管理信息中对应的公钥签名验签通过。
可选的,所述第一用户在所述第一区块链的私有信息具体为所述第一用户在所述第一区块链的私钥;所述第二用户在所述第二区块链的私有信息具体为所述第二用户在所述第二区块链的私钥。
可选的,所述区块链系统中各区块链的公钥签名是采用不同的签名算法得到的。
可选的,所述第一身份管理信息和所述第一交易的公钥存储在所述第一区块链的第一智能合约中;所述第二身份管理信息和所述第二交易的公钥存储在所述第二区块链的第二智能合约中;所述处理模块具体用于:根据所述第一交易的公钥,调用所述第一智能合约,获得所述第一身份管理信息;根据所述第二交易的公钥,调用所述第二智能合约,获得所述第二身份管理信息。
可选的,所述第一交易的公钥和所述第一身份管理信息以键值对形式存储在所述第一区块链;所述第二交易的公钥和所述第二身份管理信息以键值对形式存储在所述第二区块链。
可选的,所述处理模块还用于:若确定所述第二身份管理信息不包括所述第一交易的公钥,或者所述第一身份管理信息不包括所述第二交易的公钥,则确定所述第一用户和所述第二用户为不同用户,从而确定所述第一交易和所述第二交易为不同用户发起的交易。
上述第二方面及第二方面各个可选装置的有益效果,可以参考上述第一方面及第一方面各个可选方法的有益效果,这里不再赘述。
第三方面,本发明提供一种计算机设备,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个可选的方法。
第四方面,本发明提供一种存储介质,包括程序或指令,当所述程序或指令被执行时,用以执行上述第一方面及第一方面各个可选的方法。
本发明的这些方面或其他方面在以下实施例的描述中会更加简明易懂。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种跨区块链的交易身份确认方法对应的流程示意图;
图2为本发明实施例提供的一种跨区块链的交易身份方法中身份注册的示意图;
图3为本发明实施例提供的一种跨区块链的交易身份确认装置的结构示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在金融机构(银行机构、保险机构或证券机构)在进行业务(如银行的贷款业务、存款业务等)运转过程中,金融交易常与区块链(blockchain)技术相结合,同一个用户分别在多条区块链上有不同的身份。这样以来,交易最终零散地分布在各个区块链上,对于同一用户在不同链上的两笔交易,并不知晓是同一用户发起的。这不利于跨链场景下交易身份的监管。这种情况不符合银行等金融机构的需求,无法保证金融机构各项业务的高效运转。为此,如图1所示,本发明提供一种跨区块链的交易身份确认方法。
步骤101:获取第一交易的公钥和第二交易的公钥。
步骤102:根据所述第一交易的公钥从所述第一区块链获取第一身份管理信息,并根据所述第二交易的公钥从所述第二区块链获取第二身份管理信息。
步骤103:若所述第二身份管理信息包括所述第一交易的公钥,且所述第一身份管理信息包括所述第二交易的公钥,则确定所述第一用户和所述第二用户为同一用户,从而确定所述第一交易和所述第二交易为同一用户发起的交易。
需要说明的是,步骤101~步骤103中,所述第一交易为第一区块链上第一用户的交易,所述第二交易为第二区块链上第二用户的交易;所述第一交易的公钥是所述第一用户在所述第一区块链上的公钥;所述第二交易的公钥是所述第二用户在所述第二区块链上的公钥;所述第一区块链和所述第二区块链均为区块链系统中的区块链;所述第一身份管理信息包括:所述第一用户在所述区块链系统中除所述第一区块链之外区块链上的公钥;所述第二身份管理信息包括:所述第二用户在所述区块链系统中除所述第二区块链之外区块链上的公钥。
显然,步骤101~步骤103中是一种基于区块链原有密码体制的面向跨链场景的轻量化身份注册方法,这种方法无需引入其它的密码学体制,也无需新的机构介入,只需要在第一区块链和第二区块链中存储相应的身份管理信息,获得交易的公钥时,直接对比即可,整体来看,成本低效率高。
需要说明的是,步骤101之前,用户在每个区块链上存储有该用户在该区块链上的身份管理信息,举例来说,第一用户在第一区块链中存储第一身份管理信息,第二用户在第二区块链中存储第二身份管理信息。可以通过一个注册过程来完成,如图2所示,具体如下:
在一个存在n条区块链的跨链场景中,每条链采用各自的签名算法,用户在每条链上都存储着在该链上的身份管理信息,n为正整数。
举例来说,用户A在每条链都有一对签名公私钥(sk
…
…
其中Sig
可以将n条区块链中除第i条区块链之外区块链的公钥的集合,作为用户A在第i条区块链上的身份管理信息,记为Identity
那么Identity
对于每一条区块链,用户A都按照在第i条区块链上的步骤,创建身份管理信息,还可以得到Identity
需要说明的是,步骤101~步骤103还可以配合其他信息来联合确认交易的身份,一种可选实施方式(以下称为公钥签名的实施方式)如下:
所述第一身份管理信息还包括:所述第一用户在所述区块链系统中除所述第一区块链之外区块链上的公钥签名,其中,任一区块链的公钥签名是根据所述第一用户在所述第一区块链的私有信息对该区块链的公钥进行签名得到的;所述第二身份管理信息还包括:所述第二用户在所述区块链系统中除所述第二区块链之外区块链上的公钥签名,其中,任一区块链的公钥签名是根据所述第二用户在所述第二区块链的私有信息对该区块链的公钥进行签名得到的,基于此,在步骤103中,确定所述第一用户和所述第二用户为同一用户之前,可以执行以下步骤:
确定所述第一交易的公钥在所述第二身份管理信息中对应的公钥签名验签通过及所述第二交易的公钥在所述第一身份管理信息中对应的公钥签名验签通过。
那么Identity
同样的,对于每一条区块链,用户A都按照在第i条区块链上的步骤,创建身份管理信息,还可以得到Identity
公钥签名的实施方式中,私有信息具体可以如下:
所述第一用户在所述第一区块链的私有信息具体为所述第一用户在所述第一区块链的私钥;所述第二用户在所述第二区块链的私有信息具体为所述第二用户在所述第二区块链的私钥。
公钥签名的实施方式中,可以采用如下设置:
所述区块链系统中各区块链的公钥签名是采用不同的签名算法得到的。
举例来说,区块链1采用签名算法1,区块链2采用签名算法2,…,区块链n采用签名算法n,这样以来,可以增加公钥签名的多样性,进一步增加交易身份确认的可靠性。
一种可选实施方式(以下简称智能合约的实施方式)中,身份管理信息和公钥可以存储在智能合约,具体来说:
所述第一身份管理信息和所述第一交易的公钥存储在所述第一区块链的第一智能合约中;所述第二身份管理信息和所述第二交易的公钥存储在所述第二区块链的第二智能合约中。基于此,步骤102可以按照如下方式执行:
根据所述第一交易的公钥,调用所述第一智能合约,获得所述第一身份管理信息;根据所述第二交易的公钥,调用所述第二智能合约,获得所述第二身份管理信息。
需要说明的是,所述第一身份管理信息和所述第一交易的公钥在第一智能合约中存在对应关系,当调用智能合约时,通过所述第一交易的公钥便能知悉所述第一交易的公钥对应的所述第一身份管理信息;同理,通过所述第二交易的公钥便能知悉所述第二交易的公钥对应的所述第二身份管理信息。
一种可选实施方式中,身份管理信息和公钥可以按照以下方式存储:
所述第一交易的公钥和所述第一身份管理信息以键值对形式存储在所述第一区块链;所述第二交易的公钥和所述第二身份管理信息以键值对形式存储在所述第二区块链。
需要说明的是,上述实施方式既可以直接存储在区块链中,也可以与智能合约的实施方式结合,存储在智能合约中。
举例来说,将拼接好的身份管理信息以键值对(Key-Value)的方式保存到第i条链的身份管理合约,其中键Key为用户A在第i条链的公钥
一种可选实施方式中,若确定所述第二身份管理信息不包括所述第一交易的公钥,或者所述第一身份管理信息不包括所述第二交易的公钥,则确定所述第一用户和所述第二用户为不同用户,从而确定所述第一交易和所述第二交易为不同用户发起的交易。
结合步骤101~步骤103所述的方法及可选方法,举例来说,一种可能的过程具体如下:
获取第一交易(区块链i的交易tx
然后以pk
如果满足以下条件:
pk
其中∈表示属于,&&表示并且,==表示相等,Vef
显然,通过上述方式用户不同链之间的账户以互相签名的方式两两绑定,所以不会存在用户冒认其它人账户的情况。
下面基于步骤101~步骤103所述的方法及可选方法的描述,详细介绍本申请提供的一种跨区块链的交易身份确认方法,具体如下:
举例来说,区块链系统共有三条区块链。区块链1,区块链2使用的签名算法和曲线是ECDSA-secp256k1,公钥130字节,签名130字节;区块链3使用签名算法和曲线是ECDSA-secp256r1,公钥132字节,签名258字节。需要说明的是,其公钥和签名都是以“0x”为前缀16进制的字符串。使用的哈希算法都是SHA256。用户A的注册方式如下:
用户A分别使用一条区块链的私钥对其它两条区块链的公钥进行签名,得到:
区块链1的两个签名:
区块链2的两个签名:
区块链3的两个签名:
区块链1和区块链2的签名是两个130字节的字符串,区块链3的签名是两个258字节的字符串。
拼接公钥和签名得到在三条区块链注册的身份管理信息:
区块链1的身份管理信息:
区块链2的身份管理信息:
区块链3的身份管理信息:
其中区块链1,区块链2的身份管理信息是130+130+132+130=522字节的字符串,区块链3的身份信息是130+258+130+258=776字节的字符串。
分别在三条区块链的身份管理合约以key-value方式注册身份信息:
区块链1的键值(kv)对:
区块链2的键值(kv)对:
区块链3的键值(kv)对:
交易身份的确认方法:
获取区块链1的交易tx
然后以pk
若满足以下条件:pk
如图3所示,本发明提供一种跨区块链的交易身份确认装置,包括:获取模块301,用于获取第一交易的公钥和第二交易的公钥;所述第一交易为第一区块链上第一用户的交易,所述第二交易为第二区块链上第二用户的交易;所述第一交易的公钥是所述第一用户在所述第一区块链上的公钥;所述第二交易的公钥是所述第二用户在所述第二区块链上的公钥;所述第一区块链和所述第二区块链均为区块链系统中的区块链;处理模块302,用于根据所述第一交易的公钥从所述第一区块链获取第一身份管理信息,并根据所述第二交易的公钥从所述第二区块链获取第二身份管理信息;所述第一身份管理信息包括:所述第一用户在所述区块链系统中除所述第一区块链之外区块链上的公钥;所述第二身份管理信息包括:所述第二用户在所述区块链系统中除所述第二区块链之外区块链上的公钥;所述处理模块302,还用于若所述第二身份管理信息包括所述第一交易的公钥,且所述第一身份管理信息包括所述第二交易的公钥,则确定所述第一用户和所述第二用户为同一用户,从而确定所述第一交易和所述第二交易为同一用户发起的交易。
可选的,所述第一身份管理信息还包括:所述第一用户在所述区块链系统中除所述第一区块链之外区块链上的公钥签名,其中,任一区块链的公钥签名是根据所述第一用户在所述第一区块链的私有信息对该区块链的公钥进行签名得到的;所述第二身份管理信息还包括:所述第二用户在所述区块链系统中除所述第二区块链之外区块链上的公钥签名,其中,任一区块链的公钥签名是根据所述第二用户在所述第二区块链的私有信息对该区块链的公钥进行签名得到的;所述处理模块302还用于:确定所述第一交易的公钥在所述第二身份管理信息中对应的公钥签名验签通过及所述第二交易的公钥在所述第一身份管理信息中对应的公钥签名验签通过。
可选的,所述第一用户在所述第一区块链的私有信息具体为所述第一用户在所述第一区块链的私钥;所述第二用户在所述第二区块链的私有信息具体为所述第二用户在所述第二区块链的私钥。
可选的,所述区块链系统中各区块链的公钥签名是采用不同的签名算法得到的。
可选的,所述第一身份管理信息和所述第一交易的公钥存储在所述第一区块链的第一智能合约中;所述第二身份管理信息和所述第二交易的公钥存储在所述第二区块链的第二智能合约中;所述处理模块302具体用于:根据所述第一交易的公钥,调用所述第一智能合约,获得所述第一身份管理信息;根据所述第二交易的公钥,调用所述第二智能合约,获得所述第二身份管理信息。
可选的,所述第一交易的公钥和所述第一身份管理信息以键值对形式存储在所述第一区块链;所述第二交易的公钥和所述第二身份管理信息以键值对形式存储在所述第二区块链。
可选的,所述处理模块302还用于:若确定所述第二身份管理信息不包括所述第一交易的公钥,或者所述第一身份管理信息不包括所述第二交易的公钥,则确定所述第一用户和所述第二用户为不同用户,从而确定所述第一交易和所述第二交易为不同用户发起的交易。
基于同一发明构思,本发明实施例还提供了一种计算机设备,包括程序或指令,当所述程序或指令被执行时,如本发明实施例提供的跨区块链的交易身份确认方法及任一可选方法被执行。
基于同一发明构思,本发明实施例还提供了一种计算机可读存储介质,包括程序或指令,当所述程序或指令被执行时,如本发明实施例提供的跨区块链的交易身份确认方法及任一可选方法被执行。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
- 一种跨区块链的交易身份确认方法及装置
- 一种跨区块链的交易同步方法和装置