基于区块链的交易方法、节点、电子设备、介质和系统与流程

文档序号:25991925发布日期:2021-07-23 21:04阅读:95来源:国知局
基于区块链的交易方法、节点、电子设备、介质和系统与流程

本公开涉及计算机技术领域,更具体地,涉及一种基于区块链的交易方法、区块链节点、电子设备、计算机可读存储介质和区块链系统。



背景技术:

区块链技术是一种去中心化的共识记账技术,该技术通过采用群体共识的方法保证交易的一致性。在交易中,由于有些交易信息为机要信息如:私人物品交易、专属信息分享、资产转移等,其具有机密性、隐私性和敏感性等特点,不适合向全体用户公开,因此需要对访问用户的身份进行验证和授权,以确保合法用户能够安全访问机要信息。

现有的数据传输方法,有的利用认证中心为合法用户颁发数字证书,用户访问机要数据前,需要认证中心提供数字证书进行的身份核验,以保证数据分享的安全性和机密性,类似于将认证中心作为第三方公证人进行身份认证,当认证中心存在系统故障,或因网络攻击受到破坏时,数据访问将受到影响,从而增加了数据泄露的风险。还有的基于身份加密进行数据传输,利用多个公私钥对基于地址计算法计算用户的公钥地址,以便验证用户身份的合法性,但此过程需要进行密钥交换,操作较为复杂。



技术实现要素:

本公开的一个方面提供了一种基于区块链的交易方法、区块链节点、电子设备、计算机可读存储介质和区块链系统。

本公开的一个方面提供了一种基于区块链的交易方法,所述区块链包括第一节点和第二节点,所述第一节点与所述第二节点相同或不同,所述方法应用于第一节点,包括:

接收交易的发送方客户端发送的交易请求,所述交易请求包括所述交易的接收方的身份标识和所述待交易数据所在存储空间的地址;

从所述交易请求中获取所述接收方的身份标识和所述待交易数据所在存储空间的地址,以及,从区块链中获取所述接收方的公钥;

利用所述接收方的公钥对所述地址加密,得到加密密文,并利用所述接收方的身份标识对所述加密密文签名,得到签名信息;

将包括所述加密密文和所述签名信息的数据报文发送给所述区块链中的所有节点。

可选地,所述利用所述接收方的公钥对所述地址加密,得到加密密文包括:

获取所述接收方预先设置的安全参数;

利用所述接收方的公钥以及所述安全参数对所述地址加密,得到所述加密密文;

其中,waddr为所述地址,kdb为所述接收方的公钥,mod为求余函数,n为所述安全参数,c为所述加密密文。

可选地,所述利用所述接收方的身份标识对所述加密密文签名,得到签名信息包括:

获取所述接收方预先设置的安全参数,以及,所述交易的标识;

对所述交易的标识签名,得到所述交易的标识的签名;

利用所述接收方的身份标识、所述交易的标识的签名、所述安全参数对所述加密密文签名,得到签名信息;

其中,s≡g.rf(t,c)(modn),g满足ge≡gidb(modn),e为大素数,gidb为所述接收方的身份标识,mod为求余函数,n为所述安全参数,e与n的阶互质,r为所述交易的标识,r∈z,f为单项函数,t为r的签名,满足t=re(modn),c为所述加密密文,s为所述签名信息。

可选地,所述交易请求还包括所述发送方的身份标识,所述将包括所述加密密文和所述签名信息的数据报文发送给所述区块链中的所有节点之前,包括:

从所述交易请求中获取所述发送方的身份标识,以及,从所述区块链中获取所述发送方的公钥、全局参数和校验码;

所述将包括所述加密密文和所述签名信息的数据报文发送给所述区块链中的所有节点包括:

将所述发送方的身份标识、所述发送方的公钥、所述加密密文、所述签名信息、所述接收方的身份标识、所述交易的标识、所述全局参数和所述校验码打包为所述数据报文;

将所述数据报文发送给所述区块链中的所有节点。

可选地,所述f为hash散列函数。

可选地,所述交易的标识为所述接收方的用户名或网络地址。

本公开的另一个方面提供了一种基于区块链的交易方法,所述区块链包括第一节点和第二节点,所述第一节点与所述第二节点相同或不同,所述方法应用于第二节点,包括:

接收数据报文,所述数据报文包括加密密文和签名信息;

从所述数据报文中获取所述签名信息,并验证所述签名信息;

