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

文档序号:16318115发布日期:2018-12-19 05:33阅读:144来源:国知局
基于联盟链的交易监管方法、电子装置及可读存储介质与流程

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

背景技术

在联盟链类型的区块链中进行交易时,交易数据属于联盟链中各个组织之间相互的机密数据,需保证交易数据的私密性,即不能让区块链中的任意节点均能获知交易数据内容,同时,针对区块链中的交易,监管机构需根据交易数据知晓企业之间具体是在做什么交易、各个组织机构之间是否在做违法的交易行为。现有技术中,针对联盟链类型的区块链中的交易,无法同时实现既能保证交易数据的私密性,又能让监管机构对交易进行有效的监管。



技术实现要素:

本发明的目的在于提供一种基于联盟链的交易监管方法、电子装置及可读存储介质,旨在实现既能保证交易数据的私密性,又能让监管机构对交易进行有效的监管。

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

获取预先设定的加密密钥对,并将所述加密密钥对同步至预设的监管方;

利用所述加密密钥对中的加密私钥对联盟链上交易发起方确定好的交易信息进行加密,生成加密交易数据;

利用交易接收方预设的接收方公钥对所述加密密钥对中的加密公钥进行加密,生成接收方加密公钥;将所述加密交易数据和所述接收方加密公钥组成交易体;

基于所述交易体在所述联盟链上发起交易,以供所述交易接收方通过预设的接收方私钥对所述交易体中的接收方加密公钥进行解密得到所述加密密钥对中的加密公钥,并利用解密出的加密公钥对所述交易体中的加密交易数据进行解密得到确定好的交易信息,完成与所述交易发起方的交易;所述监管方根据同步得到的所述加密密钥对中的加密公钥对所述交易体中的加密交易数据进行解密得到确定好的交易信息,对交易信息进行监管。

优选地,所述交易发起方确定好的交易信息包括交易业务数据和交易内容数据,所述利用所述加密密钥对中的加密私钥对联盟链上交易发起方确定好的交易信息进行加密,生成加密交易数据的步骤包括:

利用所述加密密钥对中的加密私钥对所述交易信息中的交易内容数据进行加密,生成加密交易内容数据;

所述将所述加密交易数据和所述接收方加密公钥组成交易体包括:

将交易业务数据、加密交易内容数据、接收方加密公钥组成交易体。

优选地,所述处理器还用于执行所述基于联盟链的交易监管系统,以实现以下步骤:

利用所述联盟链上预设第三方知情方节点的知情方公钥对所述加密密钥对中的加密公钥进行加密,生成知情方加密公钥;

所述将所述加密交易数据和所述接收方加密公钥组成交易体包括:

将交易业务数据、加密交易内容数据、接收方加密公钥和知情方加密公钥组成交易体。

优选地,所述处理器还用于执行所述基于联盟链的交易监管系统,以实现以下步骤:

获取预先设定的签名密钥对;

对整个所述交易体利用散列算法算出对应的哈希值,并利用所述签名密钥对中的签名私钥对整个所述交易体算出的哈希值进行加密,得到加密哈希值,并将该加密哈希值添加至所述交易体中。

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

获取预先设定的加密密钥对,并将所述加密密钥对同步至预设的监管方;

利用所述加密密钥对中的加密私钥对联盟链上交易发起方确定好的交易信息进行加密,生成加密交易数据;

利用交易接收方预设的接收方公钥对所述加密密钥对中的加密公钥进行加密,生成接收方加密公钥;将所述加密交易数据和所述接收方加密公钥组成交易体;

基于所述交易体在所述联盟链上发起交易,以供所述交易接收方通过预设的接收方私钥对所述交易体中的接收方加密公钥进行解密得到所述加密密钥对中的加密公钥,并利用解密出的加密公钥对所述交易体中的加密交易数据进行解密得到确定好的交易信息,完成与所述交易发起方的交易;所述监管方根据同步得到的所述加密密钥对中的加密公钥对所述交易体中的加密交易数据进行解密得到确定好的交易信息,对交易信息进行监管。

