基于联盟链的交易方法、电子装置及可读存储介质与流程

文档序号:16362802发布日期:2018-12-22 08:15阅读:188来源:国知局
基于联盟链的交易方法、电子装置及可读存储介质与流程

本发明涉及计算机技术领域,尤其涉及一种基于联盟链的交易方法、电子装置及可读存储介质。

背景技术

在现有的联盟链类型的区块链中进行交易时,只能实现对交易客户端用户身份的认证,而针对用户的交易信息没有相应的处理,从而导致用户的交易信息可能被非法拦截并被篡改,而在交易提交的时候,联盟链类型的区块链中实际上也无法感知交易信息是否被篡改,这给区块链的信息安全带来了极大的风险。



技术实现要素:

本发明的目的在于提供一种基于联盟链的交易方法、电子装置及可读存储介质,旨在提高联盟链中交易的安全性。

为实现上述目的,本发明提供一种电子装置,所述电子装置包括存储器、处理器,所述存储器上存储有可在所述处理器上运行的基于联盟链的交易系统,所述基于联盟链的交易系统被所述处理器执行时实现如下步骤:

接收联盟链上交易发起方确定好的交易信息;

从预设的ca认证中心申请获取加密公钥,利用获取的加密公钥对确定好的交易信息进行加密操作;

将加密后的交易信息返回至所述交易发起方;

接收所述交易发起方利用加密后的交易信息在所述联盟链上进行交易生成区块后流转的交易信息;

提取出流转的交易信息中的加密公钥,并在所述预设的ca认证中心验证提取的加密公钥是否为所述预设的ca认证中心发放,若是,则从所述预设的ca认证中心获取与提取的加密公钥对应的解密私钥,利用所述解密私钥对流转的交易信息进行解密;

基于解密后的交易信息更新所述联盟链的账本,以成功完成交易。

优选地,在所述接收联盟链上交易发起方确定好的交易信息的步骤之后,还包括:

从预设的ca认证中心申请获取签名公钥,利用获取的签名公钥对所述交易信息进行签名操作,并利用获取的加密公钥对签名后的交易信息进行加密操作;

所述利用所述解密私钥对流转的交易信息进行解密之后,还包括:

对解密后交易信息的签名公钥进行签名认证,若签名认证通过,则基于解密后的交易信息更新所述联盟链的账本,以成功完成交易。

优选地,若在所述预设的ca认证中心验证提取的加密公钥不是所述预设的ca认证中心发放或者对解密后交易信息的签名公钥的签名认证不通过,则将所述交易发起方利用加密后的交易信息在所述联盟链上进行交易生成的区块标记为无效区块,不对所述联盟链的账本进行更新。

优选地,在所述接收联盟链上交易发起方确定好的交易信息的步骤之后,还包括:

对所述交易信息利用散列算法算出对应的第一哈希值,并将算出的第一哈希值加入所述交易信息中;

在对解密后交易信息的签名公钥进行签名认证通过后,还包括:

对解密后的交易信息利用散列算法算出对应的第二哈希值,将算出的第二哈希值与所述交易信息中的第一哈希值进行比对;

若算出的第二哈希值与所述交易信息中的第一哈希值相同,则基于解密后的交易信息更新所述联盟链的账本,以成功完成交易;

若算出的第二哈希值与所述交易信息中的第一哈希值不同,则将所述交易发起方利用加密后的交易信息在所述联盟链上进行交易生成的区块标记为无效区块,不对所述联盟链的账本进行更新。

此外,为实现上述目的,本发明还提供一种基于联盟链的交易方法,所述基于联盟链的交易方法包括:

接收联盟链上交易发起方确定好的交易信息;

从预设的ca认证中心申请获取加密公钥,利用获取的加密公钥对确定好的交易信息进行加密操作;

将加密后的交易信息返回至所述交易发起方;

接收所述交易发起方利用加密后的交易信息在所述联盟链上进行交易生成区块后流转的交易信息;