若所述签名信息验证成功,则从所述数据报文中获取所述加密密文,并解密所述加密密文,得到待交易数据所在存储空间的地址;

根据所述地址获取所述待交易数据,并将所述待交易数据发送给交易的接收方客户端。

可选的,所述验证所述签名信息包括:

获取所述接收方的身份标识;

利用所述接收方的身份标识和所述交易的标识,验证所述签名信息。

可选的,所述利用所述接收方的身份标识和所述交易的标识,验证所述签名信息包括:

利用所述接收方的身份标识和所述交易的标识,计算得到比对签名信息;

判断所述签名信息是否和所述比对签名信息相同;

若相同,则所述签名信息验证成功;

其中,st≡g.rf(t,c)(modn),g满足ge≡gidb(modn),e为大素数,gidb为所述接收方的身份标识,mod为求余函数,n为任意两个大素数的乘积,e与n的阶互质,r为所述交易的标识,r∈z,f为单项函数,t为r的签名,满足t=re(modn),c为所述加密密文,st为所述比对签名信息。

可选的,所述解密所述加密密文包括:

获取预置的所述接收方的私钥;

利用所述接收方的私钥,解密所述加密密文。

可选的,所述利用所述接收方的私钥,解密所述加密密文包括:

利用所述接收方的私钥,解密所述加密密文,得到待交易数据所在存储空间的地址;

其中,c为所述加密密文,seb为所述接收方的私钥,mod为求余函数,n为两个大素数的乘积,waddr为所述待交易数据所在存储空间的地址。

本公开的另一个方面提供了一种区块链节点,所述区块链节点为区块链中的第一节点,所述第一节点包括:

第一接收模块,用于接收交易的发送方客户端发送的交易请求,所述交易请求包括所述交易的接收方的身份标识、所述交易的标识和所述待交易数据所在存储空间的地址;

第一获取模块,用于从所述交易请求中获取所述接收方的身份标识、所述交易的标识和所述待交易数据所在存储空间的地址,以及,从区块链中获取所述接收方的公钥;

加密模块,用于利用所述接收方的公钥对所述地址加密,得到加密密文;

签名模块,用于利用所述接收方的身份标识和所述交易的标识对所述加密密文签名,得到签名信息;

发送模块,用于将包括所述加密密文和所述签名信息的数据报文发送给所述第二节点。

本公开的另一个方面提供了一种区块链节点,所述区块链节点为区块链中的第二节点,所述第二节点包括:

第二接收模块,用于接收数据报文,所述数据报文包括加密密文和签名信息;

第二获取模块,用于从所述数据报文中获取所述签名信息;

验证模块,用于验证所述签名信息;

第三获取模块,用于若所述签名信息验证成功,则从所述数据报文中获取所述加密密文;

解密模块,用于解密所述加密密文,得到待交易数据所在存储空间的地址;

发送模块,用于根据所述地址获取所述待交易数据,并将所述待交易数据发送给交易的接收方客户端。

本公开的另一方面提供了一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时用于实现如上所述的方法。

本公开的另一方面提供了一种计算机可读存储介质,存储有计算机可执行指令,所述指令在被执行时用于实现如上所述的方法。

本公开的另一方面提供了一种区块链系统,包括如上所述的区块链节点。

根据本公开的实施例,第一节点利用接收方的公钥对待交易数据所在存储空间的地址加密,得到加密密文,并利用接收方的身份标识对加密密文签名,得到签名信息,将包括加密密文和签名信息的数据报文发送给区块链中的所有节点,使得第二节点接收数据报文,从数据报文中获取签名信息,并验证签名信息,若签名信息验证成功,则从数据报文中获取加密密文,并解密加密密文,得到待交易数据所在存储空间的地址,根据所述地址获取待交易数据,并将待交易数据发送给交易的接收方客户端。去中心化的区块链环境中无需依赖于第三方公证人参与,即可实现验证过程去中心化,并将待交易数据所在存储空间的地址进行传输,有效降低了交易数据在区块链网络传输的负担,提高了信息安全传递的效率。

附图说明

为了更完整地理解本公开及其优势,现在将参考结合附图的以下描述,其中:

图1为本公开实施例提供的一种区块链系统的示意图;

图2示意性示出了根据本公开实施例的基于区块链的交易方法的流程图;

图3示意性示出了根据本公开实施例的基于区块链的交易方法的流程图;

