一种基于区块链的身份认证方法

文档序号:26238847发布日期:2021-08-10 16:41阅读:500来源:国知局
导航: X技术> 最新专利> 电子通信装置的制造及其应用技术
一种基于区块链的身份认证方法

本发明属于区块链技术领域,具体涉及一种身份认证方法。



背景技术:

目前,区块链技术和身份认证的结合处于初级研究阶段,市面上逐步出现一些商业应用,比较知名的便是w3c基金会组织提出的一种去中心化身份标识符协议(did协议),该协议定义了一种基于去中心化的自我主权身份标识符,该标识符可以由用户直接创建和注册,这对于用户来说意义重大,因为标识符是任何身份和通讯系统的基础,没有标识符,实体之间无法建立直接的联系、传递消息或数据共享。基于w3c的did开源标准,2019年5月,微软开发了一套去中心化身份标识系统,该系统在比特币主网络中运行。微软是首个研发去中心化身份工作的大型互联网公司,该系统旨在通过区块链技术更好地证明用户的身份。但是w3c的did协议与规范都还在制定与更新的过程中,微软公司开发的did系统也处在非常早期的阶段。

在这些基于did的系统中,都是通过用户填写信息注册的方式将用户在现实世界的身份信息存储到区块链上,从而保证身份信息的不可篡改性。用户身份信息存储在区块链上后,也往往需要依赖于第三方的身份信息服务中心实现身份认证。

目前传统的身份认证方案存下面的缺陷:集中大型身份信息数据库是很容易遭到各种各样的网络攻击,这样用户的隐私数据就会泄露,不法分子窃取到用户的敏感信息就会操纵数据做一些恶性事件,用户对自己的信息完全失去了自主控制权。

目前基于区块链的身份认证方案也会存在下面两个严重缺陷:

(1)不能够保证上链前用户身份信息的真实可靠性。目前的方案大多是用户需要自己填写身份信息,或者通过输入获取用户的身份信息然后校验其真实性。这些方案都不能保证用户输入信息的真实性以及这些身份信息的真实性。

(2)有些方案依赖第三方的身份信息kyc系统,很难实现真正的去中心化,存在单点故障的风险,当第三方kyc系统被攻击或者数据库被故意删库时,身份认证系统的安全性将会荡然无存。



技术实现要素:

为了克服现有技术的不足,本发明提供了一种基于区块链的身份认证方法,该方法包含了一种针对身份认证过程生物识别预言机网络,预言机网络的作用是对比生物识别采集的活体人脸信息和身份认证头像的小图信息,将对比将结果通过区块链智能合约调用的形式写入到区块链上,完成链下数据到链上数据的映射。区块链智能合约通过这种方式可以获取到身份信息对比结果,从而可以根据对比结果判断身份认证是否成功。本发明解决了传统基于区块链的身份认证方案严重依赖第三方身份验证服务的问题,也保证了存储在区块链上的身份信息的真实性,提升了基于区块链的身份认证系统的安全性和可靠性。

本发明解决其技术问题所采用的技术方案包括如下步骤:

步骤1:用户信息注册;

用户在前端模块提交身份证正反面照片,前端模块将获取到的身份证照片信息解析为用户身份信息;

前端模块将用户身份信息进行压缩编码,再调用身份认证智能合约信息注册接口将用户身份信息存储到身份认证智能合约;此时存储的用户身份信息属于未认证状态,注册过程完成;

步骤2:用户认证过程;

步骤2-1:前端模块利用摄像头获取用户的生物活体人脸信息,前端模块提交获取到的生物活体人脸信息和用户身份证头像信息并调用身份认证智能合约认证请求接口进行认证请求;

步骤2-2:身份认证智能合约处理用户的认证请求,执行身份认证智能合约认证函数;身份认证智能合约认证函数将认证请求信息进行编码,编码完成后,通过跨合约调用预言机智能合约;

步骤2-3:预言机智能合约收到调用请求后,执行请求接收函数,将请求信息封装为区块链事件,存储到区块链中,区块链中的所有节点会同步该区块链事件,从而形成数据的一致性;