提取出流转的交易信息中的加密公钥,并在所述预设的ca认证中心验证提取的加密公钥是否为所述预设的ca认证中心发放,若是,则从所述预设的ca认证中心获取与提取的加密公钥对应的解密私钥,利用所述解密私钥对流转的交易信息进行解密;

基于解密后的交易信息更新所述联盟链的账本,以成功完成交易。

优选地,在所述接收联盟链上交易发起方确定好的交易信息的步骤之后,还包括:

从预设的ca认证中心申请获取签名公钥,利用获取的签名公钥对所述交易信息进行签名操作,并利用获取的加密公钥对签名后的交易信息进行加密操作;

所述利用所述解密私钥对流转的交易信息进行解密之后,还包括:

对解密后交易信息的签名公钥进行签名认证,若签名认证通过,则基于解密后的交易信息更新所述联盟链的账本,以成功完成交易。

优选地,若在所述预设的ca认证中心验证提取的加密公钥不是所述预设的ca认证中心发放或者对解密后交易信息的签名公钥的签名认证不通过,则将所述交易发起方利用加密后的交易信息在所述联盟链上进行交易生成的区块标记为无效区块,不对所述联盟链的账本进行更新。

优选地,所述交易信息包括交易方的身份信息、交易内容、业务参数;所述利用获取的签名公钥对所述交易信息进行签名操作包括:

利用获取的签名公钥对所述交易信息中的业务参数进行签名操作;

所述利用获取的加密公钥对签名后的交易信息进行加密操作包括:

利用获取的加密公钥,并采用预设的非对称加密算法对所述交易信息中交易方的身份信息、交易内容进行加密操作。

优选地,在所述接收联盟链上交易发起方确定好的交易信息的步骤之后,还包括:

对所述交易信息利用散列算法算出对应的第一哈希值,并将算出的第一哈希值加入所述交易信息中;

在对解密后交易信息的签名公钥进行签名认证通过后,还包括:

对解密后的交易信息利用散列算法算出对应的第二哈希值,将算出的第二哈希值与所述交易信息中的第一哈希值进行比对;

若算出的第二哈希值与所述交易信息中的第一哈希值相同,则基于解密后的交易信息更新所述联盟链的账本,以成功完成交易;

若算出的第二哈希值与所述交易信息中的第一哈希值不同,则将所述交易发起方利用加密后的交易信息在所述联盟链上进行交易生成的区块标记为无效区块,不对所述联盟链的账本进行更新。

进一步地,为实现上述目的,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有基于联盟链的交易系统,所述基于联盟链的交易系统可被至少一个处理器执行,以使所述至少一个处理器执行如上述的基于联盟链的交易方法的步骤。

本发明提出的基于联盟链的交易方法、电子装置及可读存储介质,通过从预设的ca认证中心申请的加密公钥对联盟链上交易发起方确定好的交易信息进行加密;接收所述交易发起方利用加密后的交易信息在所述联盟链上进行交易生成区块后流转的交易信息;在所述预设的ca认证中心验证流转的交易信息中的加密公钥是否为ca认证中心发放,若是,则从ca认证中心获取与提取的加密公钥对应的解密私钥,利用所述解密私钥对流转的交易信息进行解密,并更新所述联盟链的账本,以成功完成交易。由于每次交易都会从ca认证中心动态地申请加密公钥及对应的解密私钥,并利用加密公钥对交易信息进行加密后进行交易,即使用户的交易信息被非法拦截,由于交易信息被加密,因此交易信息也不会被篡改,提高了联盟链中交易的安全性。

附图说明

图1为本发明基于联盟链的交易系统10较佳实施例的运行环境示意图;

图2为本发明基于联盟链的交易方法一实施例的流程示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。

本发明提供一种基于联盟链的交易系统。请参阅图1,是本发明基于联盟链的交易系统10较佳实施例的运行环境示意图。