图4示意性示出了根据本公开实施例的基于区块链的交易方法的流程图;

图5示意性示出了根据本公开实施例的区块链节点的框图;

图6示意性示出了根据本公开实施例的区块链节点的框图;

图7示意性示出了根据本公开实施例的电子设备的框图。

具体实施方式

以下,将参照附图来描述本公开的实施例。但是应该理解,这些描述只是示例性的,而并非要限制本公开的范围。在下面的详细描述中,为便于解释,阐述了许多具体的细节以提供对本公开实施例的全面理解。然而,明显地,一个或多个实施例在没有这些具体细节的情况下也可以被实施。此外,在以下说明中,省略了对公知结构和技术的描述,以避免不必要地混淆本公开的概念。

在此使用的术语仅仅是为了描述具体实施例,而并非意在限制本公开。在此使用的术语“包括”、“包含”等表明了所述特征、步骤、操作和/或部件的存在,但是并不排除存在或添加一个或多个其他特征、步骤、操作或部件。

在此使用的所有术语(包括技术和科学术语)具有本领域技术人员通常所理解的含义,除非另外定义。应注意,这里使用的术语应解释为具有与本说明书的上下文相一致的含义,而不应以理想化或过于刻板的方式来解释。

在本公开的说明书和权利要求书及说明书附图中的术语“第一”、“第二”、“第三”等是用于区别不同的对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的操作或模块,而是可选的还包括没有列出的操作或模块,或可选的还包括对于这些过程、方法、系统、产品或设备固有的其它操作或模块。

本公开提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,电不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解地是,本公开所描述地实施例可以与其它实施例相结合。

区块链是一种去中心化的共识记账技术,区块链系统中具有多个区块链节点,每个区块链节点都存储有相同的区块链信息,通过采用共识机制的方法保证交易的一致性。

在本公开中,在一个交易中,只有一个发送方,对于接收方,可以有一个接收方,也可以有多个接收方,本公开实施例对接收方的数量不做具体限定。该发送方对应一个发送方客户端,每一个接收方对应一个接收方客户端。

在本公开中,除了发送方、接收方之外,还可包括参与方,参与方的数量可以为一个或多个,本公开对此不做限制,每一个参与方对应一个参与方客户端。

为了便于理解本公开实施例,下面先对本公开实施例所基于的其中一种基于区块链的交易系统架构示意图进行描述。请参阅图1,图1为本公开实施例提供的一种区块链系统的示意图,该区块链系统100包括:第一节点101、第二节点102,还可以包括第三节点103。

第一节点101是区块链系统100中的一个节点设备,在一场交易中,第一节点101的数量为一个。该节点设备可以是服务器、服务器集群等,例如,当第一节点101为服务器时,第一节点101接收第三节点103发送的交易请求,该交易请求包括该交易的接收方的身份标识、该交易的标识和该待交易数据所在存储空间的地址;然后从该交易请求中获取该接收方的身份标识、该交易的标识和该待交易数据所在存储空间的地址,以及,从区块链系统中获取该接收方的公钥;然后利用该接收方的公钥对该地址加密,得到加密密文,并利用该接收方的身份标识和该交易的标识对该加密密文签名,得到签名信息;最后,将包括该加密密文和该签名信息的数据报文发送给该第二节点102。

发送方客户端,也即可以表示交易的发送方,主要用于向第一节点101发送交易请求。该客户端所在的终端具体可以是移动电话、智能手表、可穿戴设备、平板设备、具有无线通信功能的手持设备等,本公开对此不做限制。发送方客户端可以通过区块链接口连接到区块链系统中的第一节点101上,实现写入或读取数据。

第二节点102是区块链系统100中的一个节点设备,在一场交易中,第二节点102的数量可以为一个或多个。该节点设备可以是服务器或服务器集群,例如,当第二节点102为服务器时,第二节点102接收第一节点101发送的数据报文,该数据报文包括加密密文和签名信息;然后从该数据报文中获取该签名信息,并验证该签名信息;若该签名信息验证成功,则从该数据报文中获取该加密密文,最后解密该加密密文,得到待交易数据所在存储空间的地址。根据该地址获取待交易数据,将该待交易数据发送给交易的接收方客户端。

接收方所在的客户端,也即可以表示交易的接收方,主要用于接收由第二节点102发送的与交易请求对应的交易数据。该客户端所在的终端具体可以是移动电话、智能手表、可穿戴设备、平板设备、具有无线通信功能的手持设备等,本公开对此不做限制。接收方客户端可以通过区块链接口连接到区块链系统中第二节点102上,实现写入或读取数据。

