本发明涉及区块链和密码学技术领域,特别涉及一种基于区块链交易的权限控制方法及系统。
背景技术:
区块链的本质上是一种分布式数据库,交易账本分布在区块链网络上的所有节点上,在实际商业在线交易中,每个交易的参与方不可能完全涉及区块链网络上的所有节点,为满足在交易私密性的同时使账本分布保存在区块链网络上的所有节点上,并避免因账本分布化导致的账本公开问题,从而达到只有参与交易或被授权的节点有权解密账本进行账本查看,无授权节点无法解密数据的目的,进而实现不因账本分布化而导致交易数据对外可见的功能。
同时,在满足交易私密性的情况下,要考虑符合监管要求,能够让审计方或监督方在不需授权的情况下解密交易数据。由于监管或审计方能够未经授权下解密账本,必须进一步防止监管方篡改交易数据的可能性,从而实现交易数据的安全性。
技术实现要素:
根据本发明实施例提供的方案解决的技术问题是通过权限控制方法解决区块链中交易数据只能由交易协议方或授权节点可见,确保交易私密性,并在确保数据私密性的情况下满足监管需要。
根据本发明实施例提供的一种基于区块链交易的权限控制方法,包括:
区块链中的每个节点通过向证书授权中心注册,获取该节点的公私钥对,并将所获取的公钥和解密私钥发送给所述证书授权中心进行保存;
区块链中的第一交易节点利用其产生的随机对称密钥和第二交易节点的公钥对交易数据进行加密后,将加密后的密文交易数据发送给区块链中的每个节点;
当监管方查看所述密文交易数据时,通过从所述证书授权中心获取所述第二交易节点的解密私钥进行解密处理后,得到明文交易数据。
优选地,所述区块链中的第一交易节点利用其产生的随机对称密钥和第二交易节点的公钥对交易数据进行加密后,将加密后的密文交易数据发送给区块链中的每个节点包括:
所述第一交易节点利用所述第二交易节点的公钥对所产生的随机对称密钥进行加密处理,得到加密随机对称密钥;
所述第一交易节点利用其公钥和解密私钥产生随机对称密钥,并使用所产生的随机对称密钥对交易数据进行加密处理,得到加密交易数据;
所述第一交易节点将所得到的加密随机对称密钥与所得到的加密交易数据叠加处理后,得到密文交易数据,并将所得到的密文交易数据发送给区块链中的每个节点。
优选地,所述当监管方查看所述密文交易数据时,通过从所述证书授权中心获取所述第二交易节点的解密私钥进行解密处理后,得到明文交易数据包括:
当监管方查看所述密文交易数据时,所述监管方向所述证书授权中心发送包含监管方签名密钥的解密私钥申请请求,使所述证书授权中心对监管方签名密钥验证通过后,将所述第二交易节点解密私钥发送给所述监管方;
所述监管方接收到所述第二交易节点解密私钥后,利用所述第二交易节点解密私钥对所述密文交易数据中的加密随机对称密钥进行解密处理,得到随机对称密钥;
所述监管方利用所得到的随机对称密钥对所述密文交易数据中的加密交易数据进行解密处理,得到明文交易数据。
优选地,还包括:
当所述第二交易节点查看所述密文交易数据时,利用其解密私钥对所述密文交易数据中的加密随机对称密钥进行解密处理,得到随机对称密钥,并利用所得到的随机对称密钥对所述密文交易数据中的加密交易数据进行解密处理,得到明文交易数据。
优选地,还包括所述区块链中的任一非交易节点查看所述密文交易数据的步骤,具体包括:
所述第一交易节点接收所述非交易节点发送的包含非交易节点签名密钥的查看申请请求;
所述第一交易节点对所述非交易节点签名密钥进行验证处理,并在验证通过后,利用所述非交易节点公钥对其随机对称密钥进行加密处理,得到非交易节点加密随机对称密钥;
所述第一交易节点将所得到的非交易节点加密随机对称密钥发送给所述非交易节点,使所述非交易节点使用其解密私钥对非交易节点加密随机对称密钥进行解密处理后,得到随机对称密钥,并使用所得到的随机对称密钥对其保存的加密交易数据进行解密处理,得到明文交易数据。
根据本发明实施例提供的一种基于区块链交易的权限控制系统,包括:
证书授权中心,用于分别接收各节点发送的注册请求向各节点返回每个节点的公钥和解密私钥,并将各节点的公钥和解密私钥进行保存;
第一交易节点,用于利用其产生的随机对称密钥和第二交易节点的公钥对交易数据进行加密后,将加密后的密文交易数据发送给区块链中的每个节点;
监管方,用于当查看所述密文交易数据时,通过从所述证书授权中心获取所述第二交易节点的解密私钥进行解密处理后,得到明文交易数据。
优选地,所述第一交易节点包括:
第一加密单元,用于利用所述第二交易节点的公钥对所产生的随机对称密钥进行加密处理,得到加密随机对称密钥;
第二加密单元,用于利用其公钥和解密私钥对产生随机对称密钥,并使用所产生的随机对称密钥对交易数据进行加密处理,得到加密交易数据;
叠加单元,用于将所得到的加密随机对称密钥与所得到的加密交易数据叠加处理后,得到密文交易数据,并将所得到的密文交易数据发送给区块链中的每个节点。
优选地,所述监管方包括:
发送单元,用于当查看所述密文交易数据时,向所述证书授权中心发送包含监管方签名密钥的解密私钥申请请求,使所述证书授权中心对监管方签名密钥验证通过后,将所述第二交易节点解密私钥发送给所述监管方;
解密单元,用于接收到所述第二交易节点解密私钥后,利用所述第二交易节点解密私钥对所述密文交易数据中的加密随机对称密钥进行解密处理,得到随机对称密钥;
查看单元,用于利用所得到的随机对称密钥对所述密文交易数据中的加密交易数据进行解密处理,得到明文交易数据。
优选地,还包括第二交易节点,用于在查看所述密文交易数据时,利用其解密私钥对所述密文交易数据中的加密随机对称密钥进行解密处理,得到随机对称密钥,并利用所得到的随机对称密钥对所述密文交易数据中的加密交易数据进行解密处理,得到明文交易数据。
优选地,所述第一交易节点还包括:
接收单元,用于接收所述非交易节点发送的包含非交易节点签名密钥的查看申请请求;
验证及加密单元,用于对所述非交易节点签名密钥进行验证处理,并在验证通过后,利用所述非交易节点公钥对其随机对称密钥进行加密处理,得到非交易节点加密随机对称密钥;
发送单元,用于将所得到的非交易节点加密随机对称密钥发送给所述非交易节点,使所述非交易节点使用其解密私钥对非交易节点加密随机对称密钥进行解密处理后,得到随机对称密钥,并使用所得到的随机对称密钥对其保存的加密交易数据进行解密处理,得到明文交易数据。
根据本发明实施例提供的方案,具有权限控制方法简单,能够在保护交易私密性的前提下,符合监管要求,同时在满足监管情况下,实现交易的安全性,并且权限控制可以动态设定,不需要在系统部署前预先设置授权节点,满足了交易私密性的前提下,符合监管要求,实现交易数据的安全性。
附图说明
图1是本发明实施例提供的一种基于区块链交易的权限控制方法的流程图;
图2是本发明实施例提供的一种基于区块链交易的权限控制系统的示意图;
图3是本发明实施例提供的区块链系统示意图;
图4是本发明实施例提供的基于区块链交易的权限控制方法的流程示意图;
图5是本发明实施例提供的会员注册证书及管理示意图;
图6是本发明实施例提供的加解密交易数据示意图。
具体实施方式
以下结合附图对本发明的优选实施例进行详细说明,应当理解,以下所说明的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
图1是本发明实施例提供的一种基于区块链交易的权限控制方法的流程图,如图1所示,包括:
步骤s101:区块链中的每个节点通过向证书授权中心注册,获取该节点的公钥和解密私钥,并将所获取的公钥和解密私钥发送给所述证书授权中心进行保存;
步骤s102:区块链中的第一交易节点利用其产生的随机对称密钥和第二交易节点的公钥对交易数据进行加密后,将加密后的密文交易数据发送给区块链中的每个节点;
步骤s103:当监管方查看所述密文交易数据时,通过从所述证书授权中心获取所述第二交易节点的解密私钥进行解密处理后,得到明文交易数据。
其中,所述区块链中的第一交易节点利用其产生的随机对称密钥和第二交易节点的公钥对交易数据进行加密后,将加密后的密文交易数据发送给区块链中的每个节点包括:所述第一交易节点利用所述第二交易节点的公钥对所产生的随机对称密钥进行加密处理,得到加密随机对称密钥;所述第一交易节点利用其公钥及解密私钥产生随机对称密钥,并使用所产生的随机对称密钥对交易数据进行加密处理,得到加密交易数据;所述第一交易节点将所得到的加密随机对称密钥与所得到的加密交易数据叠加处理后,得到密文交易数据,并将所得到的密文交易数据发送给区块链中的每个节点。
其中,所述当监管方查看所述密文交易数据时,通过从所述证书授权中心获取所述第二交易节点的解密私钥进行解密处理后,得到明文交易数据包括:当监管方查看所述密文交易数据时,所述监管方向所述证书授权中心发送包含监管方签名密钥的解密私钥申请请求,使所述证书授权中心对监管方签名密钥验证通过后,将所述第二交易节点解密私钥发送给所述监管方;所述监管方接收到所述第二交易节点解密私钥后,利用所述第二交易节点解密私钥对所述密文交易数据中的加密随机对称密钥进行解密处理,得到随机对称密钥;所述监管方利用所得到的随机对称密钥对所述密文交易数据中的加密交易数据进行解密处理,得到明文交易数据。
本发明实施例还包括:当所述第二交易节点查看所述密文交易数据时,利用其解密私钥对所述密文交易数据中的加密随机对称密钥进行解密处理,得到随机对称密钥,并利用所得到的随机对称密钥对所述密文交易数据中的加密交易数据进行解密处理,得到明文交易数据。
本发明实施例还包括所述区块链中的任一非交易节点查看所述密文交易数据的步骤,具体包括:所述第一交易节点接收所述非交易节点发送的包含非交易节点签名密钥的查看申请请求;所述第一交易节点对所述非交易节点签名密钥进行验证处理,并在验证通过后,利用所述非交易节点公钥对其随机对称密钥进行加密处理,得到非交易节点加密随机对称密钥;所述第一交易节点将所得到的非交易节点加密随机对称密钥发送给所述非交易节点,使所述非交易节点使用其解密私钥对非交易节点加密随机对称密钥进行解密处理后,得到随机对称密钥,并使用所得到的随机对称密钥对其保存的加密交易数据进行解密处理,得到明文交易数据。
图2是本发明实施例提供的一种基于区块链交易的权限控制系统的示意图,如图2所示,包括:证书授权中心201,用于分别接收各节点发送的注册请求向各节点返回每个节点的公钥及解密私钥,并将各节点的公钥及解密私钥进行保存;第一交易节点202,用于利用其产生的随机对称密钥和第二交易节点的公钥对交易数据进行加密后,将加密后的密文交易数据发送给区块链中的每个节点;监管方203,用于当查看所述密文交易数据时,通过从所述证书授权中心获取所述第二交易节点的解密私钥进行解密处理后,得到明文交易数据。
其中,所述第一交易节点202包括:第一加密单元,用于利用所述第二交易节点的公钥对所产生的随机对称密钥进行加密处理,得到加密随机对称密钥;第二加密单元,用于利用其公钥及解密私钥产生随机对称密钥,并使用所产生的随机对称密钥对交易数据进行加密处理,得到加密交易数据;叠加单元,用于将所得到的加密随机对称密钥与所得到的加密交易数据叠加处理后,得到密文交易数据,并将所得到的密文交易数据发送给区块链中的每个节点。
其中,所述监管方203包括:发送单元,用于当查看所述密文交易数据时,向所述证书授权中心发送包含监管方签名密钥的解密私钥申请请求,使所述证书授权中心对监管方签名密钥验证通过后,将所述第二交易节点解密私钥发送给所述监管方;解密单元,用于接收到所述第二交易节点解密私钥后,利用所述第二交易节点解密私钥对所述密文交易数据中的加密随机对称密钥进行解密处理,得到随机对称密钥;查看单元,用于利用所得到的随机对称密钥对所述密文交易数据中的加密交易数据进行解密处理,得到明文交易数据。
本发明实施例还包括第二交易节点,用于在查看所述密文交易数据时,利用其解密私钥对所述密文交易数据中的加密随机对称密钥进行解密处理,得到随机对称密钥,并利用所得到的随机对称密钥对所述密文交易数据中的加密交易数据进行解密处理,得到明文交易数据。
其中,所述第一交易节点202还包括:接收单元,用于接收所述非交易节点发送的包含非交易节点签名密钥的查看申请请求;验证及加密单元,用于对所述非交易节点签名密钥进行验证处理,并在验证通过后,利用所述非交易节点公钥对其随机对称密钥进行加密处理,得到非交易节点加密随机对称密钥;发送单元,用于将所得到的非交易节点加密随机对称密钥发送给所述非交易节点,使所述非交易节点使用其解密私钥对非交易节点加密随机对称密钥进行解密处理后,得到随机对称密钥,并使用所得到的随机对称密钥对其保存的加密交易数据进行解密处理,得到明文交易数据。
本发明实施例在用户端注册产生证书的公钥及解密私钥,签名密钥作为用户的唯一身份识别并由用户在本地保管,加密密钥及公钥由ca中心保管,监管方能够获取用户的加密密钥;区块链中一定范围内的节点达成交易,交易数据由交易中的任一方加密并将交易数据分发至区块链网络中的所有节点进行分布式存储;区块链网络中交易接收方可通过解密私钥对交易数据解密进行账本查看,非授权节点仅负责记账,无法解密交易数据;交易方利用授权节点公钥对交易数据进行加密实现授权;监管方利用会员加密密钥在不需要授权情况下进行账本查看实现监管。
如附图3-4所示,本发明的基于区块链交易的权限控制方法及系统,该方法步骤是:
s1:为区块链网络中的各个节点配置权限系统,并部署加解密智能合约及权限智能合约;
其中,所述权限系统包括权限智能合约和加解密智能合约。所述权限智能合约用于访问权限控制,即控制有无权限,通过权限智能合约控制是否授权;所述加解密智能合约用于传递交易节点和授权节点之间的加解密信息。
s2:用户端注册产生证书的公私钥对,签名密钥作为用户的唯一身份并由用户在本地保管,加密密钥及公钥由ca中心保管,监管方通过ca中心获取用户的加密密钥;
s3:区块链中一定范围内的节点达成交易后,交易数据由交易群体中的任一方加密并将交易数据通过rpc通道分发至区块链网络中的所有节点进行分布式存储;
s4:区块链网络中交易接收方使用在本地保管的解密私钥对交易数据解密进行账本查看,非授权节点仅负责记账,无解密交易数据功能;
s5:交易方利用授权节点公钥对交易数据进行加密实现对非交易节点的数据授权;
s6:监管方从ca中心获取加密密钥在不需要授权情况下进行账本查看实现监管。
如图5所示,用户端注册获取数字证书,数字证书中的密钥包括签名密钥和加密密钥,签名密钥是唯一的身份识别,在交易过程中用于交易签名且由用户在本地保存;加密密钥用于加解密数据,由密钥管理中心存放并备案,监管方能够提取用户的加解密私钥,解密交易数据;
如图6所示,区块链中一定范围内的节点a、b建立通道进行单独交易,区块链网络中未参与交易的区块链节点仅负责存储加密后的交易数据;在a、b进行交易时,由用户a(或用户b)产生本次交易的随机对称加密密钥对交易数据进行加密;
交易方a采用交易方b的加密公钥对交易数据进行加密,其具体步骤如下:
步骤1:交易群体中任一方节点产生一个随机对称密钥;
步骤2:产生随机对称密钥的交易节点分别使用达成交易协议的交易接收方的公钥对随机产生的密钥进行加密,并将加密后的数据存在交易数据中;
步骤3:交易数据加密后,通过智能合约将加密信息数据发送给交易接收方及区块链网络中的所有节点;
区块链网络中交易接收方b在接收到加密的交易数据后,利用在本地保管的加密私钥对加密数据进行解密获取加密时产生的随机对称密钥,并使用随机对称密钥解密交易数据,获取交易明文;
交易方a利用授权用户c的公钥对交易数据进行加密实现对非交易节点的数据授权,其具体步骤包括:
交易群体中的交易方a接收到用户c查看交易数据请求后,通过加解密智能合约验证用户c的身份,若身份验证失败,则拒绝授权,并将拒绝信息通过rpc通道广播到区块链网络中的节点;否则进行解密授权,利用智能合约将解密信息发送给授权方;并将授权信息通过rpc通道进行全网广播,写进区块;
步骤2:交易方a确认请求节点c的身份后,使用请求方c公钥对数据进行非对称加密,加密后通过智能合约将解密信息发布给授权节点c,授权节点c获取解密密钥后进行解密查看数据;
监管方利用用户加密密钥在不需要授权情况下进行账本查看实现监管;监管方通过权限智能合约向ca中心发起获取密钥请求,ca中心验证监管方签名密钥后,通过rpc通道将解密密钥发送至监管方,监管方使用解密密钥进行账本查看;监管方获取加解密私钥后仅能实现账本查看功能,不能篡改交易数据;为防止监管方篡改交易数据使用双密钥对模拟实现,双密钥对包含签名密钥对和加称密钥对,即监管方不能获取由用户在本地保存的签名私钥。
根据本发明实施例提供的方案,通过对交易数据进行加密,从而有效地利用区块链分布式数据存储交易数据的特点,并保证交易的私密性,并且不因数据分布式存储造成数据公开的问题,并能在满足私密性的情况下,满足监管要求。
尽管上文对本发明进行了详细说明,但是本发明不限于此,本技术领域技术人员可以根据本发明的原理进行各种修改。因此,凡按照本发明原理所作的修改,都应当理解为落入本发明的保护范围。