在本实施例中,所述的基于联盟链的交易系统10安装并运行于电子装置1中。该电子装置1可包括,但不仅限于,存储器11、处理器12及显示器13。图1仅示出了具有组件11-13的电子装置1,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。

所述存储器11为至少一种类型的可读计算机存储介质,所述存储器11在一些实施例中可以是所述电子装置1的内部存储单元,例如该电子装置1的硬盘或内存。所述存储器11在另一些实施例中也可以是所述电子装置1的外部存储设备,例如所述电子装置1上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,所述存储器11还可以既包括所述电子装置1的内部存储单元也包括外部存储设备。所述存储器11用于存储安装于所述电子装置1的应用软件及各类数据,例如所述基于联盟链的交易系统10的程序代码等。所述存储器11还可以用于暂时地存储已经输出或者将要输出的数据。

所述处理器12在一些实施例中可以是一中央处理器(centralprocessingunit,cpu),微处理器或其他数据处理芯片,用于运行所述存储器11中存储的程序代码或处理数据,例如执行所述基于联盟链的交易系统10等。

所述显示器13在一些实施例中可以是led显示器、液晶显示器、触控式液晶显示器以及oled(organiclight-emittingdiode,有机发光二极管)触摸器等。所述显示器13用于显示在所述电子装置1中处理的信息以及用于显示可视化的用户界面,例如交易方的身份信息、交易内容、交易状态等。所述电子装置1的部件11-13通过系统总线相互通信。

基于联盟链的交易系统10包括至少一个存储在所述存储器11中的计算机可读指令,该至少一个计算机可读指令可被所述处理器12执行,以实现本申请各实施例。

其中,上述基于联盟链的交易系统10被所述处理器12执行时实现如下步骤:

步骤s1,接收联盟链上交易发起方确定好的交易信息;

步骤s2,从预设的ca认证中心申请获取加密公钥,利用获取的加密公钥对确定好的交易信息进行加密操作;

步骤s3,将加密后的交易信息返回至所述交易发起方;

步骤s4,接收所述交易发起方利用加密后的交易信息在所述联盟链上进行交易生成区块后流转的交易信息;

步骤s5,提取出流转的交易信息中的加密公钥,并在所述预设的ca认证中心验证提取的加密公钥是否为所述预设的ca认证中心发放,若是,则从所述预设的ca认证中心获取与提取的加密公钥对应的解密私钥,利用所述解密私钥对流转的交易信息进行解密;

步骤s6,基于解密后的交易信息更新所述联盟链的账本,以成功完成交易。

本实施例中,通过从预设的ca认证中心申请的加密公钥对联盟链上交易发起方确定好的交易信息(包括交易双方的身份信息、交易内容、业务参数等)进行加密,需要说明的是,该加密为对所述交易信息中交易方的身份信息、交易内容进行加密。接收所述交易发起方利用加密后的交易信息在所述联盟链上进行交易生成区块后流转的交易信息;在所述预设的ca认证中心验证流转的交易信息中的加密公钥是否为ca认证中心发放,若是,则从ca认证中心获取与提取的加密公钥对应的解密私钥,利用所述解密私钥对流转的交易信息进行解密,并更新所述联盟链的账本,以成功完成交易。若在所述预设的ca认证中心验证提取的加密公钥不是所述预设的ca认证中心发放,则将所述交易发起方利用加密后的交易信息在所述联盟链上进行交易生成的区块标记为无效区块,不对所述联盟链的账本进行更新。

进一步地,本实施例中,还可从预设的ca认证中心申请获取签名公钥,利用获取的签名公钥对所述交易信息进行签名操作(该签名操作是对所述交易信息中的业务参数进行签名),并利用获取的加密公钥对签名后的交易信息进行加密操作;在利用所述解密私钥对流转的交易信息进行解密之后,对解密后交易信息的签名公钥进行签名认证,若签名认证通过,则基于解密后的交易信息更新所述联盟链的账本,以成功完成交易。若对解密后交易信息的签名公钥的签名认证不通过,则将所述交易发起方利用加密后的交易信息在所述联盟链上进行交易生成的区块标记为无效区块,不对所述联盟链的账本进行更新。