区块链事件的内容包含请求信息封装后的具体信息和根据该信息通过sha3算法生成的事件索引;通过生成的事件索引,预言机网络中的节点能够快速监听检索到该区块链事件;

步骤2-4:当预言机网络检索到区块链事件后将区块链事件解码;解码完成之后得到身份认证智能合约地址、身份认证智能合约回调函数、回调函数参数、base64编码的身份证头像信息、base64编码的活体人脸信息;

步骤2-5:预言机网络节点利用人脸对比模型对比解码后得到的用户身份证头像信息和生物体人脸信息的相似度;如果相似度超过设定阈值,则认为对比成功;

步骤2-6:预言机网络中的每个节点都执行步骤2-5,将身份认证请求的对比结果在全网共识,如果预言机网络中有一半以上的节点对比成功,则认为此次认证成功;认证成功之后预言机网络随机选出一个节点作为主节点调用预言机智能合约请求响应函数,请求内容包括身份认证结果、身份认证智能合约地址、身份认证智能合约回调函数、回调函数参数;

步骤2-7:预言机智能合约请求响应函数接收到预言机网络的调用后,利用身份认证智能合约地址和身份认证智能合约回调函数、回调参数、认证请求对比结果信息发送回调请求到身份认证智能合约;

步骤2-8:身份认证智能合约收到身份认证结果后,如果为认证成功,则向区块链提交一笔交易更改用户身份信息为认证状态。

进一步地,所述请求接收函数执行过程如下:

请求接收函数对请求信息进行判断,首先判断请求信息包含的交易所携带的手续费是否大于等于合约要求的最低手续费;如果大于等于,执行下一步;如果小于,则直接结束;

接着判断请求信息包含的交易的数据大小是否大于0字节,如果小于等于0字节,说明此次调用非法,结束函数执行流程;如果大于0字节,则正常执行下一步;

再判断请求回调函数是否大于0字节,如果小于等于0字节,说明函数签名为非法函数调用;如果大于0字节,则正常执行下一步;

最后将请求信息封装为区块链事件,存储到区块链中,函数执行结束。

进一步地,所述请求响应函数执行过程如下:

请求响应函数首先判断此次交易发起地址是否为合约创建者地址,如果不是合约创建者地址,则结束执行流程,否则继续执行判断预言机账户余额是否满足gas要求,如果不满足要求,则结束流程,否则继续执行回调身份认证智能合约的回调函数;调用身份认证智能合约函数的过程通过跨合约调用实现。

进一步地,所述预言机网络节点执行对比过程如下:

步骤2-5-1:当预言机网络节点启动后查找本地配置文件并解析配置文件中的每一个配置项;配置项包括预言机智能合约地址、预言机智能合约管理员地址私钥、区块链节点地址和端口信息;

步骤2-5-2:解析配置文件完成之后,得到区块链节点的ip地址和端口信息;

步骤2-5-3:预言机网络节点解析预言机智能合约abijson文件,将智能合约事件的结构信息从abi文件中提取出来;

步骤2-5-4:预言机网络节点通过预言机智能合约地址和事件结构信息中携带的各项信息订阅区块链对应的智能合约事件,预言机网络节点采用循环的方式一直等待订阅事件到达;

步骤2-5-5:如果区块链节点收到预言机智能合约的请求事件,则会在区块链数据库中记录该信息,并且将该事件通知给订阅它的预言机网络节点;预言机网络节点收到该事件后从事件中解析出此次身份认证所需要的身份证人脸信息和生物活体人脸信息;

步骤2-5-6:预言机网络节点采用人脸对比库进行人脸信息的对比,如果对比阈值超过80%,则认为请求用户为真实用户,对比成功;随后预言机网络中的每个节点都会将这一次身份认证请求的结果在全网共识,每次只要网络中有一半以上的节点投票通过一个认证结果,则认为此次认证成功;