优选地,所述交易发起方确定好的交易信息包括交易业务数据和交易内容数据,所述利用所述加密密钥对中的加密私钥对联盟链上交易发起方确定好的交易信息进行加密,生成加密交易数据的步骤包括:

利用所述加密密钥对中的加密私钥对所述交易信息中的交易内容数据进行加密,生成加密交易内容数据;

所述将所述加密交易数据和所述接收方加密公钥组成交易体包括:

将交易业务数据、加密交易内容数据、接收方加密公钥组成交易体。

优选地,还包括:

利用所述联盟链上预设第三方知情方节点的知情方公钥对所述加密密钥对中的加密公钥进行加密,生成知情方加密公钥;

所述将所述加密交易数据和所述接收方加密公钥组成交易体包括:

将交易业务数据、加密交易内容数据、接收方加密公钥和知情方加密公钥组成交易体。

优选地,还包括:

获取预先设定的签名密钥对;

对整个所述交易体利用散列算法算出对应的哈希值,并利用所述签名密钥对中的签名私钥对整个所述交易体算出的哈希值进行加密,得到加密哈希值,并将该加密哈希值添加至所述交易体中。

优选地,还包括:

利用所述签名密钥对中的签名公钥对所述交易接收方收到的交易体中的加密哈希值进行解密,得到解密的哈希值;

对所述交易接收方收到的交易体利用散列算法算出对应的哈希值,将算出的哈希值与解密的哈希值进行比对;

若算出的哈希值与解密的哈希值相同,则基于所述交易体完成所述交易接收方与所述交易发起方的交易;

若算出的哈希值与解密的哈希值不同,则结束交易流程。

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

本发明提出的基于联盟链的交易监管方法、系统及可读存储介质,通过预先设定的加密密钥对中的加密私钥对联盟链上交易发起方确定好的交易信息进行加密,生成加密交易数据;利用交易接收方预设的接收方公钥对所述加密密钥对中的加密公钥进行加密,生成接收方加密公钥;将所述加密交易数据和所述接收方加密公钥组成交易体;基于所述交易体在所述联盟链上发起交易。由于能通过将所述加密交易数据和所述接收方加密公钥组成交易体的方式在联盟链上进行交易,联盟链上的交易接收方可通过预设的接收方私钥对所述交易体中的接收方加密公钥进行解密得到所述加密密钥对中的加密公钥,并利用解密出的加密公钥对所述交易体中的加密交易数据进行解密得到确定好的交易信息,完成与所述交易发起方的交易;由于在交易体中仅有接收方加密公钥,联盟链上的其他节点无法解密获取到所述加密密钥对中的加密公钥,无法对交易体中的加密交易数据进行解密,从而保证了联盟链中交易数据的私密性。同时,监管方可根据同步得到的所述加密密钥对中的加密公钥对所述交易体中的加密交易数据进行解密得到确定好的交易信息,对交易信息进行监管。实现了既能保证交易数据的私密性,又能让监管机构对交易进行有效的监管。

附图说明

图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,利用所述加密密钥对中的加密私钥对联盟链上交易发起方确定好的交易信息进行加密,生成加密交易数据;

步骤s3,利用交易接收方预设的接收方公钥对所述加密密钥对中的加密公钥进行加密,生成接收方加密公钥;将所述加密交易数据和所述接收方加密公钥组成交易体;

步骤s4,基于所述交易体在所述联盟链上发起交易,以供所述交易接收方通过预设的接收方私钥对所述交易体中的接收方加密公钥进行解密得到所述加密密钥对中的加密公钥,并利用解密出的加密公钥对所述交易体中的加密交易数据进行解密得到确定好的交易信息,完成与所述交易发起方的交易;所述监管方根据同步得到的所述加密密钥对中的加密公钥对所述交易体中的加密交易数据进行解密得到确定好的交易信息,对交易信息进行监管。