第三节点103是区块链系统100中的一个节点设备,该节点设备可以是服务器或者终端,在一场交易中,第三节点103的数量不做限制。参与方客户端通过区块链接口连接到区块链系统中第三节点103上。在本公开图1中,第三节点103的数量以6个为例。

可理解的,当发送方客户端和接收方客户端接入同一个节点时,第一节点101和第二节点102为同一节点。当发送方客户端和接收方客户端接入不个节点时,第一节点101和第二节点102为不同节点。当接收方客户端数量为多个时,多个接收方客户端可以分别接入一个第二节点102,也可以数个接收方客户端接入一个第二节点102,数个接收方客户端接入另一个第二节点102,本公开对此不做限制。

可以理解的是,图1中的区块链系统只是本公开实施例中的一种示例性的实施方式,本公开实施例中的交易系统架构包括但不限于以上示例。

图2示意性示出了根据本公开实施例的基于区块链的交易方法的流程图,该区块链包括第一节点和第二节点,该第一节点与该第二节点相同或不同,该方法应用于第一节点。

如图2所示,该基于区块链的交易方法可以包括操作s210~s250。

在操作s210,接收交易的发送方客户端发送的交易请求,该交易请求包括该交易的接收方的身份标识和该待交易数据所在存储空间的地址。

在操作s220,从该交易请求中获取该接收方的身份标识和该待交易数据所在存储空间的地址,以及,从区块链中获取该接收方的公钥。

在操作s230,利用该接收方的公钥对该地址加密,得到加密密文;

在操作s240,利用该接收方的身份标识对该加密密文签名,得到签名信息。

在操作s250,将包括该加密密文和该签名信息的数据报文发送给该区块链中的所有节点。

在本公开中,将数据报文发送给第二节点,可以是将该数据报文广播到区块链中所有的节点,使得第二节点收到该数据报文。

根据本公开实施例,利用接收方的公钥对待交易数据所在存储空间的地址进行加密,得到加密密文,利用该接收方的身份标识和该交易的标识对该加密密文签名,得到签名信息,将包括该加密密文和该签名信息的数据报文发送给该第二节点,使得第二节点进行验证时,无需依赖第三方认证中心提供数字证书进行身份核验,避免当认证中心存在系统故障,或因网络攻击受到破坏时,交易将受到影响,从而增加了数据泄露的风险。同时,不对待交易数据进行传输,有效降低了待交易数据在区块链中传输的负担。

在本公开其中一个实施例中,操作s230包括:获取该接收方预先设置的安全参数;利用该接收方的公钥以及该安全参数对该地址加密,得到该加密密文。

其中,waddr为该地址,kdb为该接收方的公钥,mod为求余函数,n为该安全参数,c为该加密密文。更多的,n=pq,pq为任意两个大素数,且{(n,p,q,a,b):ab≡1(modφ(n))},kdb、p和q均可以由接收方设置,或者,接收方所在的客户端随机设置。

在本公开其中一个实施例中,操作s240包括:获取该接收方预先设置的安全参数,以及,该交易的标识;对该交易的标识签名,得到该交易的标识的签名;利用该接收方的身份标识、该交易的标识的签名、该安全参数对该加密密文签名,得到签名信息。

其中,s≡g.rf(t,c)(modn),g满足ge≡gidb(modn),e为大素数,gidb为该接收方的身份标识,mod为求余函数,n为安全参数,e与n的阶互质,r为该交易的标识,r∈z,f为单项函数,t为r的签名,满足t=re(modn),c为该加密密文,s为该签名信息。更多的,n=pq,pq为任意两个大素数,且{(n,p,q,a,b):ab≡1(modφ(n))},kdb、p和q均可以由接收方设置,或者,接收方所在的客户端随机设置。

可理解的,根据欧拉扩展定理,当知道n和e时,g可计算出来。

在本公开其中一个实施例中,f为hash散列函数,以防止不同身份标识之间的乘法关系攻击(multiplicativerelationshipbetweentheidentities)。