步骤2-5-7:认证成功之后预言机网络会随机选出一个节点作为主节点来组装响应请求交易,交易中携带此次对比成功与否的信息,利用之前从配置文件中解析出来的预言机智能合约管理员地址私钥对交易签名,然后发送交易到预言机智能合约;预言机智能合约会回调身份认证智能合约,将结果返回给身份认证智能合约。

进一步地,所述用户身份信息包括文字和图片,所述文字包括用户的姓名、出生日期、身份证号码和民族信息;所述图片为身份证base64编码头像小图信息。

进一步地,所述身份认证智能合约认证函数对认证的请求信息进行编码,编码的数据包括:请求id、跨合约调用地址、身份认证智能合约地址、身份认证智能合约回调函数、回调函数参数、base64编码的身份证头像信息、base64编码的生物活体人脸信息;编码的规则为:所有的数据按照32字节长度设定,依次进行字符拼接,不足32字节的需要补充到32字节,超过32字节的需要分割成多段后编码。

进一步地,所述预言机网络将区块链事件解码时,首先获取每个数据段的长度,再从事件内容中读取对应长度的数据,不足32字节的数据只获取实际长度的内容,超过32字节的会将多个段合并进行解码。

本发明的有益效果如下:

本发明设计的基于区块链的身份认证使得身份认证系统既能够去中心化的运行,将区块链与预言机服务相结合,在身份认证的过程中融入去中心化的用户生物特征识别,又能够保证身份认证这一环节的去中心化以及上链信息的可靠性,从而增加了身份认证系统的可靠性和安全性。

附图说明

图1为本发明认证方法流程图。

图2为本发明请求接收函数流程图。

图3为本发明请求响应函数流程图。

图4为本发明预言机网络节点处理流程图。

具体实施方式

下面结合附图和实施例对本发明进一步说明。

一种基于区块链的身份认证方法,包括以下步骤:

步骤1:用户信息注册;

用户在前端模块提交身份证正反面照片,前端模块将获取到的身份证照片信息解析为用户身份信息;用户身份信息包括文字和图片,文字包括用户的姓名、出生日期、身份证号码和民族信息;图片为身份证base64编码头像小图信息。

前端模块将用户身份信息进行压缩编码,再调用身份认证智能合约信息注册接口将用户身份信息存储到身份认证智能合约;此时存储的用户身份信息属于未认证状态,注册过程完成;

步骤2:如图1所示,用户认证过程;

步骤2-1:前端模块利用摄像头获取用户的生物活体人脸信息,前端模块提交获取到的生物活体人脸信息和用户身份证头像信息并调用身份认证智能合约认证请求接口进行认证请求;

步骤2-2:身份认证智能合约处理用户的认证请求,执行身份认证智能合约认证函数;身份认证智能合约认证函数将认证请求信息进行编码,编码的数据包括:请求id、跨合约调用地址、身份认证智能合约地址(设置身份认证地址的意义在于可以预言机智能合约回调身份认证智能合约)、身份认证智能合约回调函数、回调函数参数、base64编码的身份证头像信息、base64编码的生物活体人脸信息;编码的规则为:所有的数据按照32字节长度设定,依次进行字符拼接,不足32字节的需要补充到32字节,超过32字节的需要分割成多段后编码;编码完成后,通过跨合约调用预言机智能合约;

步骤2-3:预言机智能合约收到调用请求后,执行请求接收函数,将请求信息封装为区块链事件,存储到区块链中,区块链中的所有节点会同步该区块链事件,从而形成数据的一致性;

区块链事件的内容包含请求信息封装后的具体信息和根据该信息通过sha3算法生成的事件索引;通过生成的事件索引,预言机网络中的节点能够快速监听检索到该区块链事件;

预言机网络在启动的时候需要和区块链节点建立长连接,这样可以持续不断地监听区块链中的所有事件;通过上述生成的事件索引可以快速过滤掉于身份认证无关的事件,从而使得预言机网络只服务于身份认证功能,提升了系统运行效率;