本实施例中通过预先设定的加密密钥对中的加密私钥对联盟链上交易发起方确定好的交易信息进行加密,生成加密交易数据;利用交易接收方预设的接收方公钥对所述加密密钥对中的加密公钥进行加密,生成接收方加密公钥;将所述加密交易数据和所述接收方加密公钥组成交易体;基于所述交易体在所述联盟链上发起交易。由于能通过将所述加密交易数据和所述接收方加密公钥组成交易体的方式在联盟链上进行交易,联盟链上的交易接收方可通过预设的接收方私钥对所述交易体中的接收方加密公钥进行解密得到所述加密密钥对中的加密公钥,并利用解密出的加密公钥对所述交易体中的加密交易数据进行解密得到确定好的交易信息,完成与所述交易发起方的交易;由于在交易体中仅有接收方加密公钥,联盟链上的其他节点无法解密获取到所述加密密钥对中的加密公钥,无法对交易体中的加密交易数据进行解密,从而保证了联盟链中交易数据的私密性。同时,监管方可根据同步得到的所述加密密钥对中的加密公钥对所述交易体中的加密交易数据进行解密得到确定好的交易信息,对交易信息进行监管。实现了既能保证交易数据的私密性,又能让监管机构对交易进行有效的监管。

进一步地,本实施例中所述交易发起方确定好的交易信息包括交易业务数据(如交易双方的身份信息、业务参数等)和交易内容数据(如交易份额、汇率等),所述利用所述加密密钥对中的加密私钥对联盟链上交易发起方确定好的交易信息进行加密,生成加密交易数据的步骤包括:

利用所述加密密钥对中的加密私钥对所述交易信息中的交易内容数据进行加密,生成加密交易内容数据;

所述将所述加密交易数据和所述接收方加密公钥组成交易体包括:

将交易业务数据、加密交易内容数据、接收方加密公钥组成交易体。

本实施例中所述联盟链上还包括除了交易双方之外的预设第三方知情方节点(包括可完全知晓或部分知晓此次交易的节点),如可利用所述联盟链上预设第三方知情方节点的知情方公钥对所述加密密钥对中的加密公钥进行加密,生成知情方加密公钥;将交易业务数据、加密交易内容数据、接收方加密公钥和知情方加密公钥组成交易体。

进一步地,本实施例中还包括签名认证的步骤,首先,获取预先设定的签名密钥对;对整个所述交易体利用散列算法算出对应的哈希值,并利用所述签名密钥对中的签名私钥对整个所述交易体算出的哈希值进行加密,得到加密哈希值,并将该加密哈希值添加至所述交易体中。在交易接收方收到联盟链上的交易体后,首先进行签名认证,如利用所述签名密钥对中的签名公钥对所述交易接收方收到的交易体中的加密哈希值进行解密,得到解密的哈希值;对所述交易接收方收到的交易体利用散列算法算出对应的哈希值,将算出的哈希值与解密的哈希值进行比对;若算出的哈希值与解密的哈希值相同,则基于所述交易体完成所述交易接收方与所述交易发起方的交易;若算出的哈希值与解密的哈希值不同,则结束交易流程。

具体的,在一种实施例中,本实施例在联盟链类型区块链上的交易中,涉及到的对象节点包括交易双方节点、第一知情方节点、第二知情方节点、监管方,其中,交易双方即实施交易的双方,例如交易双方节点包括节点a和节点b,交易为a转账给b,转账金额100;第一知情方节点是可以让其完全知晓整个交易详情的一方如节点c,让c可以知道此次交易是a转账给b,且知道具体转账金额100;第二知情方节点是可以让其知晓部分交易信息的一方如节点d,让d可以知道此次交易是a转账给b,但不能让d知道具体转账金额100;监管方即由于监管需求,需要获知此次交易是a转账给b,且知道具体转账金额100,以根据转账双方身份及转账金额来判断此次交易是否合法,以实现交易监管。