具体地,本实施例中在交易信息(包括交易信息中涉及的交易方的身份信息、交易内容、业务参数等)确定后,首先,由客户端将确定好的交易信息发送给联盟链上对应的peer节点进行背书处理,在背书处理阶段进行签名操作,对交易信息使用ca认证中心发放的签名公钥进行签名,表示认可该笔交易的合法性,同时为后面验证交易的完整性做好准备。需要说明的是,对交易信息使用ca发放的签名公钥进行签名只是对交易信息中的交易业务参数进行签名。其中,ca发放的交易证书包括公私钥,peer节点每次可以批量请求一批公钥进行后续的加密操作,ca认证中心可以认证某个公私钥是否由该ca中心发放。

各个peer节点签名成功后,然后,通过ca认证中心发放的加密公钥使用预设的非对称加密算法对交易信息的消息体进行加密,其中,交易信息的消息体包含头部(如交易信息中涉及的交易方的身份信息等)和交易消息内容(如转账交易中的转账份额等),加密完成后,将加密交易信息返回给客户端,以保证交易信息的匿名性,其他人即使获取到该交易信息,由于经过了加密处理,其他人也无法感知该交易是由谁发起的,保证了交易信息在区块链网络里面进行密文的安全传输。其中,本实施例中加密算法采用的是非对称加密算法,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。在利用ca发放的公钥对交易信息的消息体进行加密后,只能用与该加密公钥对应的私钥进行解密,保证了交易信息的安全。本实施例中的非对称加密算法包括rsa、elgamal、背包算法、rabin、d-h、ecc(椭圆曲线加密算法)等。

本实施例中每一次交易时均会从ca认证中心动态申请签名密钥(如签名公钥)和加密密钥(如加密公钥),利用从ca认证中心申请的签名密钥对交易信息进行签名,并从ca中心申请的加密密钥对交易信息进行加密后再在联盟链类型区块链中完成交易流程。由于每次从ca认证中心申请的交易证书各不相同,因此,能保证每次交易过程中的签名密钥、加密密钥均为随机不同的,保证在联盟链类型区块链传输过程中信息的安全性。其中,在一种可选的实施方式中,利用加密密钥对交易信息进行加密时可用一种具有加法同态特性的密码公式加密,只有通过该加密密钥中的另一秘钥(例如,从ca中心申请加密密钥对,即包含加密公钥和加密私钥,加密时利用加密公钥加密,则解密时只能用加密私钥来解密)来解密读取其中的交易信息,这样,能保证用户的交易信息不会被非法拦截和偷窥,例如,只有交易双方可以去从ca中心根据加密公钥申请到加密私钥进行解密。在此以pedersoncommitment算法以及ecc(椭圆曲线)为例进行说明,当然,也不限定采用其他算法如rsa、diffie-hellman算法等。例如,定义a1=交易份额,a1’=密码混淆后的交易份额,x1=从ca中心申请的加密密钥,则加密公式为:a1’=g^a1*h^x1,其中,涉及到的椭圆曲线加密公式为:a1’=a1g+x1h。

经签名及加密处理后的交易信息经过联盟链上的orderer节点生成区块后,流转到peer节点,此时需要对交易信息进行解密及签名认证,流程如下:

取出交易信息中对应的加密公钥去ca中心验证,验证该加密公钥是否由该ca中心发放,如果不是,则交易更新失败,整个区块链账本不会更新,经过orderer节点生成的区块会被标示为无效区块。如果验证该加密公钥是由该ca中心发放,则进一步从该ca中心获取与该加密公钥对应的解密私钥,并利用该加密公钥对应的解密私钥对交易信息进行解密。交易信息解密后,进一步地,对解密后的交易信息进行签名认证,获取解密后的交易信息对应的签名公钥,并将该签名公钥去ca中心认证,返回对应的签名私钥,以利用该签名私钥验证该笔交易是否是对应的组织或者机构进行签名的。即本实施例中可以通过签名公钥去验证交易的合法性。

