本发明涉及区块链账户访问控制技术领域,具体为一种基于区块链账户加密的访问控制系统。
背景技术:
区块链可以生成一套记录时间先后的、不可篡改的、可信任的数据库,这套数据库是去中心化存储且数据安全能够得到有效保证的。概括来说,区块链是一种将相关数据存储于区块中,把区块以链的方式组合在一起的数据结构,它适合存储简单的、有先后关系的、能在系统内验证的数据,用密码学保证了数据的不可篡改和不可伪造。它能够使参与者对全网交易记录的事件顺序和当前状态建立共识。
由于区块链是一个公开数据库,每个账户里的记录都是公开的。这样的公开透明带来了很大的数据隐私问题,以资产交易应用场景为例:当你把你的账户地址告知交易对方时,对方就能通过区块链查询到这个账户里的所有资产和历史交易了。因此,如何对访问用户的身份进行安全验证是目前需要解决的问题。
技术实现要素:
(一)解决的技术问题
针对现有技术的不足,本发明提供一种基于区块链账户加密的访问控制系统,以解决目前的区块系统,在用户向区块链内的数据库发送访问请求时,无法对访问用户的身份进行安全验证的技术问题。
(二)技术方案
为实现上述目的,本发明提供如下技术方案:
一种基于区块链账户加密的访问控制系统,包括:配置有节点数据库bd1的节点服务器bs1,该节点服务器bs1上运行有数据库访问控制系统软件;
配置有节点数据库bd2的节点服务器bs2,该节点服务器bs2上运行有数据库访问控制系统软件;
以及配置有节点数据库bdn的节点服务器bsn,该节点服务器bsn上运行有数据库访问控制系统软件;
当任一节点服务器bsi上的用户ui向区块链内的任一节点数据库bdj发送访问请求时,运行在节点服务器bsj操作系统上的数据库访问控制系统,采用基于零知识证明的验证方法对用户ui的身份进行验证;
所述的数据库访问控制系统的验证方法,包括以下步骤:
步骤一:节点服务器bsi的用户ui在数据库访问控制系统上进行加密注册,具体为:用户ui选取两个大的素数b和d,计算h=b×d;用户ui从[0,h-1]中选取一个私钥s,计算公钥g=smodh;用户ui将h和g传送给数据库访问控制系统;
步骤二:当任一节点服务器bsi上的用户ui向区块链内的任一节点数据库bdj发送访问请求时,数据库访问控制系统对用户ui的身份进行验证,具体的验证过程为:
步骤s1.用户ui从[0,h-1]中随机选取一个数m,计算l=m2modh,并将l传送给数据库访问控制系统;
步骤s2.数据库访问控制系统向用户ui返回数据e;
步骤s3.用户ui计算w=mse,将w传送给数据库访问控制系统;
步骤s4.数据库访问控制系统计算w2modh和l×ge,如果w2modh=l×ge,则用户ui知道私钥s的值,即用户ui的身份通过了验证,为合法;
步骤三:若用户ui的身份合法,则数据库访问控制系统允许用户ui访问区块链内的任一节点数据库bdj内的账户数据。
进一步的,所述的步骤一:节点服务器bsi的用户ui在数据库访问控制系统上进行加密注册,具体的步骤包括:
步骤s1.用户ui在数据库访问控制系统上,点击用户注册,数据库访问控制系统弹出与用户ui进行交互式通信的对话框;
步骤s2.用户ui选取两个大的素数b和d,计算h=b×d;用户ui从[0,h-1]中选取一个私钥s,计算公钥g=smodh;
步骤s3.用户ui在弹出的对话框中输入h和g,之后对话框消失。
进一步的,所述的步骤二中的步骤s1、步骤s2、步骤s3和步骤s4构成一轮验证,如果在某一轮验证的执行过程中,用户ui没有通过验证,则整个验证过程终止,用户ui未通过数据库访问控制系统的验证。
进一步的,所述的数据e为0或1。
(三)有益的技术效果
与现有技术相比,本发明具备以下有益的技术效果:
本发明中当任一节点服务器bsi的用户ui向区块链内的任一节点数据库bdj发送访问请求时,运行在节点服务器bsj操作系统上的数据库访问控制系统,采用了基于零知识证明的验证方法对用户ui的身份进行验证,只有通过了身份验证的用户ui,才能向区块链内的任一节点数据库bdj发送访问请求,才可以访问区块链内的任一节点数据库bdj内的账户数据;
并且在用户ui的身份验证完成之后,数据库访问控制系统只是知道用户ui的身份是否合法,其并不知道用户ui的私钥s,即用户ui在不泄露自己的私钥s的前提下,安全地完成了身份的验证;
从而解决了目前的区块系统,在用户向区块链内的数据库发送访问请求时,无法对访问用户的身份进行安全验证的技术问题。
具体实施方式
下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种基于区块链账户加密的访问控制系统,包括:配置有节点数据库bd1的节点服务器bs1,该节点服务器bs1上运行有数据库访问控制系统软件;
配置有节点数据库bd2的节点服务器bs2,该节点服务器bs2上运行有数据库访问控制系统软件;
配置有节点数据库bdn的节点服务器bsn,该节点服务器bsn上运行有数据库访问控制系统软件;
当节点服务器bsi的用户ui向区块链内的任一节点数据库bdj发送访问请求时,运行在节点服务器bsj操作系统上的数据库访问控制系统,采用基于零知识证明的用户身份验证方法对用户ui的身份进行验证;
若用户ui的身份通过验证,则数据库访问控制系统允许用户ui访问区块链内的任一节点数据库bdj;
若用户ui的身份未通过验证,则数据库访问控制系统不允许用户ui访问区块链内的任一节点数据库bdj;
数据库访问控制系统的验证方法,包括以下步骤:
步骤一:节点服务器bsi的用户ui在数据库访问控制系统上进行加密注册,具体为:
步骤s1.用户ui在数据库访问控制系统上,点击用户注册,数据库访问控制系统弹出与用户ui进行交互式通信的对话框;
步骤s2.用户ui选取两个大的素数b和d,计算h=b×d;用户ui从[0,h-1]中选取一个私钥s,计算公钥g=smodh;
步骤s3.用户ui在弹出的对话框中输入h和g,之后对话框消失;
该私钥s为唯一合法的证明密钥,且仅为用户ui单独拥有,即数据库访问控制系统并不知晓私钥s;
步骤二:当节点服务器bsi的用户ui向区块链内的任一节点数据库bdj发送访问请求时,运行在区块链内的任一节点服务器bsj操作系统上的数据库访问控制系统开始对用户ui的身份进行验证,具体的验证过程为:
步骤s1.数据库访问控制系统在验证页面上弹出与用户ui进行交互式通信的对话框;
步骤s2.用户ui从[0,h-1]中随机选取一个数m,计算l=m2modh,并将l输入到对话框内;
步骤s3.数据库访问控制系统在对话框内显示e,其中e为0或1;
步骤s4.用户ui计算w=mse,将w输入到对话框内;其中,m是用户ui选取的一个随机数,s是用户ui的私钥;
步骤s5.数据库访问控制系统计算w2modh和l×ge,如果w2modh=l×ge,则用户ui知道私钥s的值;
上述的步骤s2、s3、s4和s5构成一轮验证,每一轮验证让e为0或1,重复执行ki之后,用户ui只有每一轮都通过验证,才能通过数据库访问控制系统的验证;
如果在某一轮验证的执行过程中,用户ui没有通过验证,则整个验证过程终止,用户ui未通过数据库访问控制系统的验证;
优选的,上述的身份验证完成之后,数据库访问控制系统只是知道用户ui的身份是否合法,其并不知道用户ui的私钥s,即用户ui在不泄露自己的私钥s的前提下,完成了身份的验证;
步骤三:若节点服务器bsi的用户ui的身份通过了数据库访问控制系统的验证,则数据库访问控制系统允许用户ui向区块链内的任一节点服务器bsj的节点数据库bdj发送访问请求,用户ui可以访问区块链内的任一节点数据库bdj内的账户数据;
若节点服务器bsi的用户ui的身份未通过数据库访问控制系统的验证,则数据库访问控制系统不允许用户ui向区块链内的任一节点服务器bsj的节点数据库bdj发送访问请求,用户ui不可以访问区块链内的任一节点数据库bdj内的账户数据;
其中,所述的对话框具备无痕迹通信功能,即对话框内的所有交互通信内容均没有任何备份记录。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
1.一种基于区块链账户加密的访问控制系统,其特征在于,包括:配置有节点数据库bd1的节点服务器bs1,该节点服务器bs1上运行有数据库访问控制系统软件;
配置有节点数据库bd2的节点服务器bs2,该节点服务器bs2上运行有数据库访问控制系统软件;
以及配置有节点数据库bdn的节点服务器bsn,该节点服务器bsn上运行有数据库访问控制系统软件;
当任一节点服务器bsi上的用户ui向区块链内的任一节点数据库bdj发送访问请求时,运行在节点服务器bsj操作系统上的数据库访问控制系统,采用基于零知识证明的验证方法对用户ui的身份进行验证,该验证方法包括以下步骤:
步骤一:节点服务器bsi的用户ui在数据库访问控制系统上进行加密注册,具体为:用户ui选取两个大的素数b和d,计算h=b×d;用户ui从[0,h-1]中选取一个私钥s,计算公钥g=smodh;用户ui将h和g传送给数据库访问控制系统;
步骤二:当任一节点服务器bsi上的用户ui向区块链内的任一节点数据库bdj发送访问请求时,数据库访问控制系统对用户ui的身份进行验证,具体的验证过程为:
步骤s1.用户ui从[0,h-1]中随机选取一个数m,计算l=m2modh,并将l传送给数据库访问控制系统;
步骤s2.数据库访问控制系统向用户ui返回数据e;
步骤s3.用户ui计算w=mse,将w传送给数据库访问控制系统;
步骤s4.数据库访问控制系统计算w2modh和l×ge,如果w2modh=l×ge,则用户ui知道私钥s的值,即用户ui的身份通过了验证,证明为合法;
步骤三:若用户ui的身份合法,则数据库访问控制系统允许用户ui访问区块链内的任一节点数据库bdj内的账户数据。
2.根据权利要求1所述的访问控制系统,其特征在于,所述的步骤一中,节点服务器bsi的用户ui在数据库访问控制系统上进行加密注册,具体的步骤包括:
步骤s1.用户ui在数据库访问控制系统上,点击用户注册,数据库访问控制系统弹出与用户ui进行交互式通信的对话框;
步骤s2.用户ui选取两个大的素数b和d,计算h=b×d;用户ui从[0,h-1]中选取一个私钥s,计算公钥g=smodh;
步骤s3.用户ui在弹出的对话框中输入h和g,之后对话框消失。
3.根据权利要求2所述的访问控制系统,其特征在于,所述的步骤二中的步骤s1、步骤s2、步骤s3和步骤s4构成一轮验证,如果在某一轮验证的执行过程中,用户ui没有通过验证,则整个验证过程终止,用户ui未通过数据库访问控制系统的验证。
4.根据权利要求3所述的访问控制系统,其特征在于,所述的数据e为0或1。
技术总结