提前准备好双密钥对:签名秘钥、加密密钥。需要说明的是,这些密钥对可以是预先设定好,且同步通知给监管方。这些密钥对也可以是从ca中心申请获得,监管方可凭自身的监管身份去ca中心申请获知密钥对。将交易信息划分为交易业务数据和交易内容数据,例如,交易业务数据为“a转账给b”,交易内容数据为“转账金额100”。

交易发起方a获取预先设定好的本次交易的加密密钥对,或从ca中心申请获得本次交易的加密密钥对。交易发起方a利用申请到的加密密钥对中的加密私钥对本次交易的交易内容数据进行加密,生成加密交易内容数据,例如,对明文数据100进行加密,生成加密交易内容数据,并组成交易体,该交易体中包括交易业务数据和加密交易内容数据。

进一步地,利用交易接收方b自身的接收方公钥对交易发起方a从ca中心申请到的加密密钥对中的加密公钥进行加密,生成接收方加密公钥。利用第一知情方节点的第一公钥对交易发起方a从ca中心申请到的加密密钥对中的加密公钥进行加密,生成第一加密公钥。将接收方加密公钥、第一加密公钥添加至交易体中,则新的交易体包括交易业务数据、加密交易内容数据、接收方加密公钥和第一加密公钥。

交易发起方a对整个交易体使用散列算法,算出对应的hash值,利用从ca中心申请的签名私钥对整个交易体运算出的hash值进行加密,得到加密hash值,并将该加密hash值添加至交易体中,则最终形成的交易体包括五部分,分别为交易业务数据、加密交易内容数据、接收方加密公钥、第一加密公钥和加密hash值。

交易发起方a基于交易体在区块链上发起交易,交易接收方b从区块链上获取到交易体后,首先进行签名认证操作,如下:

交易接收方b从ca中心申请交易发起方a的签名私钥所对应的签名公钥,交易接收方b利用申请的签名公钥对交易体中的加密hash值进行解密,得到解密的hash值,该解密的hash值即交易发起方a对整个交易体运算出的hash值。交易接收方b对获取的交易体使用散列算法,算出对应的hash值。将交易接收方b算出的hash值与之前解密出的hash值进行比较,若交易接收方b算出的hash值与之前解密出的hash值一模一样,则说明该交易为交易发起方a签名且交易信息没有被篡改的,即证明该交易的确是交易发起方a发起且真实有效的,则交易接收方b可依据该交易体进行后续操作。否则,说明该交易信息已被篡改,流程结束。

交易接收方b验证该交易为交易发起方a签名且交易信息没有被篡改之后,交易接收方b可通过自身的接收方私钥对接收方加密公钥进行解密操作,以得到交易发起方a从ca中心申请到的加密密钥对中的加密公钥。交易接收方b可利用解密出的加密公钥对交易体中的加密交易内容数据进行解密操作,即可解密得到交易内容数据,如“转账金额100”,则交易接收方b可根据解密得到交易内容数据在区块链上完成与交易发起方a的交易。

由于交易体中包括第一加密公钥,第一加密公钥是利用第一知情方节点的第一公钥对交易发起方a从ca中心申请到的加密密钥对中的加密公钥进行加密生成,因此,第一知情方节点c可通过自身的第一私钥对第一加密公钥进行解密操作,以得到交易发起方a从ca中心申请到的加密密钥对中的加密公钥。第一知情方节点c可利用解密出的加密公钥对交易体中的加密交易内容数据进行解密操作,即可解密得到交易内容数据,如“转账金额100”,从而,第一知情方节点c可以知道此次交易是a转账给b,且知道具体转账金额100。

而对于第二知情方节点d,由于没有将第二知情方节点d的公钥加密放入交易体中,因此,第二知情方节点d接收到交易体后,无法对交易体中的加密交易内容数据进行解密,则第二知情方节点d无法获知交易内容数据如“转账金额100”,从而保证了区块链中交易数据的私密性。