在本公开中,区块链中的所有节点、发送方、接收方等均具有唯一标识。发送方、待交易数据和接收方均相同的交易为同一交易,发送方、待交易数据和接收方三者中存在任一不相同的交易为不同交易。或者,发送方和接收方均相同的交易为同一交易,发送方和接收方两者中存在任一不相同的交易为不同交易。或者,只要接收方相同的即为同一交易,本公开对此不做限制,不同的交易,交易的标识可以相同或者不同。交易的标识可以由发送方自行设定,或者由发送方客户端随机设定。在本公开其中一个实施例中,交易的标识为该接收方的用户名或网络地址。

图3示意性示出了根据本公开实施例的基于区块链的交易方法的流程图,该区块链包括第一节点和第二节点,该第一节点与该第二节点相同或不同,该方法应用于第一节点。

如图3所示,该基于区块链的交易方法可以包括操作s210~s250。

在操作s210,接收交易的发送方客户端发送的交易请求,该交易请求包括该交易的接收方的身份标识和该待交易数据所在存储空间的地址。

在操作s220,从该交易请求中获取该接收方的身份标识和该待交易数据所在存储空间的地址,以及,从区块链中获取该接收方的公钥。

在操作s230,利用该接收方的公钥对该地址加密,得到加密密文。

在操作s240,利用该接收方的身份标识对该加密密文签名,得到签名信息。

在操作s310,从该交易请求中获取该发送方的身份标识,以及,从该区块链中获取该发送方的公钥、全局参数和校验码。

在操作s320,将该发送方的身份标识、该发送方的公钥、该加密密文、该签名信息、该接收方的身份标识、该交易的标识、该全局参数和该校验码打包为该数据报文。

在操作s250,将包括该加密密文和该签名信息的数据报文发送给该区块链中的所有节点。

该校验码可用于检验数据报文是否完整,当数据报文中的数据丢失时,收到的数据报文中校验位上的校验码将发生改变,也即,当收到的数据报文中校验位上的校验码与发送时的不同,则收到的数据报文异常,此时结束交易。若相同,则证明收到的数据报文正常。

图4示意性示出了根据本公开实施例的基于区块链的交易方法的流程图,该区块链包括第一节点和第二节点,该第一节点与该第二节点相同或不同,该方法应用于第二节点。

如图4所示,该基于区块链的交易方法可以包括操作s410~s440。

在操作s410,接收数据报文,该数据报文包括加密密文和签名信息。

在操作s420,从该数据报文中获取该签名信息,并验证该签名信息。

在操作s430,若该签名信息验证成功,则从该数据报文中获取该加密密文,并解密该加密密文,得到待交易数据所在存储空间的地址。

在操作s440,根据该地址获取该待交易数据,并将该待交易数据发送给交易的接收方客户端。

在本公开中,第二节点接收的数据报文是由第一节点传输到区块链中所有节点上的,该数据报文中除了加密密文和签名信息还包括发送方的身份标识、发送方的公钥、接收方的身份标识、交易的标识、全局参数和校验码。可理解的,在验证签名信息之前,需先验证数据报文的完整性,具体可利用校验码进行完整性检查,若数据报文不完整,则结束操作,退出交易。

在本公开中,操作s420包括:获取该接收方的身份标识;利用该接收方的身份标识和该交易的标识,验证该签名信息。具体的,利用该接收方的身份标识和该交易的标识,计算得到比对签名信息;判断该签名信息是否和该比对签名信息相同;若相同,则该签名信息验证成功。

其中,利用公式st≡g.rf(t,c)(modn)计算比对签名信息g满足ge≡gidb(modn),e为大素数,gidb为该接收方的身份标识,mod为求余函数,n为任意两个大素数的乘积,e与n的阶互质,r为该交易的标识,r∈z,f为单项函数,t为r的签名,满足t=re(modn),c为该加密密文,st为该比对签名信息。

可理解的,在若比对签名信息与数据报文中的签名信息不相符,则结束操作,退出交易。

在本公开中,操作s430包括:获取预置的该接收方的私钥;利用该接收方的私钥,解密该加密密。具体的,利用该接收方的私钥,解密该加密密文,得到待交易数据所在存储空间的地址。

其中,利用公式c为该加密密文,seb为该接收方的私钥,mod为求余函数,n为两个大素数的乘积,waddr为该待交易数据所在存储空间的地址。

根据本公开实施例,先对接收到的数据报文中的签名信息进行验证,若成功,则再解密加密密文,得到待交易数据所在存储空间的地址,从而根据地址获取待交易数据,不依赖于第三方公证人的参与,通过传输待交易数据所在存储空间的地址,即可把待交易数据分享给接收方,有效降低了交易数据在区块链网络传输的负担,提高了信息安全传递的效率。