本实施例通过从预设的ca认证中心申请的加密公钥对联盟链上交易发起方确定好的交易信息进行加密;接收所述交易发起方利用加密后的交易信息在所述联盟链上进行交易生成区块后流转的交易信息;在所述预设的ca认证中心验证流转的交易信息中的加密公钥是否为ca认证中心发放,若是,则从ca认证中心获取与提取的加密公钥对应的解密私钥,利用所述解密私钥对流转的交易信息进行解密,并更新所述联盟链的账本,以成功完成交易。由于每次交易都会从ca认证中心动态地申请加密公钥及对应的解密私钥,并利用加密公钥对交易信息进行加密后进行交易,即使用户的交易信息被非法拦截,由于交易信息被加密,因此交易信息也不会被篡改,提高了联盟链中交易的安全性。

在一可选的实施例中,在上述图1的实施例的基础上,所述基于联盟链的交易系统10被所述处理器12执行时,还包括如下步骤:

对所述交易信息利用散列算法算出对应的第一哈希值,并将算出的第一哈希值加入所述交易信息中;

在对解密后交易信息的签名公钥进行签名认证通过后,还包括:

对解密后的交易信息利用散列算法算出对应的第二哈希值,将算出的第二哈希值与所述交易信息中的第一哈希值进行比对;

若算出的第二哈希值与所述交易信息中的第一哈希值相同,则基于解密后的交易信息更新所述联盟链的账本,以成功完成交易;

若算出的第二哈希值与所述交易信息中的第一哈希值不同,则将所述交易发起方利用加密后的交易信息在所述联盟链上进行交易生成的区块标记为无效区块,不对所述联盟链的账本进行更新。

本实施例中还可通过散列算法进行交易的完整性验证,在交易信息确定后,可对交易信息使用散列算法,算出对应的hash值,并加入该交易信息中。在后续对交易信息的完整性验证中,可对交易信息使用散列算法,算出对应的hash值,对比交易信息中附加的hash,看看是否发生改变,如果有变化,则证明交易信息在交易过程中被篡改,则整个区块链账本不会更新,经过联盟链上orderer节点生成的区块被表示为无效;如果验证成功,则区块链整个账本更新,区块被表示成功,此次交易成功入链。

如图2所示,图2为本发明基于联盟链的交易方法一实施例的流程示意图,该基于联盟链的交易方法包括以下步骤:

步骤s10,接收联盟链上交易发起方确定好的交易信息;

步骤s20,从预设的ca认证中心申请获取加密公钥,利用获取的加密公钥对确定好的交易信息进行加密操作;

步骤s30,将加密后的交易信息返回至所述交易发起方;

步骤s40,接收所述交易发起方利用加密后的交易信息在所述联盟链上进行交易生成区块后流转的交易信息;

步骤s50,提取出流转的交易信息中的加密公钥,并在所述预设的ca认证中心验证提取的加密公钥是否为所述预设的ca认证中心发放,若是,则从所述预设的ca认证中心获取与提取的加密公钥对应的解密私钥,利用所述解密私钥对流转的交易信息进行解密;

步骤s60,基于解密后的交易信息更新所述联盟链的账本,以成功完成交易。

本实施例中,通过从预设的ca认证中心申请的加密公钥对联盟链上交易发起方确定好的交易信息(包括交易双方的身份信息、交易内容、业务参数等)进行加密,需要说明的是,该加密为对所述交易信息中交易方的身份信息、交易内容进行加密。接收所述交易发起方利用加密后的交易信息在所述联盟链上进行交易生成区块后流转的交易信息;在所述预设的ca认证中心验证流转的交易信息中的加密公钥是否为ca认证中心发放,若是,则从ca认证中心获取与提取的加密公钥对应的解密私钥,利用所述解密私钥对流转的交易信息进行解密,并更新所述联盟链的账本,以成功完成交易。若在所述预设的ca认证中心验证提取的加密公钥不是所述预设的ca认证中心发放,则将所述交易发起方利用加密后的交易信息在所述联盟链上进行交易生成的区块标记为无效区块,不对所述联盟链的账本进行更新。