对于监管方,由于提前准备好双密钥对:签名秘钥、加密密钥,因此,监管方可根据监管需求获取到该签名秘钥、加密密钥,即可对区块链中的交易体进行监管,如可以获取交易业务数据及对交易体中的加密交易内容数据进行解密获取交易内容数据,判断交易业务数据及交易内容数据是否合法。例如,监管方可以为ca中心,交易发起方a从ca中心申请到的加密密钥对后,ca中心存储本次交易的加密密钥对。在需要进行监管时,ca中心获取交易发起方a生成的交易体,利用存储的本次交易的加密密钥对中相应密钥,即可对交易体中的加密交易内容数据进行解密,获知交易业务数据为“a转账给b”,交易内容数据为“转账金额100”,即可判断交易业务数据及交易内容数据是否合法。

需要说明的是,本实施例中使用的算法根据业务需要采用对称及非对称算法,对称算法包括但不限于:sm4、rc2、rc4、rc5、idea、aes(256bit)、des、aes(128bit)等算法。非对称算法包括但不限于:rsa(2048bit)、sm2(国产)、ecc(210bit)、dh、dsa、rsa(1024bit)等算法。单向(散列)算法包括但不限于:sm3(国产)、sha-224、sha-256、sha-1、md5等算法。其中,对称算法用于加密,非对称算法和散列算法用于哈希值计算的过程。

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

步骤s10,获取预先设定的加密密钥对,并将所述加密密钥对同步至预设的监管方;

步骤s20,利用所述加密密钥对中的加密私钥对联盟链上交易发起方确定好的交易信息进行加密,生成加密交易数据;

步骤s30,利用交易接收方预设的接收方公钥对所述加密密钥对中的加密公钥进行加密,生成接收方加密公钥;将所述加密交易数据和所述接收方加密公钥组成交易体;

步骤s40,基于所述交易体在所述联盟链上发起交易,以供所述交易接收方通过预设的接收方私钥对所述交易体中的接收方加密公钥进行解密得到所述加密密钥对中的加密公钥,并利用解密出的加密公钥对所述交易体中的加密交易数据进行解密得到确定好的交易信息,完成与所述交易发起方的交易;所述监管方根据同步得到的所述加密密钥对中的加密公钥对所述交易体中的加密交易数据进行解密得到确定好的交易信息,对交易信息进行监管。

本实施例中通过预先设定的加密密钥对中的加密私钥对联盟链上交易发起方确定好的交易信息进行加密,生成加密交易数据;利用交易接收方预设的接收方公钥对所述加密密钥对中的加密公钥进行加密,生成接收方加密公钥;将所述加密交易数据和所述接收方加密公钥组成交易体;基于所述交易体在所述联盟链上发起交易。由于能通过将所述加密交易数据和所述接收方加密公钥组成交易体的方式在联盟链上进行交易,联盟链上的交易接收方可通过预设的接收方私钥对所述交易体中的接收方加密公钥进行解密得到所述加密密钥对中的加密公钥,并利用解密出的加密公钥对所述交易体中的加密交易数据进行解密得到确定好的交易信息,完成与所述交易发起方的交易;由于在交易体中仅有接收方加密公钥,联盟链上的其他节点无法解密获取到所述加密密钥对中的加密公钥,无法对交易体中的加密交易数据进行解密,从而保证了联盟链中交易数据的私密性。同时,监管方可根据同步得到的所述加密密钥对中的加密公钥对所述交易体中的加密交易数据进行解密得到确定好的交易信息,对交易信息进行监管。实现了既能保证交易数据的私密性,又能让监管机构对交易进行有效的监管。