图5示意性示出了根据本公开实施例的区块链节点的框图。

如图5所示,该区块链节点为区块链中的第一节点101,该第一节点101包括:第一接收模块510、第一获取模块520、加密模块530、签名模块540和发送模块550。

第一接收模块510,用于接收交易的发送方客户端发送的交易请求,该交易请求包括该交易的接收方的身份标识、该交易的标识和该待交易数据所在存储空间的地址。

第一获取模块520,用于从该交易请求中获取该接收方的身份标识、该交易的标识和该待交易数据所在存储空间的地址,以及,从区块链中获取该接收方的公钥。

加密模块530,用于利用该接收方的公钥对该地址加密,得到加密密文。

签名模块540,用于利用该接收方的身份标识和该交易的标识对该加密密文签名,得到签名信息。

第一发送模块550,用于将包括该加密密文和该签名信息的数据报文发送给该第二节点。

在本公开其中一个实施例中,该加密模块530包括:第一获取子模块,用于获取该接收方预先设置的安全参数;第一加密子模块,用于利用该接收方的公钥以及该安全参数对该地址加密,得到该加密密文;其中,waddr为该地址,kdb为该接收方的公钥,mod为求余函数,n为该安全参数,c为该加密密文。

在本公开其中一个实施例中,该签名模块540包括:第二获取子模块,用于获取该接收方预先设置的安全参数,以及,该交易的标识;第一签名子模块,用于对该交易的标识签名,得到该交易的标识的签名;第二签名子模块,用于利用该接收方的身份标识、该交易的标识的签名、该安全参数对该加密密文签名,得到签名信息;其中,s≡g.rf(t,c)(modn).g满足ge≡gidb(modn),e为大素数,gidb为该接收方的身份标识,mod为求余函数,n为该安全参数,e与n的阶互质,r为该交易的标识,r∈z,f为单项函数,t为r的签名,满足t=re(modn),c为该加密密文,s为该签名信息。

在本公开其中一个实施例中,第一节点还包括:参数获取模块,用于从该交易请求中获取该发送方的身份标识,以及,从该区块链中获取该发送方的公钥、全局参数和校验码。该发送模块具体用于将该发送方的身份标识、该发送方的公钥、该加密密文、该签名信息、该接收方的身份标识、该交易的标识、该全局参数和该校验码打包为该数据报文;将该数据报文发送给该区块链中的所有节点。

在本公开其中一个实施例中,f为hash散列函数。

在本公开其中一个实施例中,该交易的标识为该接收方的用户名或网络地址。

图6示意性示出了根据本公开实施例的区块链节点的框图。

如图6所示,该区块链节点为区块链中的第二节点102,该第二节点102包括:第二接收模块610、第二获取模块620、验证模块630、第三获取模块640、解密模块650、发送模块660。

第二接收模块610,用于接收数据报文,该数据报文包括加密密文和签名信息。

第二获取模块620,用于从该数据报文中获取该签名信息。

验证模块630,用于验证该签名信息。

第三获取模块640,用于若该签名信息验证成功,则从该数据报文中获取该加密密文。

解密模块650,用于解密该加密密文,得到待交易数据所在存储空间的地址。

第二发送模块660,用于根据该地址获取该待交易数据,并将该待交易数据发送给交易的接收方客户端。

在本公开其中一个实施例中,验证模块630包括:第一获取子模块,用于获取该接收方的身份标识;第一验证子模块,利用该接收方的身份标识和该交易的标识,验证该签名信息。

在本公开其中一个实施例中,该第一验证子模块具体用于利用该接收方的身份标识和该交易的标识,计算得到比对签名信息;判断该签名信息是否和该比对签名信息相同;若相同,则该签名信息验证成功;其中,st≡g.rf(t,c)(modn),g满足ge≡gidb(modn),e为大素数,gidb为该接收方的身份标识,mod为求余函数,n为任意两个大素数的乘积,e与n的阶互质,r为该交易的标识,r∈z,f为单项函数,t为r的签名,满足t=re(modn),c为该加密密文,st为该比对签名信息。

在本公开其中一个实施例中,该解密模块650包括:第二获取子模块,用于获取预置的该接收方的私钥;第一解密子模块,用于利用该接收方的私钥,解密该加密密文。