进一步地,本实施例中,还可从预设的ca认证中心申请获取签名公钥,利用获取的签名公钥对所述交易信息进行签名操作(该签名操作是对所述交易信息中的业务参数进行签名),并利用获取的加密公钥对签名后的交易信息进行加密操作;在利用所述解密私钥对流转的交易信息进行解密之后,对解密后交易信息的签名公钥进行签名认证,若签名认证通过,则基于解密后的交易信息更新所述联盟链的账本,以成功完成交易。若对解密后交易信息的签名公钥的签名认证不通过,则将所述交易发起方利用加密后的交易信息在所述联盟链上进行交易生成的区块标记为无效区块,不对所述联盟链的账本进行更新。

具体地,本实施例中在交易信息(包括交易信息中涉及的交易方的身份信息、交易内容、业务参数等)确定后,首先,由客户端将确定好的交易信息发送给联盟链上对应的peer节点进行背书处理,在背书处理阶段进行签名操作,对交易信息使用ca认证中心发放的签名公钥进行签名,表示认可该笔交易的合法性,同时为后面验证交易的完整性做好准备。需要说明的是,对交易信息使用ca发放的签名公钥进行签名只是对交易信息中的交易业务参数进行签名。其中,ca发放的交易证书包括公私钥,peer节点每次可以批量请求一批公钥进行后续的加密操作,ca认证中心可以认证某个公私钥是否由该ca中心发放。

各个peer节点签名成功后,然后,通过ca认证中心发放的加密公钥使用预设的非对称加密算法对交易信息的消息体进行加密,其中,交易信息的消息体包含头部(如交易信息中涉及的交易方的身份信息等)和交易消息内容(如转账交易中的转账份额等),加密完成后,将加密交易信息返回给客户端,以保证交易信息的匿名性,其他人即使获取到该交易信息,由于经过了加密处理,其他人也无法感知该交易是由谁发起的,保证了交易信息在区块链网络里面进行密文的安全传输。其中,本实施例中加密算法采用的是非对称加密算法,非对称加密算法需要两个密钥:公开密钥(publickey)和私有密钥(privatekey)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。在利用ca发放的公钥对交易信息的消息体进行加密后,只能用与该加密公钥对应的私钥进行解密,保证了交易信息的安全。本实施例中的非对称加密算法包括rsa、elgamal、背包算法、rabin、d-h、ecc(椭圆曲线加密算法)等。

本实施例中每一次交易时均会从ca认证中心动态申请签名密钥(如签名公钥)和加密密钥(如加密公钥),利用从ca认证中心申请的签名密钥对交易信息进行签名,并从ca中心申请的加密密钥对交易信息进行加密后再在联盟链类型区块链中完成交易流程。由于每次从ca认证中心申请的交易证书各不相同,因此,能保证每次交易过程中的签名密钥、加密密钥均为随机不同的,保证在联盟链类型区块链传输过程中信息的安全性。其中,在一种可选的实施方式中,利用加密密钥对交易信息进行加密时可用一种具有加法同态特性的密码公式加密,只有通过该加密密钥中的另一秘钥(例如,从ca中心申请加密密钥对,即包含加密公钥和加密私钥,加密时利用加密公钥加密,则解密时只能用加密私钥来解密)来解密读取其中的交易信息,这样,能保证用户的交易信息不会被非法拦截和偷窥,例如,只有交易双方可以去从ca中心根据加密公钥申请到加密私钥进行解密。在此以pedersoncommitment算法以及ecc(椭圆曲线)为例进行说明,当然,也不限定采用其他算法如rsa、diffie-hellman算法等。例如,定义a1=交易份额,a1’=密码混淆后的交易份额,x1=从ca中心申请的加密密钥,则加密公式为:a1’=g^a1*h^x1,其中,涉及到的椭圆曲线加密公式为:a1’=a1g+x1h。