进一步地,本实施例中所述交易发起方确定好的交易信息包括交易业务数据(如交易双方的身份信息、业务参数等)和交易内容数据(如交易份额、汇率等),所述利用所述加密密钥对中的加密私钥对联盟链上交易发起方确定好的交易信息进行加密,生成加密交易数据的步骤包括:

利用所述加密密钥对中的加密私钥对所述交易信息中的交易内容数据进行加密,生成加密交易内容数据;

所述将所述加密交易数据和所述接收方加密公钥组成交易体包括:

将交易业务数据、加密交易内容数据、接收方加密公钥组成交易体。

本实施例中所述联盟链上还包括除了交易双方之外的预设第三方知情方节点(包括可完全知晓或部分知晓此次交易的节点),如可利用所述联盟链上预设第三方知情方节点的知情方公钥对所述加密密钥对中的加密公钥进行加密,生成知情方加密公钥;将交易业务数据、加密交易内容数据、接收方加密公钥和知情方加密公钥组成交易体。

进一步地,本实施例中还包括签名认证的步骤,首先,获取预先设定的签名密钥对;对整个所述交易体利用散列算法算出对应的哈希值,并利用所述签名密钥对中的签名私钥对整个所述交易体算出的哈希值进行加密,得到加密哈希值,并将该加密哈希值添加至所述交易体中。在交易接收方收到联盟链上的交易体后,首先进行签名认证,如利用所述签名密钥对中的签名公钥对所述交易接收方收到的交易体中的加密哈希值进行解密,得到解密的哈希值;对所述交易接收方收到的交易体利用散列算法算出对应的哈希值,将算出的哈希值与解密的哈希值进行比对;若算出的哈希值与解密的哈希值相同,则基于所述交易体完成所述交易接收方与所述交易发起方的交易;若算出的哈希值与解密的哈希值不同,则结束交易流程。

具体的,在一种实施例中,本实施例在联盟链类型区块链上的交易中,涉及到的对象节点包括交易双方节点、第一知情方节点、第二知情方节点、监管方,其中,交易双方即实施交易的双方,例如交易双方节点包括节点a和节点b,交易为a转账给b,转账金额100;第一知情方节点是可以让其完全知晓整个交易详情的一方如节点c,让c可以知道此次交易是a转账给b,且知道具体转账金额100;第二知情方节点是可以让其知晓部分交易信息的一方如节点d,让d可以知道此次交易是a转账给b,但不能让d知道具体转账金额100;监管方即由于监管需求,需要获知此次交易是a转账给b,且知道具体转账金额100,以根据转账双方身份及转账金额来判断此次交易是否合法,以实现交易监管。

提前准备好双密钥对:签名秘钥、加密密钥。需要说明的是,这些密钥对可以是预先设定好,且同步通知给监管方。这些密钥对也可以是从ca中心申请获得,监管方可凭自身的监管身份去ca中心申请获知密钥对。将交易信息划分为交易业务数据和交易内容数据,例如,交易业务数据为“a转账给b”,交易内容数据为“转账金额100”。

交易发起方a获取预先设定好的本次交易的加密密钥对,或从ca中心申请获得本次交易的加密密钥对。交易发起方a利用申请到的加密密钥对中的加密私钥对本次交易的交易内容数据进行加密,生成加密交易内容数据,例如,对明文数据100进行加密,生成加密交易内容数据,并组成交易体,该交易体中包括交易业务数据和加密交易内容数据。

进一步地,利用交易接收方b自身的接收方公钥对交易发起方a从ca中心申请到的加密密钥对中的加密公钥进行加密,生成接收方加密公钥。利用第一知情方节点的第一公钥对交易发起方a从ca中心申请到的加密密钥对中的加密公钥进行加密,生成第一加密公钥。将接收方加密公钥、第一加密公钥添加至交易体中,则新的交易体包括交易业务数据、加密交易内容数据、接收方加密公钥和第一加密公钥。