在本公开其中一个实施例中,第一解密子模块具体用于利用该接收方的私钥,解密该加密密文,得到待交易数据所在存储空间的地址。其中,c为该加密密文,seb为该接收方的私钥,mod为求余函数,n为两个大素数的乘积,waddr为该待交易数据所在存储空间的地址。

需要说明的是,装置部分实施例中各模块/子模块等的实施方式、解决的技术问题、实现的功能、以及达到的技术效果分别与方法部分实施例中各对应的步骤的实施方式、解决的技术问题、实现的功能、以及达到的技术效果相同或类似,在此不再赘述。

根据本公开的实施例的模块、子模块、单元、子单元中的任意多个、或其中任意多个的至少部分功能可以在一个模块中实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以被拆分成多个模块来实现。根据本公开实施例的模块、子模块、单元、子单元中的任意一个或多个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式的硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,根据本公开实施例的模块、子模块、单元、子单元中的一个或多个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

例如第一接收模块510、第一获取模块520、加密模块530、签名模块540和第一发送模块550中的任意多个可以合并在一个模块中实现,或者其中的任意一个模块可以被拆分成多个模块。或者,这些模块中的一个或多个模块的至少部分功能可以与其他模块的至少部分功能相结合,并在一个模块中实现。根据本公开的实施例,第一接收模块510、第一获取模块520、加密模块530、签名模块540和第一发送模块550中的至少一个可以至少被部分地实现为硬件电路,例如现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、片上系统、基板上的系统、封装上的系统、专用集成电路(asic),或可以通过对电路进行集成或封装的任何其他的合理方式等硬件或固件来实现,或以软件、硬件以及固件三种实现方式中任意一种或以其中任意几种的适当组合来实现。或者,第一接收模块510、第一获取模块520、加密模块530、签名模块540和第一发送模块550中的至少一个可以至少被部分地实现为计算机程序模块,当该计算机程序模块被运行时,可以执行相应的功能。

图7示意性示出了根据本公开实施例的适于实现上文描述的基于区块链的交易方法的电子设备的方框图。图7示出的电子设备仅仅是一个示例,不应对本公开实施例的功能和使用范围带来任何限制。

如图7所示,根据本公开实施例的电子设备700包括处理器701,其可以根据存储在只读存储器(rom)702中的程序或者从存储部分708加载到随机访问存储器(ram)703中的程序而执行各种适当的动作和处理。处理器701例如可以包括通用微处理器(例如cpu)、指令集处理器和/或相关芯片组和/或专用微处理器(例如,专用集成电路(asic)),等等。处理器701还可以包括用于缓存用途的板载存储器。处理器701可以包括用于执行根据本公开实施例的方法流程的不同动作的单一处理单元或者是多个处理单元。

在ram703中,存储有系统700操作所需的各种程序和数据。处理器701、rom702以及ram703通过总线704彼此相连。处理器701通过执行rom702和/或ram703中的程序来执行根据本公开实施例的方法流程的各种操作。需要注意,该程序也可以存储在除rom702和ram703以外的一个或多个存储器中。处理器701也可以通过执行存储在该一个或多个存储器中的程序来执行根据本公开实施例的方法流程的各种操作。

根据本公开的实施例,系统700还可以包括输入/输出(i/o)接口705,输入/输出(i/o)接口705也连接至总线704。系统700还可以包括连接至i/o接口705的以下部件中的一项或多项:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至i/o接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。

根据本公开的实施例,根据本公开实施例的方法流程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读存储介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被处理器701执行时,执行本公开实施例的系统中限定的上述功能。根据本公开的实施例,上文描述的系统、设备、装置、模块、单元等可以通过计算机程序模块来实现。

本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施例中描述的设备/装置/系统中所包含的;也可以是单独存在,而未装配入该设备/装置/系统中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被执行时,实现根据本公开实施例的方法。

本公开还提供了一种区块链系统,包括如上述实施例中描述的区块链节点。该区块链系统的结构可如图1所示。

附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本领域技术人员可以理解,尽管已经参照本公开的特定示例性实施例示出并描述了本公开,但是本领域技术人员应该理解,在不背离所附权利要求及其等同物限定的本公开的精神和范围的情况下,可以对本公开进行形式和细节上的多种改变。因此,本公开的范围不应该限于上述实施例,而是应该不仅由所附权利要求来进行确定,还由所附权利要求的等同物来进行限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1