经签名及加密处理后的交易信息经过联盟链上的orderer节点生成区块后,流转到peer节点,此时需要对交易信息进行解密及签名认证,流程如下:

取出交易信息中对应的加密公钥去ca中心验证,验证该加密公钥是否由该ca中心发放,如果不是,则交易更新失败,整个区块链账本不会更新,经过orderer节点生成的区块会被标示为无效区块。如果验证该加密公钥是由该ca中心发放,则进一步从该ca中心获取与该加密公钥对应的解密私钥,并利用该加密公钥对应的解密私钥对交易信息进行解密。交易信息解密后,进一步地,对解密后的交易信息进行签名认证,获取解密后的交易信息对应的签名公钥,并将该签名公钥去ca中心认证,返回对应的签名私钥,以利用该签名私钥验证该笔交易是否是对应的组织或者机构进行签名的。即本实施例中可以通过签名公钥去验证交易的合法性。

本实施例通过从预设的ca认证中心申请的加密公钥对联盟链上交易发起方确定好的交易信息进行加密;接收所述交易发起方利用加密后的交易信息在所述联盟链上进行交易生成区块后流转的交易信息;在所述预设的ca认证中心验证流转的交易信息中的加密公钥是否为ca认证中心发放,若是,则从ca认证中心获取与提取的加密公钥对应的解密私钥,利用所述解密私钥对流转的交易信息进行解密,并更新所述联盟链的账本,以成功完成交易。由于每次交易都会从ca认证中心动态地申请加密公钥及对应的解密私钥,并利用加密公钥对交易信息进行加密后进行交易,即使用户的交易信息被非法拦截,由于交易信息被加密,因此交易信息也不会被篡改,提高了联盟链中交易的安全性。

在一可选的实施例中,在上述实施例的基础上,该方法还包括如下步骤:

对所述交易信息利用散列算法算出对应的第一哈希值,并将算出的第一哈希值加入所述交易信息中;

在对解密后交易信息的签名公钥进行签名认证通过后,还包括:

对解密后的交易信息利用散列算法算出对应的第二哈希值,将算出的第二哈希值与所述交易信息中的第一哈希值进行比对;

若算出的第二哈希值与所述交易信息中的第一哈希值相同,则基于解密后的交易信息更新所述联盟链的账本,以成功完成交易;

若算出的第二哈希值与所述交易信息中的第一哈希值不同,则将所述交易发起方利用加密后的交易信息在所述联盟链上进行交易生成的区块标记为无效区块,不对所述联盟链的账本进行更新。

本实施例中还可通过散列算法进行交易的完整性验证,在交易信息确定后,可对交易信息使用散列算法,算出对应的hash值,并加入该交易信息中。在后续对交易信息的完整性验证中,可对交易信息使用散列算法,算出对应的hash值,对比交易信息中附加的hash,看看是否发生改变,如果有变化,则证明交易信息在交易过程中被篡改,则整个区块链账本不会更新,经过联盟链上orderer节点生成的区块被表示为无效;如果验证成功,则区块链整个账本更新,区块被表示成功,此次交易成功入链。

此外,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有基于联盟链的交易系统,所述基于联盟链的交易系统可被至少一个处理器执行,以使所述至少一个处理器执行如上述实施例中的基于联盟链的交易方法的步骤,该基于联盟链的交易方法的步骤s10、s20、s30等具体实施过程如上文所述,在此不再赘述。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件来实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。

以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范围。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。另外,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本领域技术人员不脱离本发明的范围和实质,可以有多种变型方案实现本发明,比如作为一个实施例的特征可用于另一实施例而得到又一实施例。凡在运用本发明的技术构思之内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。

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