交易发起方a对整个交易体使用散列算法,算出对应的hash值,利用从ca中心申请的签名私钥对整个交易体运算出的hash值进行加密,得到加密hash值,并将该加密hash值添加至交易体中,则最终形成的交易体包括五部分,分别为交易业务数据、加密交易内容数据、接收方加密公钥、第一加密公钥和加密hash值。

交易发起方a基于交易体在区块链上发起交易,交易接收方b从区块链上获取到交易体后,首先进行签名认证操作,如下:

交易接收方b从ca中心申请交易发起方a的签名私钥所对应的签名公钥,交易接收方b利用申请的签名公钥对交易体中的加密hash值进行解密,得到解密的hash值,该解密的hash值即交易发起方a对整个交易体运算出的hash值。交易接收方b对获取的交易体使用散列算法,算出对应的hash值。将交易接收方b算出的hash值与之前解密出的hash值进行比较,若交易接收方b算出的hash值与之前解密出的hash值一模一样,则说明该交易为交易发起方a签名且交易信息没有被篡改的,即证明该交易的确是交易发起方a发起且真实有效的,则交易接收方b可依据该交易体进行后续操作。否则,说明该交易信息已被篡改,流程结束。

交易接收方b验证该交易为交易发起方a签名且交易信息没有被篡改之后,交易接收方b可通过自身的接收方私钥对接收方加密公钥进行解密操作,以得到交易发起方a从ca中心申请到的加密密钥对中的加密公钥。交易接收方b可利用解密出的加密公钥对交易体中的加密交易内容数据进行解密操作,即可解密得到交易内容数据,如“转账金额100”,则交易接收方b可根据解密得到交易内容数据在区块链上完成与交易发起方a的交易。

由于交易体中包括第一加密公钥,第一加密公钥是利用第一知情方节点的第一公钥对交易发起方a从ca中心申请到的加密密钥对中的加密公钥进行加密生成,因此,第一知情方节点c可通过自身的第一私钥对第一加密公钥进行解密操作,以得到交易发起方a从ca中心申请到的加密密钥对中的加密公钥。第一知情方节点c可利用解密出的加密公钥对交易体中的加密交易内容数据进行解密操作,即可解密得到交易内容数据,如“转账金额100”,从而,第一知情方节点c可以知道此次交易是a转账给b,且知道具体转账金额100。

而对于第二知情方节点d,由于没有将第二知情方节点d的公钥加密放入交易体中,因此,第二知情方节点d接收到交易体后,无法对交易体中的加密交易内容数据进行解密,则第二知情方节点d无法获知交易内容数据如“转账金额100”,从而保证了区块链中交易数据的私密性。

对于监管方,由于提前准备好双密钥对:签名秘钥、加密密钥,因此,监管方可根据监管需求获取到该签名秘钥、加密密钥,即可对区块链中的交易体进行监管,如可以获取交易业务数据及对交易体中的加密交易内容数据进行解密获取交易内容数据,判断交易业务数据及交易内容数据是否合法。例如,监管方可以为ca中心,交易发起方a从ca中心申请到的加密密钥对后,ca中心存储本次交易的加密密钥对。在需要进行监管时,ca中心获取交易发起方a生成的交易体,利用存储的本次交易的加密密钥对中相应密钥,即可对交易体中的加密交易内容数据进行解密,获知交易业务数据为“a转账给b”,交易内容数据为“转账金额100”,即可判断交易业务数据及交易内容数据是否合法。

需要说明的是,本实施例中使用的算法根据业务需要采用对称及非对称算法,对称算法包括但不限于:sm4、rc2、rc4、rc5、idea、aes(256bit)、des、aes(128bit)等算法。非对称算法包括但不限于:rsa(2048bit)、sm2(国产)、ecc(210bit)、dh、dsa、rsa(1024bit)等算法。单向(散列)算法包括但不限于:sm3(国产)、sha-224、sha-256、sha-1、md5等算法。其中,对称算法用于加密,非对称算法和散列算法用于哈希值计算的过程。

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

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

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

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

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

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