步骤2-4:当预言机网络检索到区块链事件后将区块链事件解码;解码的跟上述编码的规则相反,首先获取每个数据段的长度,再从事件内容中读取对应长度的数据;不足32字节的数据只获取实际长度的内容,超过32字节的会将多个段合并进行解码;解码完成之后得到身份认证智能合约地址、身份认证智能合约回调函数、回调函数参数、base64编码的身份证头像信息、base64编码的活体人脸信息;

步骤2-5:预言机网络节点利用人脸对比模型对比解码后得到的用户身份证头像信息和生物体人脸信息的相似度;该模型判断相似的原理为图像信息上面的所有信息点位对比,如果相似度超过设定阈值,则认为对比成功;

步骤2-6:预言机网络中的每个节点都执行步骤2-5,将身份认证请求的对比结果在全网共识,如果预言机网络中有一半以上的节点对比成功,则认为此次认证成功;认证成功之后预言机网络随机选出一个节点作为主节点调用预言机智能合约请求响应函数,请求内容包括身份认证结果、身份认证智能合约地址、身份认证智能合约回调函数、回调函数参数;

步骤2-7:预言机智能合约请求响应函数接收到预言机网络的调用后,利用身份认证智能合约地址和身份认证智能合约回调函数、回调参数、认证请求对比结果信息发送回调请求到身份认证智能合约;

步骤2-8:身份认证智能合约收到身份认证结果后,如果为认证成功,则向区块链提交一笔交易更改用户身份信息为认证状态。

进一步地,如图2所示,所述请求接收函数执行过程如下:

请求接收函数对请求信息进行判断,首先判断请求信息包含的交易所携带的手续费是否大于等于合约要求的最低手续费;如果大于等于,执行下一步;如果小于,则直接结束;

接着判断请求信息包含的交易的数据大小是否大于0字节,如果小于等于0字节,说明此次调用非法,结束函数执行流程;如果大于0字节,则正常执行下一步;

再判断请求回调函数是否大于0字节,如果小于等于0字节,说明函数签名为非法函数调用;如果大于0字节,则正常执行下一步;

最后将请求信息封装为区块链事件,存储到区块链中,函数执行结束。

进一步地,如图3所示,所述请求响应函数执行过程如下:

请求响应函数首先判断此次交易发起地址是否为合约创建者地址,如果不是合约创建者地址,则结束执行流程,否则继续执行判断预言机账户余额是否满足gas要求,如果不满足要求,则结束流程,否则继续执行回调身份认证智能合约的回调函数;调用身份认证智能合约函数的过程通过跨合约调用实现。

进一步地,如图4所示,所述预言机网络节点执行对比过程如下:

步骤2-5-1:当预言机网络节点启动后查找本地配置文件并解析配置文件中的每一个配置项;配置项包括预言机智能合约地址、预言机智能合约管理员地址私钥、区块链节点地址和端口信息;

步骤2-5-2:解析配置文件完成之后,得到区块链节点的ip地址和端口信息;

步骤2-5-3:预言机网络节点解析预言机智能合约abijson文件,将智能合约事件的结构信息从abi文件中提取出来;

步骤2-5-4:预言机网络节点通过预言机智能合约地址和事件结构信息中携带的各项信息订阅区块链对应的智能合约事件,预言机网络节点采用循环的方式一直等待订阅事件到达;

步骤2-5-5:如果区块链节点收到预言机智能合约的请求事件,则会在区块链数据库中记录该信息,并且将该事件通知给订阅它的预言机网络节点;预言机网络节点收到该事件后从事件中解析出此次身份认证所需要的身份证人脸信息和生物活体人脸信息;

步骤2-5-6:预言机网络节点采用人脸对比库进行人脸信息的对比,如果对比阈值超过80%,则认为请求用户为真实用户,对比成功;随后预言机网络中的每个节点都会将这一次身份认证请求的结果在全网共识,每次只要网络中有一半以上的节点投票通过一个认证结果,则认为此次认证成功;请求认证结果共识的目的是为了防止预言机网络存在节点宕机或者节点作恶的情况,从而可以保证人脸信息对比结果的可靠性以及权威性;

