一种可监管的区块链系统及方法与流程

文档序号:13212595阅读:488来源:国知局
一种可监管的区块链系统及方法与流程

本发明属于计算机应用技术领域,具体涉及一种可监管的区块链系统及方法,允许不同的监管中心根据职能的不同对区块链系统用户的行为进行监管。



背景技术:

区块链起源于比特币,其本质是一种分布式存储技术,具有去中心化、匿名、可追溯、不可篡改等性质。利用区块链技术,可以在无中心信任机构的情况下建立一套新的信任体系。因此,可被应用于金融服务、共享经济、医疗健康、社会管理等场景。然而在传统区块链中,所有用户的账户信息及交易内容都是公开的。即使任何用户都可以读取这些公开数据,但是区块链为保证匿名性采用的假名系统却会给社会稳定带来极大的威胁。例如,其无法抵御洗钱等违法行为。一个真实用户可以生成许多不同的账户,并在这些账户之间不断进行资金转移,使反洗钱变得困难。为了防范此类犯罪行为,本发明公开一种可监管的区块链系统及方法。

属性加密方案(abe)是一种能够实现细粒度非交互访问控制机制的加密技术。在abe中,用户能够成功解密的条件是一组属性集合能够满足访问控制策略,并根据功能不同将其分为两大类:密文策略的属性加密方案(kp-abe),其中密钥与访问控制策略相关联,密文与用户的属性集合相关联;密文策略的属性加密方案(cp-abe),与kp-abe相反,密钥与用户的属性集合相关,密文与访问策略相关联。对于这两种属性加密方案,只有当属性集合满足访问控制策略的时候,用户才能够正确解密。kp-abe的主要应用场景是付费电视系统,而cp-abe主要应用于带访问控制的信息共享系统,如电子病历系统等。本发明采用cp-abe来实现对系统用户行为的监管。为了提高加密效率,采用kem/dem混合加密。即由cp-ab-kem方案加密会话密钥,再用会话密钥作为dem的私钥加密数据本身。与abe方案一致的是,仅具有相应属性的用户才可解密kem获得封装的会话密钥,再利用会话密钥解密dem部分获取数据。

目前已知一项中国专利cn106503994a(基于属性加密的区块链隐私数据访问控制方法)也采用了属性加密技术对区块链系统进行改进。该发明提出了一种基于属性加密的区块链隐私数据访问控制方法,主要解决传统技术仅对区块链中用户的真实身份进行匿名保护,未对交易隐私信息进行加密保护而造成的隐私泄露问题。其实现步骤为:(1)系统初始化;(2)用户注册获取属性信息;(3)权威中心根据用户属性信息分发用户私钥;(4)交易方加密交易隐私数据并上传至区块链;(5)记账员对交易信息进行验证并执行交易;(6)授权监管中心使用授权私钥解密查看交易密文。由上述步骤6可以看出,该发明也允许授权监管中心解密查看交易密文,起到一定监管作用,但是存在一个严重的问题:所有交易数据以密文形式存在,会使得监管中心的监管工作将变得极为复杂,尤其是监管中心可能无法及时地发现异常行为而作出相应的处理。一旦监管工作失去时效性,打击违法犯罪行为的力度将大大削弱。此外,该发明是以属性对用户进行区分,但实际上具有相同属性的用户并非只有一个,无法确切地知道是谁产生的一笔交易,即无法在违法犯罪行为发生时确认其真实身份,监管十分困难。



技术实现要素:

本发明的技术解决问题:克服现有技术的不足,提供一种可监管的区块链系统及方法,利用abe、签名等密码学技术,构建一种可实时监管的区块链,允许不同的监管部门根据职能的不同对区块链系统的数据进行监管,由此防范违法行为等的发生。

本发明采用以下的技术方案:一种可监管的区块链系统,包括:认证中心(ca)、密钥分发中心(kdc)、监管部门和普通节点;

1、认证中心(ca),拥有生成签名的私钥:对普通节点进行身份认证,获取其真实身份信息及用于区块链运行的账户信息(如公钥或者钱包地址);将真实的身份信息根据给定的监管规则用abe算法加密,生成相应密文;生成关于节点账户信息以及abe加密密文的签名;封装节点账户信息、abe加密密文、签名成为该节点的注册信息;将注册信息公布至区块链网络中,等待被现有节点验证并写入区块链以完成节点注册。

2、密钥分发中心(kdc),定义描述各监管部门职能的完全属性集合,生成abe算法的公共参数以及可为监管部门分发密钥的主私钥;制定监管规则—具有什么属性的监管部门监管具有什么身份的节点;将公共参数及监管规则发送至ca处。判断监管部门满足的属性集,并利用主私钥为其生成相应的私钥。

