本发明属于区块链技术领域,具体涉及基于区块链的应用程序的用户认证方法、用于应用程序的用户认证的区块链、基于区块链进行用户认证的应用程序和基于区块链的应用程序的用户认证系统。
背景技术:
《移动互联网应用程序信息服务管理规定》(以下简称《规定》),旨在加强对应用程序(即app)信息服务规范,促进行业健康有序发展和保护个体合法权益。在注册应用程序时,实现应用程序的实名制有多种形式。根据《规定》的要求,对注册用户进行基于移动电话号码等真实身份信息认证。不同的应用程序,实名制的方式可能有所不同,比如初期的微信、支付宝一类支付工具,只要绑定一张银行卡就完成了实名认证。由于每一张银行卡,都是需要身份证才能办理的。因此绑定了银行卡,就等同于知道了该账户的实际使用者是谁。对于另一些应用程序,可能需要上传身份证件,完成实名认证。比如淘宝网,如果想在该平台开店,则需要上传本人手持身份证的正反照,经后台人工认证后,才能完成实名认证。
以上实现方式带来的问题是,每个应用程序都需要自己开发对用户进行实名认证的功能,增加了应用程序开发的难度和工作量,导致一些新的应用程序推广受阻;另一方面,对于一些小应用开发商,用户也不放心将自己的身份证等重要信息上传给该应用的后台做审核,导致实名制认证不能顺利进行,无法保证其他用户的安全。受此限制,这些应用程序涉及支付功能只能依靠微信和支付宝等大的应用程序实现付款,不利于用户使用的安全性和便利性。
如何为应用程序提供便捷、有效、安全的用户信息认证,成为目前亟待解决的技术问题。
技术实现要素:
本发明所要解决的技术问题是针对现有技术中上述不足,提供基于区块链的应用程序的用户认证方法、用于应用程序的用户认证的区块链、基于区块链进行用户认证的应用程序和基于区块链的应用程序的用户认证系统,为应用程序提供便捷、有效、安全的用户信息认证方式。
解决本发明技术问题所采用的技术方案是该基于区块链的应用程序的用户认证方法,其包括步骤:
构建包括多个具有与大众用户身份相关信息的数据库的实名制认证节点以及管理节点的区块链;
所述管理节点根据所述应用程序的注册用户的所述手机号码,基于所述实名制认证节点向所述应用程序提供与所述手机号码关联的所述注册用户的个人信息认证等级和/或信用等级;
所述实名制认证节点至少包括通信运营类节点、银行类节点、行政部门类节点的任一类,所述管理节点为工信部节点。
一种基于区块链的应用程序的用户认证方法,其包括步骤:
所述应用程序获取至少包括申请该所述应用程序的注册用户的手机号码;
所述应用程序向所述区块链的管理节点发送所述注册用户的手机号码,申请对所述注册用户的个人信息认证等级和/或信用等级进行认证;
所述应用程序根据自身的应用等级以及所述区块链返回的所述注册用户的个人信息认证等级和/或信用等级,判断是否通过该用户的实名认证请求。
一种基于区块链的应用程序的用户认证方法,其包括步骤:
构建包括多个具有与大众用户身份相关信息的数据库的实名制认证节点以及管理节点的区块链;
所述应用程序获取至少包括申请该所述应用程序的注册用户的手机号码;
所述应用程序向所述区块链的所述管理节点发送所述注册用户的手机号码,申请对所述注册用户的个人信息认证等级和/或信用等级进行认证;
所述管理节点根据所述应用程序的所述注册用户的所述手机号码,基于所述实名制认证节点向所述应用程序提供与所述手机号码关联的所述注册用户的个人信息认证等级和/或信用等级;
所述应用程序根据自身的应用等级以及所述区块链返回的所述注册用户的个人信息认证等级和/或信用等级,判断是否通过该用户的实名认证请求;
所述实名制认证节点至少包括通信运营类节点、银行类节点、行政部门类节点的任一类,所述管理节点为工信部节点。
优选的是,构建包括多个具有与大众用户身份相关信息的数据库的实名制认证节点以及管理节点的区块链的步骤,包括:
所述管理节点建立本区块链的创世区块,所述创世区块中包括所述管理节点的标识、公钥以及创始人身份信息的记录信息,所述记录信息使用所述管理节点的私钥进行签名;
具有与大众用户身份相关信息的数据库的职能用户节点查询所述创世区块的信息并提取所述管理节点的地址;
所述职能用户节点向所述管理节点发送申请信息申请成为所述实名制认证节点,所述申请信息包括所述职能用户节点自身的标识、公钥以及身份信息,且使用该所述职能用户节点的私钥进行签名,所述身份信息至少包括职能部门的公司名称、法定代表人、注册资本、注册地址、企业注册号、成立时间;
所述管理节点收到所述职能用户节点的申请,审核所述职能用户节点的认证资质以及通过非区块链途径获得的对应职能用户的备案信息,判断所述职能用户节点是否具备实名制认证资格;
所述管理节点将审核通过的具备实名制认证资格的所述职能用户节点的属性信息,使用所述管理节点的私钥加密后广播至所述区块链,宣布所述职能用户节点成为所述实名制认证节点,其中,所述属性信息包括所述实名制认证节点的标识和公钥;
以及,所述管理节点在本地列表中存储所有所述实名制认证节点的属性信息。
优选的是,在所述职能用户节点查询所述创世区块的信息并提取所述管理节点的地址之前,还包括在所述区块链中确认所述管理节点及其真实性资质的步骤,包括:
所述职能用户节点向所述区块链广播确认信息,所述确认信息包括所述职能用户节点自身的标识、公钥以及身份信息,且使用所述职能用户节点的私钥进行签名;
所述职能用户节点向该所述区块链的至少一个相邻节点发送对所述创世区块的查询信息,所述查询信息使用所述职能节点的私钥进行签名;
所述职能用户节点通过所述相邻节点返回的所述创世区块的真伪信息,或两个以上所述相邻节点返回的所述创世节点的真伪信息的百分比,确认该所述区块链的所述创世节点的真实性。
优选的是,所述管理节点根据所述注册用户的所述手机号码,基于所述实名制认证节点向所述应用程序提供与所述手机号码关联的所述注册用户的个人信息认证等级和/或信用等级的步骤,包括:
所述管理节点接收所述应用程序发送的所述手机号码;
所述管理节点根据所述手机号码查询自身本地账本中是否已存储该所述手机号码对应的用户的认证信息:
若所述本地账本中已存储该所述手机号码对应的用户的认证信息,则将该所述手机号码对应的用户的个人信息认证等级发送给该应用程序;
若本地账本中未存储该所述手机号码对应的用户的认证信息,则所述管理节点向所述区块链发送广播信息,向所述实名制认证节点查询该所述手机号码对应的用户的个人信息认证等级和信用等级,所述广播消息使用所述管理节点的私钥进行签名;
所述实名制认证节点接收所述管理节点的广播消息,查询该所述手机号码在自身本地数据库中对应的用户个人信息认证等级和信用等级,并将查询结果广播至所述区块链中,所述查询结果使用该所述实名制认证节点的私钥进行签名;
所述管理节点接收所述实名制认证节点广播的所述查询结构,并所述查询结果中该所述手机号码对应的用户个人信息认证等级和/或信用等级发送给所述应用程序。
优选的是,在所述应用程序向所述管理节点发送所述注册用户的手机号码,申请对所述注册用户的个人信息认证等级和/或信用等级进行认证之前,还对非本区块链外的互联网络提供所述应用程序的所述注册用户验证查询服务,包括:
所述应用程序根据所述注册用户的手机号码,通过通信运营商的行业网关给该所述注册用户发送短信息以提供验证码:
若所述注册用户不能在所述应用程序中输入正确的所述验证码,则取消后续注册过程;
若所述注册用户能在所述应用程序中输入正确的所述验证码,则进入到该所述注册用户的真实身份认证过程。
一种用于应用程序的用户认证的区块链,其包括构建模组和认证模组,其中:
所述构建模组,配置为供构建包括多个具有与大众用户身份相关信息的数据库的实名制认证节点以及管理节点的区块链;
所述认证模组,配置为供所述管理节点根据所述应用程序的注册用户的所述手机号码,基于所述实名制认证节点向所述应用程序提供与所述手机号码关联的所述注册用户的个人信息认证等级和/或信用等级;
所述实名制认证节点至少包括通信运营类节点、银行类节点、行政部门类节点的任一类,所述管理节点为工信部节点。
一种基于区块链进行用户认证的应用程序,其包括获取模组、申请模组和判断模组,其中:
所述获取模组,配置为供所述应用程序获取至少包括申请该所述应用程序的注册用户的手机号码;
所述申请模组,配置为供所述应用程序向所述区块链的管理节点发送所述注册用户的手机号码,申请对所述注册用户的个人信息认证等级和/或信用等级进行认证;
所述判断模组,配置为供所述应用程序根据自身的应用等级以及所述区块链返回的所述注册用户的个人信息认证等级和/或信用等级,判断是否通过该用户的实名认证请求。
一种基于区块链的应用程序的用户认证系统,其包括区块链架构和应用程序架构,所述区块链架构包括构建模组、认证模组,所述应用程序架构包括获取模组、申请模组和判断模组,其中:
所述构建模组,配置为供构建包括多个具有与大众用户身份相关信息的数据库的实名制认证节点以及管理节点的区块链;
所述获取模组,配置为供所述应用程序获取至少包括申请该所述应用程序的注册用户的手机号码;
所述申请模组,配置为供所述应用程序向所述区块链的所述管理节点发送所述注册用户的手机号码,申请对所述注册用户的个人信息认证等级和/或信用等级进行认证;
所述认证模组,配置为供所述管理节点根据所述应用程序的所述注册用户的所述手机号码,基于所述实名制认证节点向所述应用程序提供与所述手机号码关联的所述注册用户的个人信息认证等级和/或信用等级;
所述判断模组,配置为供所述应用程序根据自身的应用等级以及所述区块链返回的所述注册用户的个人信息认证等级和/或信用等级,判断是否通过该用户的实名认证请求;
所述实名制认证节点至少包括通信运营类节点、银行类节点、行政部门类节点的任一类,所述管理节点为工信部节点。
优选的是,所述构建模组包括管理节点模块和职能用户节点模块,所述管理节点模块包括创世区块建立单元、审核单元、宣布单元和存储单元,所述职能用户节点模块包括地址获取单元、申请单元,其中:
所述创世区块建立单元,配置为供所述管理节点建立本区块链的创世区块,所述创世区块中包括所述管理节点的标识、公钥以及创始人身份信息的记录信息,所述记录信息使用所述管理节点的私钥进行签名;
所述地址获取单元,配置为供具有与大众用户身份相关信息的数据库的职能用户节点查询所述创世区块的信息并提取所述管理节点的地址;
所述申请单元,配置为供所述职能用户节点向所述管理节点发送申请信息申请成为所述实名制认证节点,所述申请信息包括所述职能用户节点自身的标识、公钥以及身份信息,且使用该所述职能用户节点的私钥进行签名,所述身份信息至少包括职能部门的公司名称、法定代表人、注册资本、注册地址、企业注册号、成立时间;
所述审核单元,配置为供所述管理节点收到所述职能用户节点的申请,审核所述职能用户节点的认证资质以及通过非区块链途径获得的对应职能用户的备案信息,判断所述职能用户节点是否具备实名制认证资格;
所述宣布单元,配置为供所述管理节点将审核通过的具备实名制认证资格的所述职能用户节点的属性信息,使用所述管理节点的私钥加密后广播至所述区块链,宣布所述职能用户节点成为所述实名制认证节点,其中,所述属性信息包括所述实名制认证节点的标识和公钥;
所述存储单元,配置为所述管理节点在本地列表中存储所有所述实名制认证节点的属性信息。
优选的是,所述职能用户节点模块还包括在所述区块链中确认所述管理节点及其真实性资质的前置核实单元,配置为:
所述职能用户节点向所述区块链广播确认信息,所述确认信息包括所述职能用户节点自身的标识、公钥以及身份信息,且使用所述职能用户节点的私钥进行签名;
以及,所述职能用户节点向该所述区块链的至少一个相邻节点发送对所述创世区块的查询信息,所述查询信息使用所述职能节点的私钥进行签名;
以及,所述职能用户节点通过所述相邻节点返回的所述创世区块的真伪信息,或两个以上所述相邻节点返回的所述创世节点的真伪信息的百分比,确认该所述区块链的所述创世节点的真实性。
优选的是,所述认证模组包括接口模块、本地查询模块、网络查询模块,所述网络查询模块包括协查请求单元、数据库查询单元、接收单元,其中:
所述接口模块,配置为供所述管理节点接收所述应用程序发送的所述手机号码;
所述本地查询模块,配置为供所述管理节点根据所述手机号码查询自身本地账本中是否已存储该所述手机号码对应的用户的认证信息:
若所述本地账本中已存储该所述手机号码对应的用户的认证信息,则将该所述手机号码对应的用户的个人信息认证等级发送给该应用程序;
若本地账本中未存储该所述手机号码对应的用户的认证信息,则所述协查请求单元,配置为供所述管理节点向所述区块链发送广播信息,向所述实名制认证节点查询该所述手机号码对应的用户的个人信息认证等级和信用等级,所述广播消息使用所述管理节点的私钥进行签名;
所述数据库查询单元,配置为供所述实名制认证节点接收所述管理节点的广播消息,查询该所述手机号码在自身本地数据库中对应的用户个人信息认证等级和信用等级,并将查询结果广播至所述区块链中,所述查询结果使用该所述实名制认证节点的私钥进行签名;
所述接收单元,配置为供所述管理节点接收所述实名制认证节点广播的所述查询结构,并所述查询结果中该所述手机号码对应的用户个人信息认证等级和/或信用等级发送给所述应用程序。
优选的是,所述应用程序架构还包括对非本区块链外的互联网络提供所述应用程序的所述注册用户验证查询服务的外置验证模组,所述外置验证模组配置为供所述应用程序根据所述获取模组获取的所述注册用户的手机号码,通过通信运营商的行业网关给该所述注册用户发送短信息以提供验证码:
若所述注册用户不能在所述应用程序中输入正确的所述验证码,则取消后续注册过程;
若所述注册用户能在所述应用程序中输入正确的所述验证码,则进入到该所述注册用户的真实身份认证过程。
本发明的有益效果是:
本发明提供的基于区块链的应用程序的用户认证方法、用于应用程序的用户认证的区块链、基于区块链进行用户认证的应用程序和基于区块链的应用程序的用户认证系统,使用各大运营商类、银行类以及行政部门类等功能部门现有的用户个人身份信息来为各类不同的应用程序提供不同等级的身份验证服务,减少应用程序开发者的开发难度和工作量,降低应用程序开发的难度,也减少各个应用程序对用户身份的繁琐验证过程,方便用户注册和使用应用程序,便于更多的应用程序的开发和推广,同时也更有利于区块链业务的推广和使用。
附图说明
图1为本发明实施例1中基于区块链的应用程序的用户认证方法的流程图;
图2为本发明实施例1中用于应用程序的用户认证的区块链的结构框图;
图3为本发明实施例2中基于区块链的应用程序的用户认证方法的流程图;
图4为本发明实施例2中基于区块链进行用户认证的应用程序的结构框图;
图5为本发明实施例3中基于区块链的应用程序的用户认证方法的流程图;
图6为图5中步骤s31)的具体步骤流程图;
图7为图5中步骤s34)的具体步骤流程图;
图8为本发明实施例3中基于区块链的应用程序的用户认证系统的结构框图;
图9为本发明实施例3中基于区块链的应用程序的用户认证系统的架构图;
图10为图8中构建模组的结构框图;
图11为图8中认证模组的结构框图;
附图标识中:
1-区块链架构,11-构建模组,111-管理节点模块,1111-创世区块建立单元,1112-审核单元,1113-宣布单元,1114-存储单元,112-职能用户节点模块,1120-前置核实单元,1121-地址获取单元,1122-申请单元,12-认证模组,121-接口模块,122-本地查询模块,123-网络查询模块,1231-协查请求单元,1232-数据库查询单元,1233-接收单元;
2-应用程序架构,21-获取模组,22-申请模组,23-判断模组。
具体实施方式
为使本领域技术人员更好地理解本发明的技术方案,下面结合附图和具体实施方式对本发明基于区块链的应用程序的用户认证方法、用于应用程序的用户认证的区块链、基于区块链进行用户认证的应用程序和基于区块链的应用程序的用户认证系统作进一步详细描述。
实施例1:
作为本发明的一方面,本实施例提供一种基于区块链的应用程序的用户认证方法,如图1所示,其包括步骤:
步骤s11):构建包括多个具有与大众用户身份相关信息的数据库的实名制认证节点以及管理节点的区块链;
步骤s12):管理节点根据应用程序的注册用户的手机号码,基于实名制认证节点向应用程序提供与手机号码关联的注册用户的个人信息认证等级和/或信用等级。
相应的,如图2所示,本实施例提供一种用于应用程序的用户认证的区块链,其包括构建模组11和认证模组12,其中:
构建模组11,配置为供构建包括多个具有与大众用户身份相关信息的数据库的实名制认证节点以及管理节点的区块链;
认证模组12,配置为供管理节点根据应用程序的注册用户的手机号码,基于实名制认证节点向应用程序提供与手机号码关联的注册用户的个人信息认证等级和/或信用等级。
区块链是一种去中心化的数据库,它包含一张被称为区块的列表,有着持续增长并且排列整齐的记录。每个区块都包含一个时间戳和一个与前一区块的链接:设计区块链使得数据不可篡改—一旦记录下来,在一个区块中的数据将不可逆。区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法。区块链是一串使用密码学方法相关联产生的数据块,每一个数据块中包含一次认证的信息,用于验证其信息的有效性(防伪)和生成下一个区块。狭义来讲,区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。广义来讲,区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算。区块链的设计是一种保护措施,比如(应用于)高容错的分布式计算系统。区块链使混合一致性成为可能。这使区块链适合记录事件、标题、查询记录和其他需要收录数据的活动、身份识别管理,交易流程管理和出处证明管理。通过利用点对点网络和分布式时间戳服务器,区块链数据库能够进行自主管理。
在本实施例中,实名制认证节点至少包括通信运营类节点、银行类节点、行政部门类节点的任一类,管理节点为工信部节点。也就是说,区块链中的节点包括:通信运营类节点(包括联通节点、移动节点、电信节点等)、银行类节点(包括中国银行节点、工商银行节点、建设银行节点等)、行政部门类节点(社保相关部门节点、公安部节点或派出所节点等)、工信部节点等等,各节点均分别具有自己的公钥和私钥。工信部节点对应的工信部即工业和信息化部,主要职责包括:审批、核准国家规划内和年度计划规模内工业、通信业和信息化固定资产投资项目;工业、通信业的节能、资源综合利用和清洁生产促进工作;对中小企业的指导和扶持……。通信运营商类、银行类、行政部门类各单位的经营信息在工信部进行备案;作为信息储备,上述各单位的服务对象的信息也在工信部进行备案,尤其上述各单位服务范围的广泛性和普遍性,由此可覆盖全国范围内大部分人。
在通信运营类节点中,主要的执行网元为归属位置寄存器(homelocationregister,简称hlr)。工信部本地存储一个本区块链的运营商的归属位置寄存器的列表信息,并且实时更新该运营商的归属位置寄存器的列表信息。随着区块链的运行和扩大,该列表中还会包括本区块链的归属该运营商节点的各地运营商的标识和公钥、归属位置寄存器的标识和公钥等信息,且每一运营商节点均为一个唯一的全国的归属位置寄存器。
归属位置寄存器是一个负责移动用户管理的数据库,永久存储和记录所辖区域内用户的签约数据,并动态地更新用户的位置信息,以便在呼叫业务中提供被呼叫用户的网络路由。归属位置寄存器作为系统的数据中心,它储着所有在该归属位置寄存器签约移动用户的位置信息、业务数据、账户管理等信息,并可实时地提供对用户位置信息的查询和修改,及实现各类业务操作,包括位置更新、呼叫处理、鉴权和补充业务等,完成移动通信网中用户的移动性管理。归属位置寄存器同移动交换中心(mobileswitchingcenter,简称msc,用来对呼叫控制或处理进行资源调配)可以进行互相通信。
该区块链提供用于应用程序的用户认证的数据共享平台,实现基于区块链的应用程序的用户认证方法,为应用程序提供便捷、有效、安全的用户信息认证。
实施例2:
作为本发明的一方面,本实施例提供一种基于区块链的应用程序的用户认证方法,如图3所示,其包括步骤:
步骤s21):应用程序获取至少包括申请该应用程序的注册用户的手机号码;
步骤s22):应用程序向区块链的管理节点发送注册用户的手机号码,申请对注册用户的个人信息认证等级和/或信用等级进行认证;
步骤s23):应用程序根据自身的应用等级以及区块链返回的注册用户的个人信息认证等级和/或信用等级,判断是否通过该用户的实名认证请求。
相应的,如图4所示,本实施例提供一种基于区块链进行用户认证的应用程序,其包括获取模组21、申请模组22和判断模组23,其中:
获取模组21,配置为供应用程序获取至少包括申请该应用程序的注册用户的手机号码;
申请模组22,配置为供应用程序向区块链的管理节点发送注册用户的手机号码,申请对注册用户的个人信息认证等级和/或信用等级进行认证;
判断模组23,配置为供应用程序根据自身的应用等级以及区块链返回的注册用户的个人信息认证等级和/或信用等级,判断是否通过该用户的实名认证请求。
在本实施例中,非区块链中包括各种应用程序模块,应用程序为完成某项或多项特定工作的计算机程序,其运行在用户模式,可以和用户进行交互,具有可视的用户界面。
该应用程序通过接入用于应用程序的用户认证的数据共享平台的区块链,实现基于区块链的应用程序的用户认证方法,实现应用程序便捷、有效、安全的用户信息认证。
实施例3:
作为本发明的一方面,本实施例提供一种基于区块链的应用程序的用户认证方法,如图5所示,其包括步骤:
步骤s31):构建包括多个具有与大众用户身份相关信息的数据库的实名制认证节点以及管理节点的区块链。
在该步骤中,构建包括多个具有与大众用户身份相关信息的数据库的实名制认证节点以及管理节点的区块链的步骤,如图6所示,包括:
步骤s311):管理节点建立本区块链的创世区块,创世区块中包括管理节点的标识、公钥以及创始人身份信息的记录信息,记录信息使用管理节点的私钥进行签名。
工信部节点作为本区块链的创始人,采用发送广播消息的方式在区块链中发布一个本区块链的创世区块,该创世区块中包括以下内容:工信部节点的标识和公钥以及创始人的身份信息。该广播消息使用工信部节点的私钥签名后广播到区块链中,该创世区块作为本区块链的第一个区块。
工信部节点本地分别存储一个本区块链的通信运营类节点、银行类节点、行政部门类节点的列表信息,并且实时更新该三类列表的相关信息,该列表中包括本区块链的所有通信运营类节点、银行类节点、行政部门类节点的标识和公钥等信息。例如,其中的通信运营类节点的列表中包括以下信息:联通节点的标识和公钥、电信节点的标识和公钥、移动节点的标识和公钥,也可以引入其他的运营商的标识和公钥;银行类节点的列表中包括以下信息:工商银行节点的标识和公钥、建设银行节点的标识和公钥等银行类节点的标识和公钥;行政部门类节点的列表中包括以下信息:社保相关部门节点的标识和公钥、公安部节点或派出所节点的标识和公钥等政府行政职能部门类节点的标识和公钥。
若有新的节点想加入到本区块链,例如以某运营商节点b想申请成为本区块链的运营商节点作为示例,则该节点b首次接入到区块链时,可进行下述步骤:
步骤s312):具有与大众用户身份相关信息的数据库的职能用户节点查询创世区块的信息并提取管理节点的地址。也即,该节点b将该创世区块保存在自己的本地,并且从创世区块中取出本区块链的创始人节点也就是工信部节点的地址。
步骤s313):职能用户节点向管理节点发送申请信息申请成为实名制认证节点,申请信息包括职能用户节点自身的标识、公钥以及身份信息,且使用该职能用户节点的私钥进行签名,身份信息至少包括职能部门的公司名称、法定代表人、注册资本、注册地址、企业注册号、成立时间。也即,该节点b向该工信部节点发送申请成为本区块链的运营商节点的申请请求,该请求中包括节点b的区块链标识和公钥,节点b的公司名称、法定代表人(姓名+身份证号)、注册资本、注册地址、企业注册号(注册号诸如569876654324567)、成立时间等信息。
步骤s314):管理节点收到职能用户节点的申请,审核职能用户节点的认证资质以及通过非区块链途径获得的对应职能用户的备案信息,判断职能用户节点是否具备实名制认证资格。也即,工信部节点收到节点b申请成为本区块链的通信运营类节点的申请请求,开始进行审核节点b的运营商资质的流程。
步骤s315):管理节点将审核通过的具备实名制认证资格的职能用户节点的属性信息,使用管理节点的私钥加密后广播至区块链,宣布职能用户节点成为实名制认证节点,其中,属性信息包括实名制认证节点的标识和公钥。这里,如果运营商资质审核通过,工信部节点再审核自己内部提前通过非区块链途径获得的各个运营商上报给自己的各自的基本信息,包括该节点b的区块链的标识和公钥等信息,如果也审核通过,则工信部节点向区块链发送广播信息,宣布节点b成为本区块链的运营商节点,该广播信息使用工信部节点的私钥签名后广播出去。
步骤s316):管理节点在本地列表中存储所有实名制认证节点的属性信息。也即,工信部节点将节点b的相关信息添加到自己内部保存的运营商的列表信息中。
优选的是,在步骤s312)职能用户节点查询创世区块的信息并提取管理节点的地址之前,还包括在区块链中确认管理节点及其真实性资质的步骤,包括:
职能用户节点向区块链广播确认信息,确认信息包括职能用户节点自身的标识、公钥以及身份信息,且使用职能用户节点的私钥进行签名;
职能用户节点向该区块链的至少一个相邻节点发送对创世区块的查询信息,查询信息使用职能节点的私钥进行签名;
职能用户节点通过相邻节点返回的创世区块的真伪信息,或两个以上相邻节点返回的创世节点的真伪信息的百分比,确认该区块链的创世节点的真实性。
在区块链中确认管理节点及其真实性资质的过程中,通俗的讲,该节点b向区块链广播自己的身份信息,该广播信息中包括该节点b的运营商节点身份信息、标识、公钥等信息,该广播信息使用该节点的私钥签名后广播到区块链中。接着,该节点b向自己的相邻节点查询本区块链的创世区块,该查询请求使用节点b的私钥签名后发送给各相邻节点。当然,节点b可以向自己的多个相邻节点进行创世区块的查询,并将多个相邻节点返回的创世区块进行比较是否一致:若一致,则认为是真实的创世区块;若不一致,由于任何区块链的存在假设的前提就是区块链中大多数是好人,因此通过定义返回信息是否具有超过一定数量百分比阈值的一致性,可以据此判断是否为真实的创世区块。节点b收到相邻节点中返回的并经过正确性验证的创世区块,将该创世区块保存在自己的本地,并且从创世区块中取出本区块链的创始人节点也就是工信部节点的地址。
如果有其他的银行类节点和政府职能部门类节点想加入到本区块链,参考上述步骤。
步骤s32)应用程序获取至少包括申请该应用程序的注册用户的手机号码。
在该步骤中,应用程序结束注册用户输入的手机号码。优选的是,在进行下一步骤之前,应用程序还对非本区块链外的互联网络提供应用程序的注册用户验证查询服务,包括:
应用程序根据注册用户的手机号码,通过通信运营商的行业网关给该注册用户发送短信息以提供验证码:
若注册用户不能在应用程序中输入正确的验证码,则取消后续注册过程;
若注册用户能在应用程序中输入正确的验证码,则进入到该注册用户的真实身份认证过程。
也就是说,工信部节点对非本区块链外的internet网络提供应用程序用户验证查询服务,例如某用户为使用某个应用程序而进行注册的时候,该用户在应用程序的注册界面上输入自己的手机号码,该应用程序通过运营商的行业网关给该用户发送短信息验证短信,如果该用户输入正确的短信息验证码,则进入到该用户的真实身份验证环节。
步骤s33):应用程序向区块链的管理节点发送注册用户的手机号码,申请对注册用户的个人信息认证等级和/或信用等级进行认证。
在该步骤中,应用程序向工信部节点查询用户身份,应用程序将该用户的手机号码发送给工信部节点。
步骤s34):管理节点根据应用程序的注册用户的手机号码,基于实名制认证节点向应用程序提供与手机号码关联的注册用户的个人信息认证等级和/或信用等级。
在该步骤中,管理节点根据注册用户的手机号码,基于实名制认证节点向应用程序提供与手机号码关联的注册用户的个人信息认证等级和/或信用等级的步骤,如图7所示,包括:
步骤s341):管理节点接收应用程序发送的手机号码;
步骤s342):管理节点根据手机号码查询自身本地账本中是否已存储该手机号码对应的用户的认证信息:
步骤s343):若本地账本中已存储该手机号码对应的用户的认证信息,则将该手机号码对应的用户的个人信息认证等级发送给该应用程序;
步骤s344):若本地账本中未存储该手机号码对应的用户的认证信息,则管理节点向区块链发送广播信息,向实名制认证节点查询该手机号码对应的用户的个人信息认证等级和信用等级,广播消息使用管理节点的私钥进行签名;
步骤s344’):实名制认证节点接收管理节点的广播消息,查询该手机号码在自身本地数据库中对应的用户个人信息认证等级和信用等级,并将查询结果广播至区块链中,查询结果使用该实名制认证节点的私钥进行签名;
步骤s344”):管理节点接收实名制认证节点广播的查询结构,并查询结果中该手机号码对应的用户个人信息认证等级和/或信用等级发送给应用程序。
工信部节点收到某个应用程序发送的某个手机号码的个人信息认证请求,工信部节点先查询自己内部存储的区块链账本中是否有该手机号码对应的用户的认证信息。如果有该手机号码对应的用户的认证信息,则按照区块链账本中的该手机号码对应的用户的个人信息认证等级发送给该应用程序;如果没有该手机号码对应的用户的认证信息,向区块链发送广播信息,询问该手号码对应的用户的认证信息和信用等级,该广播消息优选使用工信部节点的私钥签名后广播出去。
区块链中的其他职能用户节点收到工信部节点广播的消息,查询该手机号码在自己的数据库中对应的用户的个人信息认证等级和信用等级等信息,然后将查询结果通过广播消息的方式广播到区块链中,该广播消息使用该节点的私钥签名后广播出去。
工信部节点收到该节点广播的该手机号码对应的用户个人信息认证等级和信用等级等信息,将该消息中该手机号码对应的用户的个人信息认证等级和信用等级等信息发送给该应用程序。
步骤s35):应用程序根据自身的应用等级以及区块链返回的注册用户的个人信息认证等级和/或信用等级,判断是否通过该用户的实名认证请求。
在该步骤中,该应用程序收到用户的信息认证等级和信用等级等该消息后,根据该手机号码对应的用户个人信息认证等级和/或信用等级等信息来决定是否通过该用户的实名认证请求。应用程序根据自身的应用等级,区分要求用户的个人信息认证等级、信用等级,将个人信息认证等级、信用等级的局部或全部作为考核对象,比如:低级等级可通过信箱的方式认证,一般等级可通过信箱+手机号码的方式认证,中级等级可通过信箱+手机号+银行卡的方式认证,高级等级可通过信箱+手机号+银行卡+头像的方式认证,等等,这里不做限定。
在本实施例中,实名制认证节点至少包括通信运营类节点、银行类节点、行政部门类节点的任一类,管理节点为工信部节点。
区块链里的任何职能用户节点都可以作为本区块链的记账节点,对于以上过程中的广播消息都写入到新区块中,进而记录到区块链的账本中。也就是说,只要使用过该基于区块链的应用程序的用户认证方法查询服务的手机号码,区块链账本中就有该号码对应的用户个人信息认证等级和信用等级等信息,便于工信部节点进行内部查询。由于本实施例中涉及的职能用户节点,几乎涵盖人们日常生活与身份信息或信用等级相关的全部监管部门,通过将职能用户节点接入区块链待检索认证,就不需要将全国10多亿用户都提前预存对应的个人信息认证等级和信用等级等信息(例如有些幼儿、中老年用户和低学历人群可能一直不会使用该项应用程序服务),因此有效避免全人口大数据存储来耗费各节点大量存储空间。
相应的,如图8所示,本实施例还提供一种基于区块链的应用程序的用户认证系统,其包括区块链架构1和应用程序架构2,区块链架构1包括构建模组11、认证模组12,应用程序架构2包括获取模组21、申请模组22和判断模组23,其中:
构建模组11,配置为供构建包括多个具有与大众用户身份相关信息的数据库的实名制认证节点以及管理节点的区块链;
获取模组21,配置为供应用程序获取至少包括申请该应用程序的注册用户的手机号码;
申请模组22,配置为供应用程序向区块链的管理节点发送注册用户的手机号码,申请对注册用户的个人信息认证等级和/或信用等级进行认证;
认证模组12,配置为供管理节点根据应用程序的注册用户的手机号码,基于实名制认证节点向应用程序提供与手机号码关联的注册用户的个人信息认证等级和/或信用等级;
判断模组23,配置为供应用程序根据自身的应用等级以及区块链返回的注册用户的个人信息认证等级和/或信用等级,判断是否通过该用户的实名认证请求;
该基于区块链的应用程序的用户认证系统中,实名制认证节点至少包括通信运营类节点、银行类节点、行政部门类节点的任一类,管理节点为工信部节点,图9示出了基于区块链的应用程序的用户认证系统的一种架构图。
如图10所示,构建模组11包括管理节点模块111和职能用户节点模块112,管理节点模块111包括创世区块建立单元1111、审核单元1112、宣布单元1113和存储单元1114,职能用户节点模块112包括地址获取单元1121、申请单元1122,其中:
创世区块建立单元1111,配置为供管理节点建立本区块链的创世区块,创世区块中包括管理节点的标识、公钥以及创始人身份信息(即工信部节点的身份信息)的记录信息,记录信息使用管理节点的私钥进行签名;
地址获取单元1121,配置为供具有与大众用户身份相关信息的数据库的职能用户节点查询创世区块的信息并提取管理节点的地址;
申请单元1122,配置为供职能用户节点向管理节点发送申请信息申请成为实名制认证节点,申请信息包括职能用户节点自身的标识、公钥以及身份信息,且使用该职能用户节点的私钥进行签名,身份信息至少包括职能部门的公司名称、法定代表人、注册资本、注册地址、企业注册号、成立时间;
审核单元1112,配置为供管理节点收到职能用户节点的申请,审核职能用户节点的认证资质以及通过非区块链途径获得的对应职能用户的备案信息,判断职能用户节点是否具备实名制认证资格;
宣布单元1113,配置为供管理节点将审核通过的具备实名制认证资格的职能用户节点的属性信息,使用管理节点的私钥加密后广播至区块链,宣布职能用户节点成为实名制认证节点,其中,属性信息包括实名制认证节点的标识和公钥;
存储单元1114,配置为管理节点在本地列表中存储所有实名制认证节点的属性信息。
职能用户节点模块112还包括在区块链中确认管理节点及其真实性资质的前置核实单元1120,配置为:
职能用户节点向区块链广播确认信息,确认信息包括职能用户节点自身的标识、公钥以及身份信息,且使用职能用户节点的私钥进行签名;
以及,职能用户节点向该区块链的至少一个相邻节点发送对创世区块的查询信息,查询信息使用职能节点的私钥进行签名;
以及,职能用户节点通过相邻节点返回的创世区块的真伪信息,或两个以上相邻节点返回的创世节点的真伪信息的百分比,确认该区块链的创世节点的真实性。
如图11所示,认证模组12包括接口模块121、本地查询模块122、网络查询模块123,网络查询模块123包括协查请求单元1231、数据库查询单元1232、接收单元1233,其中:
接口模块121,配置为供管理节点接收应用程序发送的手机号码;
本地查询模块122,配置为供管理节点根据手机号码查询自身本地账本中是否已存储该手机号码对应的用户的认证信息:
若本地账本中已存储该手机号码对应的用户的认证信息,则将该手机号码对应的用户的个人信息认证等级发送给该应用程序;
若本地账本中未存储该手机号码对应的用户的认证信息,则协查请求单元1231,配置为供管理节点向区块链发送广播信息,向实名制认证节点查询该手机号码对应的用户的个人信息认证等级和信用等级,广播消息使用管理节点的私钥进行签名;
数据库查询单元1232,配置为供实名制认证节点接收管理节点的广播消息,查询该手机号码在自身本地数据库中对应的用户个人信息认证等级和信用等级,并将查询结果广播至区块链中,查询结果使用该实名制认证节点的私钥进行签名;
接收单元1233,配置为供管理节点接收实名制认证节点广播的查询结构,并查询结果中该手机号码对应的用户个人信息认证等级和/或信用等级发送给应用程序。
应用程序架构2还包括对非本区块链外的互联网络提供应用程序的注册用户验证查询服务的外置验证模组,外置验证模组配置为供应用程序根据获取模组21获取的注册用户的手机号码,通过通信运营商的行业网关给该注册用户发送短信息以提供验证码:
若注册用户不能在应用程序中输入正确的验证码,则取消后续注册过程;
若注册用户能在应用程序中输入正确的验证码,则进入到该注册用户的真实身份认证过程。
该基于区块链的应用程序的用户认证方法及相应的基于区块链的应用程序的用户认证系统,提供用于应用程序的用户认证的数据共享平台,实现基于区块链的应用程序的用户认证方法,为应用程序提供便捷、有效、安全的用户信息认证。
综上,本发明提供的基于区块链的应用程序的用户认证方法、用于应用程序的用户认证的区块链、基于区块链进行用户认证的应用程序和基于区块链的应用程序的用户认证系统,使用各大运营商类、银行类以及行政部门类等功能部门现有的用户个人身份信息来为各类不同的应用程序提供不同等级的身份验证服务,减少应用程序开发者的开发难度和工作量,降低应用程序开发的难度,也减少各个应用程序对用户身份的繁琐验证过程,方便用户注册和使用应用程序,便于更多的应用程序的开发和推广,同时也更有利于区块链业务的推广和使用。
可以理解的是,以上实施方式仅仅是为了说明本发明的原理而采用的示例性实施方式,然而本发明并不局限于此。对于本领域内的普通技术人员而言,在不脱离本发明的精神和实质的情况下,可以做出各种变型和改进,这些变型和改进也视为本发明的保护范围。