步骤2-5-7:认证成功之后预言机网络会随机选出一个节点作为主节点来组装响应请求交易,交易中携带此次对比成功与否的信息,利用之前从配置文件中解析出来的预言机智能合约管理员地址私钥对交易签名,然后发送交易到预言机智能合约;预言机智能合约会回调身份认证智能合约,将结果返回给身份认证智能合约。

完整全部详细技术资料下载
当前第1页 1  2 
相关技术
  • 一种TCP消息限流方法、装置...
  • 数据传输方法、装置和系统与流...
  • 一种超带宽的信号传输方法及系...
  • 区块链应用方法及区块链应用终...
  • 一种将SAP RFC协议转换...
  • 一种可检测多种类应用层DDo...
  • 一种实现https双向认证的...
  • 安全通信方法、装置及系统与流...
  • 基于工业物联网的节点设备检测...
  • 一种网络实体威胁图谱构建方法...
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1

深圳SEO优化公司渭南企业网站设计多少钱东莞品牌网站设计报价宝鸡企业网站改版哪家好淮北百姓网标王推广多少钱阿坝外贸网站建设推荐舟山品牌网站设计报价朝阳网络广告推广多少钱上海企业网站建设多少钱阿坝网站关键词优化价格本溪网络广告推广报价连云港优秀网站设计济源推广网站价格新乡seo网站推广多少钱布吉营销网站公司大浪高端网站设计沧州网站制作设计多少钱淮南网站优化公司萍乡百姓网标王价格晋城seo网站优化推荐红河关键词排名盐城百度网站优化报价和田建网站价格南昌设计网站多少钱枣庄SEO按天扣费多少钱平凉网站搜索优化巢湖设计网站宣城网络广告推广公司东营关键词按天计费价格中卫网站排名优化公司临夏seo排名报价歼20紧急升空逼退外机英媒称团队夜以继日筹划王妃复出草木蔓发 春山在望成都发生巨响 当地回应60岁老人炒菠菜未焯水致肾病恶化男子涉嫌走私被判11年却一天牢没坐劳斯莱斯右转逼停直行车网传落水者说“没让你救”系谣言广东通报13岁男孩性侵女童不予立案贵州小伙回应在美国卖三蹦子火了淀粉肠小王子日销售额涨超10倍有个姐真把千机伞做出来了近3万元金手镯仅含足金十克呼北高速交通事故已致14人死亡杨洋拄拐现身医院国产伟哥去年销售近13亿男子给前妻转账 现任妻子起诉要回新基金只募集到26元还是员工自购男孩疑遭霸凌 家长讨说法被踢出群充个话费竟沦为间接洗钱工具新的一天从800个哈欠开始单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#中国投资客涌入日本东京买房两大学生合买彩票中奖一人不认账新加坡主帅:唯一目标击败中国队月嫂回应掌掴婴儿是在赶虫子19岁小伙救下5人后溺亡 多方发声清明节放假3天调休1天张家界的山上“长”满了韩国人?开封王婆为何火了主播靠辱骂母亲走红被批捕封号代拍被何赛飞拿着魔杖追着打阿根廷将发行1万与2万面值的纸币库克现身上海为江西彩礼“减负”的“试婚人”因自嘲式简历走红的教授更新简介殡仪馆花卉高于市场价3倍还重复用网友称在豆瓣酱里吃出老鼠头315晚会后胖东来又人满为患了网友建议重庆地铁不准乘客携带菜筐特朗普谈“凯特王妃P图照”罗斯否认插足凯特王妃婚姻青海通报栏杆断裂小学生跌落住进ICU恒大被罚41.75亿到底怎么缴湖南一县政协主席疑涉刑案被控制茶百道就改标签日期致歉王树国3次鞠躬告别西交大师生张立群任西安交通大学校长杨倩无缘巴黎奥运

深圳SEO优化公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化