3、监管部门,从kdc处获取自己的私钥。监测区块链网络交易行为,若发现异常的账户,如短时间内产生大量或大笔的交易等,则搜索区块链中关于该账户的注册信息,验证签名的有效性,解密abe加密密文获取该账户的真实身份信息。

4、普通节点,通过与ca的交互完成注册后参与区块链的运行。

本发明一种可监管的区块链方法,实现步骤如下:

1、系统建立:ca生成签名公私钥对,并公开自己的公钥;kdc定义描述各监管部门职能的完全属性集合,生成abe算法的公共参数以及可为监管部门分发密钥的主私钥,制定监管规则,将公共参数及监管规则发送至ca处。

2、分发监管密钥:当有新的监管部门加入时,kdc首先判断其满足的属性集,然后利用自己的主私钥为其生成相应的密钥,最后将该密钥以安全的方式发送给该监管部门。

3、区块链运行:由普通节点共同参与。与传统区块链相同的是,区块链仍然以具有特殊结构的创世区块作为开端,而后由一系列具有相同结构的区块以哈希值链接组成,节点之间可以相互转账,并且通过共识机制产生记账节点写入新区块,而该区块记录了在一段时间内发生的所有交易数据;不同的是,本发明通过在数据结构中增加用户注册信息表实现了监管功能,其主要包含在一段时间内产生的所有新节点注册信息(具体产生方式见4、节点注册),该数据会被封装到新区块中并最终记录于区块链上。因此,通过搜索区块链,不仅可以查询交易数据,还可以查询注册信息。

4、节点注册:当有新节点希望加入区块链运行时,其首先与ca进行交互完成身份认证,并提供自己将会在区块链运行中使用的账户信息,如公钥或钱包地址等。ca利用与该节点交互之后获取的身份信息,结合kdc提供的监管规则判断具有什么属性的监管部门才可在未来某一时刻获取该节点的真实身份信息,并依据此判断采用abe算法加密该信息获得加密之后的密文;然后利用自己的签名私钥生成关于节点账户信息以及abe加密密文的签名,并封装节点账户信息、abe加密密文、签名成为该节点的注册信息;最后将注册信息公布至区块链网络中。所有已注册的节点在收到注册信息后,会验证其中的签名的有效性,并将一段时间内产生的所有的新的交易数据及注册信息按一定的数据结构封装生成新的区块。当注册信息被写入区块链中后,则新节点注册完成。在之后,该节点则可以正常加入区块链的运行。

5、监管交易行为:监管部门通过自己的方法监测区块链网络交易行为,一旦有账户存在异常行为,如短时间内产生大量或大笔的交易等,则搜索区块链中关于该节点的注册信息,验证其中签名的有效性并解密abe加密密文获取该节点的真实身份。

本发明与现有技术相比的优点在于:

1、与传统区块链相比,本发明增加了监管功能,解决了现有区块链系统无监管功能的缺点。利用现有的abe、签名的现有密码技术,仅部分修改区块链数据结构及节点准入规则,可达到监管用户交易行为的目的。为实现反洗钱等监管行为提供基础。

2、与现有专利相比,本发明仅对用户真实身份加密,没有权限的实体无法解密注册信息获取其真实身份,一方面保护了普通用户的匿名性,另一方面监管部门通过监测网络中的交易可锁定异常账户,一旦发现异常账户就可以通过搜索区块链以获取其真实身份,做到实时监管。

附图说明

图1为本发明系统组成框图;

图2为数据结构图,即区块链存储的具体方式图;

图3为新节点注册流程图即身份认证及公开注册信息详细流程图;

图4为监管流程图。

具体实施方式

下面结合附图及实施例对本发明进行详细说明。

如图1所示,本系统将所有参与实体根据功能的部分进行划分如下:

1、认证中心(ca),对普通节点进行身份认证、生成关于该节点的注册信息,并公开至区块链网络,等待被写入区块链中完成节点的注册;

2、密钥分发中心(kdc),制定监管规则,定义监管部门完全属性集,根据监管部门的具体属性为其分发密钥;

3、监管部门,从kdc处获取密钥,监测区块链网络交易,一旦出现异常账户,则利用自己的密钥解密区块链中的节点注册信息获取节点的真实身份;

4、普通节点,与ca进行交互,进行身份认证、完成注册之后加入区块链运行。

近一步地,所有普通节点、监管部门在可以在本地存储一份区块链备份,并实时同步区块链网络中的新数据。

