一种基于区块链的分布式授权管理系统及方法
文献发布时间:2024-04-18 19:57:31
技术领域
本发明涉及项目设计技术领域,尤其涉及一种基于区块链的分布式授权管理系统及方法。
背景技术
认证与授权是保证当前互联网活动安全性的最重要的两个方面。认证是证明你是谁的过程。例如,通过提供正确的用户名/密码,对用户的身份进行身份验证。授权则是在认证后根据权限策略,决定你可以做的什么。现有的授权管理机制,均通过中心化的决策手段进行,如通过一个具有最大权限的账号去对其他人进行授权操作,且授权项目的实施也基于中心化的服务器,容易出现的问题是通过管理员去授权,管理员的个人权限过大,可以对整个系统在内所有人的权限进行不受限制的随意修改和查看,对系统数据的安全性造成很大威胁。且中心化的服务器在遭受网络攻击或物理攻击下,难以保证服务器数据的安全性。
发明内容
本发明提出了一种基于区块链的分布式授权管理系统及方法,通过区块链技术提升现有授权机制安全性与授权过程公正性。
第一方面,一种基于区块链的分布式授权管理系统,包括前端页面模块、区块链模块和存储模块,所述前端页面模块连接区块链模块,区块链模块与存储模块连接,存储模块最后连接回前端页面模块实现数据的传输。
进一步,所述前端页面模块包括嵌入在前端页面中的web3.js子模块和truffle框架,所述web3.js子模块和truffle框架与区块链模块后端程序进行交互。
进一步,所述区块链模块包括联盟链和后端程序代码,区块链模块还设置有共识机制;所述后端程序代码使用solidity语言编写后端授权部分代码。
进一步,所述存储模块包括mysql数据库,还设置有hash加密子模块。
另一方面,一种基于区块链的分布式授权管理方法,基于一种基于区块链的分布式授权管理系统实现,包括以下步骤:
步骤S1:在区块链上发布授权信息,利用区块链上设置的共识算法对授权信息进行共识验证;
步骤S2:验证完毕后,将最后产生的授权结果存储在数据库中;
步骤S3:将数据库中的授权记录以hash加密方式存储在区块链上。
进一步,所述步骤S1授权信息的共识验证还包括:将代码部署在区块链上,授权流程在区块链上运行,授权过程为区块链多节点共识过程,结果为打包出一个区块,区块中记录整个验证过程及结果。
进一步,所述步骤S2还包括:在数据库中将记录中的关键字段进行hash加密,存储在区块链上;当未经过区块链共识而修改数据库中记录时,根据区块链上存储的记录hash值,判断是否有违规操作数据库。
本发明的有益效果:本发明提出了一种基于区块链的分布式授权管理系统及方法,利用区块链技术,解决现有授权体系以中心化角色为导向,授权过度中心化,无法保证每次授权的公正与正确的问题。利用区块链技术,授权流程记录在区块链上,信息公开透明且不可篡改,且授权过程需要经过区块链中节点共识,保证授权的公平性。且基于分布式服务器与中心化服务器相比,其安全性显著提高,数据损坏或丢失的可能性显著降低。
附图说明
图1是本发明一种基于区块链的分布式授权管理系统架构图;
图2是本发明实施例中基于区块链的分布式授权管理系统数据分析示意图。
实施方式
为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式。
本发明中,区块链技术是基于加密算法,共识算法,激励机制,分布式存储等技术而设计的不可篡改的去中心化账本。授权记录一旦发布,只有通过在区块链的共识机制中半数以上节点达成共识,才能被记录在区块链各个节点中,作为最终结果。且分布式存储中,每个节点保存整个区块链上的完整信息,保证了在某个节点宕机的情况下,不影响整个系统的稳定性。保存在数据库中的授权记录,以hash加密方式存储在区块链上公开供验证,以实现链下存储授权信息,链上存储验证信息的可验证防篡改、去中心化分布式存储的分布式授权管理。
在此基础上,本发明提出了一种基于区块链的分布式授权管理系统及方法,基于区块链的分布式授权管理系统模块结构如图1所示,系统数据分析处理如图2所示。第一方面,一种基于区块链的分布式授权管理系统,包括前端页面模块、区块链模块和存储模块,所述前端页面模块连接区块链模块,区块链模块与存储模块连接,存储模块最后连接回前端页面模块实现数据的传输。
在本实施例中,前端页面模块包括嵌入在前端页面中的web3.js子模块和truffle框架,所述web3.js子模块和truffle框架与区块链模块后端程序进行交互;区块链模块包括联盟链和后端程序代码,区块链模块还设置有共识机制;所述后端程序代码使用solidity语言编写后端授权部分代码;存储模块包括mysql数据库,还设置有hash加密子模块。
另一方面,一种基于区块链的分布式授权管理方法,包括以下步骤:
步骤S1:在区块链上发布授权信息,利用区块链上设置的共识算法对授权信息进行共识验证;共识验证还包括:将代码部署在区块链上,授权流程在区块链上运行,授权过程为区块链多节点共识过程,结果为打包出一个区块,区块中记录整个验证过程及结果。
步骤S2:验证完毕后,将最后产生的授权结果存储在数据库中;在数据库中将记录中的关键字段进行hash加密,存储在区块链上;当未经过区块链共识而修改数据库中记录时,根据区块链上存储的记录hash值,判断是否有违规操作数据库。
步骤S3:将数据库中的授权记录以hash加密方式存储在区块链上。
在本实施例中,区块链由于存储数据造价高昂,因此不作为数据库存取数据,数据的存储依旧使用数据库,本设计中后端数据库使用关系型数据库Mysql。授权过程在区块链上进行,具体流程为在区块链上发布授权信息,区块链上共识算法对授权信息进行共识验证,最后产生的授权结果存储在数据库中,数据库中授权记录以hash加密方式存储在区块链上。由于hash加密的不可逆特性,存储在链上的hash值一方面具备安全性,另一方面相同值做hash运算结果相同,可用来验证数据库中信息是否被篡改。
本实施例中,系统的设计分为以下流程:
前端设计:在前端页面中嵌入web3.js。通过truffle框架、web3.js技术开发前端与区块链上后端程序的交互的部分,使得前端发送请求能够被区块链上的后端程序处理。
后端设计:区块链使用联盟链。授权过程从传统的管理员对其他人授权变更为需要获得授权的人向链上发起申请。区块链通过共识机制决定授权结果是同意或是驳回。使用solidity语言编写后端授权部分代码。首先将代码部署在区块链上。授权流程在区块链上运行,授权过程为区块链多节点共识过程,结果为打包出一个区块,区块中记录整个验证过程及结果。
持久化设计:区块链通过共识后的授权记录结果存储进mysql数据库,在数据库中将记录中的关键字段进行hash加密,存储在区块链上。当有人未经过区块链共识而修改数据库中记录时,根据区块链上存储的记录hash值,可以判断是否有人违规操作数据库。
本发明利用区块链技术,解决现有授权体系以中心化角色为导向,授权过度中心化,无法保证每次授权的公正与正确。利用区块链技术,授权流程记录在区块链上,信息公开透明且不可篡改,且授权过程需要经过区块链中节点共识,保证授权的公平性。且基于分布式服务器与中心化服务器相比,其安全性显著提高,数据损坏或丢失的可能性显著降低。
联盟链代替传统后端作为项目的真正后端,以往前端调用后端接口的方式变为前端通过web3.js调用后端区块链上代码执行后端处理。持久化依旧使用关系型数据库。由于数据库存储数据开销大,为验证数据库中记录的真实性,采用链下数据库存储数据,链上存储数据的加密后hash值,以做数据库记录真实性的验证。
本发明以上显示和描述了本发明的基本原理和主要特征和本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
- 基于区块链的医疗电子病历分布式管理系统及其建设方法
- 一种基于区块链构建的身份授权安全访问方法
- 一种基于区块链和分布式账本的版权权益交易方法及装置
- 一种基于区块链的分布式电能储存系统及运行方法
- 一种基于区块链的在校学生诚信管理系统及其方法
- 一种基于区块链及分布式数字身份的统一授权方法及系统
- 一种基于蓝牙Mesh分布式区块链数据授权加密方法