基于以上实体,本发明系统实现以下功能:

1、系统建立

ca生成签名的公私钥对,并公开自己的公钥;kdc首先运行cp-ab-kem方案的系统初始化算法,生成公开参数pk及自己的主私钥msk,定义描述各监管部门职能的完全属性集合u,制定监管规则描述具有什么属性的部门可以监管什么身份的节点,选取合适的对称加密算法(aes)作为dem算法,并公开自己的公开参数、完全属性集合、监管规则及选取的dem算法;生成区块链创世区块,包括完成区块链的配置(与传统区块链无异),选取预选节点,由它们并与ca交互完成注册,生成预选节点注册表。

具体地,cp-ab-kem方案的系统初始化算法为:首先根据预设的规则选取一个非对称的双线性映射d=(g1,g2,gt,e,p),其中g1,g2,gt是三个不同的群,p是这些群的阶数,取为素数,e是非对称的双线性映射e:g1×g2→gt,可将其看作一个函数,分别输入g1中的一个元素及g2中的一个元素即可输出一个gt中的元素。系统的属性描述u由有限域zp(整数环中的模p的剩余类环)中的元素构成,即将所有的真实世界中的属性用zp中的一个元素代表,且一个属性唯一对应一个这样的元素,所有对应关系也被记录在属性描述u中。然后算法随机选取群g1中的生成元g,h,u,v,w,随机选取群g2中的生成元z,选取有限域zp中任意的随机数α,利用上述非对称的双线性映射e,生成gt上的元素e(g,z),最后利用随机数α对e(g,z)做模指数运算得到e(g,z)α。将所有上述选取或生成的d,g,h,u,v,w,z,e(g,z)α作为公开参数pk,记作pk=(d,g,h,u,v,w,z,e(g,z)α),并发送给所有的用户;同时将pk,α作为主私钥msk,记作msk=(pk,α),由kdc安全地保存。

2、分发监管密钥

当有新的监管部门加入时,kdc首先判断其满足的属性集合其中a1,a2,...,ak均属于有限域zp,代表该监管部门总共拥有k个属性,属性集合s是上述完全属性集合u的一个子集;然后kdc利用自己的主私钥msk运行cp-ab-kem方案的密钥生成算法为其生成相应的密钥sk,最后将密钥以安全的方式发送给该监管部门。

具体地,cpa-ab-kem方案的密钥生成算法为:输入kdc的主私钥msk以及用户满足的属性集合从有限域zp中随机选取k+1个值r,r1,r2,...,rk,首先用主私钥α对生成元g做模指数运算得到gα,用随机数r对生成元w做模指数运算得到wr,对上述两部分做乘法得到部分密钥k0=gαwr;接着用随机数r对生成元z做模指数运算得到部分密钥k1=zr,对于i=1,2,...,k,与上述过程类似,分别计算部分密钥和部分密钥(其中-r表示r在有限域zp中的加法逆元),最后将s,k0,k1,{ki,2,ki,3},i=1,2,...,k一起作为用户的私钥sk,由用户自己安全地保存,并将其记作sk=(s,k0,k1,{ki,2,ki,3}),i=1,2,...,k。

3、区块链运行

由普通节点共同参与。与传统区块链相同的是,区块链仍然以具有特殊结构的创世区块作为开端,而后由一系列具有相同结构的区块以哈希值链接组成,节点之间可以相互转账,并且通过共识机制产生记账节点写入新区块,而该区块记录了在一段时间内发生的所有交易数据;不同的是,本发明通过在数据结构中增加用户注册信息表实现了监管功能,其主要包含在一段时间内产生的所有新节点注册信息(具体产生方式见4、新节点注册),该数据会被封装到新区块中并最终记录于区块链上。因此,通过搜索区块链,不仅可以查询交易数据,还可以查询注册信息。具体的数据结构如图2所示:区块链是由一系列具有时间先后顺序的区块以哈希值的方式链接组成,以创世区块作为开端。创世区块包含有配置信息及预选节点注册表,配置信息包含所有关于区块链的配置信息,如共识机制、pow初始难度等,预选节点注册表包含在区块链系统建立之初即可参与运行的节点的注册信息,其结构与其他区块中的用户注册表一致。除创世区块外,每个区块均包含区块序列号、区块头、区块大小、区块哈希、用户注册表及数据集。用户注册表包含在一段时间内所有新节点注册的信息,每一条注册信息由该节点公钥pk,其真实身份信息的abe加密密文(由head、ab-kem以及dem三个部分组成,其中head标记该密文中ab-kem及dem分别的长度以保证可正确解密),ca用自己的私钥对前两部分信息的签名连接组成。数据集包含一段时间内所有的数据(有序)。区块头记录父区块哈希、时间戳、merkle根。其中,merkel根是将所有数据按merkle树的结构组成的根节点的值。不用下载所有的数据即可利用merkle树结构快速地验证该区块存在某个特定的数据。

4、新节点注册

具体流程如图3所示。当有新节点希望加入区块链运行时,其首先向ca发起注册请求;然后由ca对新节点进行身份认证,获取其真实的身份信息;新节点向ca提供自己将会在区块链运行中使用的账户信息,本发明以公钥作为实例,所以节点需要生成公钥pknode,并将其发送给ca;ca根据kdc发送的监管规则及节点的真实信息生成相应的访问结构(m,ρ),利用从kdc处接收到的公开参数pk运行cp-ab-kem的加密算法生成关于会话密钥key的密文ct,并用会话密钥key作为aes算法的私钥加密新节点的真实身份信息,并用自己的签名私钥生成关于pk与封装密文的签名,形成注册信息;然后ca需要公开注册信息至区块链现有的网络中;所有已注册的节点在收到注册信息后,会验证其中的签名的有效性,并将一段时间内产生的所有的新的交易数据及注册信息按一定的数据结构封装生成新的区块;当注册信息被写入区块链中后,则新节点注册完成,由ca通知新节点其注册成功。在之后,该节点则可以正常加入区块链的运行。

具体地,cp-ab-kem的加密算法为:输入公共参数pk,线性秘密共享访问结构(m,ρ),其中m是一个l行n列的矩阵,ρ是一个映射,由矩阵m中的任意一行映射为一个属性。首先,随机从有限域zp中选取随机数s和y2,...,yn,设置列向量(t为求行向量(s,y2,...,yn)的转置),计算关于随机数s的共享列向量表示将矩阵m和向量相乘,接着从有限域zp中选择随机数t1,t2,...,tk,计算会话密钥key=e(g,z)αs(αs表示α和s相乘),计算部分密文c0=zs.对于j=1,2,...,l,分别计算部分密文及部分密文(ρ(j)表示矩阵m的第j行映射的属性,-tj表示随机数tj在有限域zp中的加法逆元),计算部分密文设置密文为ct=((m,ρ),c0,{cj,1,cj,2,cj,3}),其中j=1,2,...,l。

5、监管用户行为

具体流程如图4所示。监管部门通过自己的方法监测区块链网络交易行为,一旦有账户存在异常行为,如短时间内产生大量或大笔的交易等(所述大量指很多笔交易,而大笔是指一笔交易的数额很大),则搜索区块链中关于该节点的注册信息。当搜到注册信息时,首先验证其中签名的有效性,验证通过之后就根据abe加密密文的head标识区分其中kem和dem部分,然后运行cp-ab-kem的解密算法解密kem部分获得会话密钥key,并用该会话密钥作为aes的密钥解密其中的dem部分获取该节点的真实身份。本实例不涉及具体的监管方法,监管部门可以根据自己的方法及规则判定什么行为为异常账户,本实例仅提供一旦判定为异常账户如何获取其真实身份的方法。

具体地,cp-ab-kem解密算法为:输入与访问结构(m,ρ)对应的密文ct和与属性集合对应的密钥sk=(s,k0,k1,{ki,2,ki,3}),i=1,2,...,k。如果属性集合不满足访问策略,算法终止。否则,在矩阵m的所有行向量映射的属性集合中,选取和属性集合s的交集为i={i:ρ(i)∈s},计算i中每i行矩阵行向mi的系数ωi使其满足下列等式其中mi是矩阵m的第i行,ωi·mi表示系数ωi数乘矩阵行向量mi,接着计算封装密钥其中j是属性ρ(i)在s中的索引,·表示gt中的乘法,长横线表示群gt中的除法,上方为被除数,下方为除数。其中除数表示首先对集合i中的所有元素i分别计算再将计算出的结果全部相乘;而每一个则是先利用上述非对称的双线性映射e分别计算出e(ci,1,k1),e(ci,2,kj,2),e(kj,3,ci,3),然后将其全部相乘之后获得一个gt中的元素,最后利用ωi对该元素做模指数运算获得最后,输出封装密钥key=e(g,z)αs

提供以上实施例仅仅是为了描述本发明的目的,而并非要限制本发明的范围。本发明的范围由所附权利要求限定。不脱离本发明的精神和原理而做出的各种等同替换和修改,均应涵盖在本发明的范围之内。

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