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

技术编号:29618244 阅读:20 留言:0更新日期:2021-08-10 18:38
本发明专利技术公开了一种基于区块链的身份认证方法,该方法包含了一种针对身份认证过程生物识别预言机网络,预言机网络的作用是对比生物识别采集的活体人脸信息和身份认证头像的小图信息,将对比将结果通过区块链智能合约调用的形式写入到区块链上,完成链下数据到链上数据的映射。区块链智能合约通过这种方式可以获取到身份信息对比结果,从而可以根据对比结果判断身份认证是否成功。本发明专利技术解决了传统基于区块链的身份认证方案严重依赖第三方身份验证服务的问题,也保证了存储在区块链上的身份信息的真实性,提升了基于区块链的身份认证系统的安全性和可靠性。

【技术实现步骤摘要】
一种基于区块链的身份认证方法
本专利技术属于区块链
,具体涉及一种身份认证方法。
技术介绍
目前,区块链技术和身份认证的结合处于初级研究阶段,市面上逐步出现一些商业应用,比较知名的便是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:如果区块链节点收到预言机智能合约的请求事件,则会在区块链数据库中记录该信息,并且将该事件通知给订阅它的预言机网络节点;预言机网络节点收到该事件后从事件中解析出此本文档来自技高网
...

【技术保护点】
1.一种基于区块链的身份认证方法,其特征在于,包括以下步骤:/n步骤1:用户信息注册;/n用户在前端模块提交身份证正反面照片,前端模块将获取到的身份证照片信息解析为用户身份信息;/n前端模块将用户身份信息进行压缩编码,再调用身份认证智能合约信息注册接口将用户身份信息存储到身份认证智能合约;此时存储的用户身份信息属于未认证状态,注册过程完成;/n步骤2:用户认证过程;/n步骤2-1:前端模块利用摄像头获取用户的生物活体人脸信息,前端模块提交获取到的生物活体人脸信息和用户身份证头像信息并调用身份认证智能合约认证请求接口进行认证请求;/n步骤2-2:身份认证智能合约处理用户的认证请求,执行身份认证智能合约认证函数;身份认证智能合约认证函数将认证请求信息进行编码,编码完成后,通过跨合约调用预言机智能合约;/n步骤2-3:预言机智能合约收到调用请求后,执行请求接收函数,将请求信息封装为区块链事件,存储到区块链中,区块链中的所有节点会同步该区块链事件,从而形成数据的一致性;/n区块链事件的内容包含请求信息封装后的具体信息和根据该信息通过sha3算法生成的事件索引;通过生成的事件索引,预言机网络中的节点能够快速监听检索到该区块链事件;/n步骤2-4:当预言机网络检索到区块链事件后将区块链事件解码;解码完成之后得到身份认证智能合约地址、身份认证智能合约回调函数、回调函数参数、base64编码的身份证头像信息、base64编码的活体人脸信息;/n步骤2-5:预言机网络节点利用人脸对比模型对比解码后得到的用户身份证头像信息和生物体人脸信息的相似度;如果相似度超过设定阈值,则认为对比成功;/n步骤2-6:预言机网络中的每个节点都执行步骤2-5,将身份认证请求的对比结果在全网共识,如果预言机网络中有一半以上的节点对比成功,则认为此次认证成功;认证成功之后预言机网络随机选出一个节点作为主节点调用预言机智能合约请求响应函数,请求内容包括身份认证结果、身份认证智能合约地址、身份认证智能合约回调函数、回调函数参数;/n步骤2-7:预言机智能合约请求响应函数接收到预言机网络的调用后,利用身份认证智能合约地址和身份认证智能合约回调函数、回调参数、认证请求对比结果信息发送回调请求到身份认证智能合约;/n步骤2-8:身份认证智能合约收到身份认证结果后,如果为认证成功,则向区块链提交一笔交易更改用户身份信息为认证状态。/n...

【技术特征摘要】
1.一种基于区块链的身份认证方法,其特征在于,包括以下步骤:
步骤1:用户信息注册;
用户在前端模块提交身份证正反面照片,前端模块将获取到的身份证照片信息解析为用户身份信息;
前端模块将用户身份信息进行压缩编码,再调用身份认证智能合约信息注册接口将用户身份信息存储到身份认证智能合约;此时存储的用户身份信息属于未认证状态,注册过程完成;
步骤2:用户认证过程;
步骤2-1:前端模块利用摄像头获取用户的生物活体人脸信息,前端模块提交获取到的生物活体人脸信息和用户身份证头像信息并调用身份认证智能合约认证请求接口进行认证请求;
步骤2-2:身份认证智能合约处理用户的认证请求,执行身份认证智能合约认证函数;身份认证智能合约认证函数将认证请求信息进行编码,编码完成后,通过跨合约调用预言机智能合约;
步骤2-3:预言机智能合约收到调用请求后,执行请求接收函数,将请求信息封装为区块链事件,存储到区块链中,区块链中的所有节点会同步该区块链事件,从而形成数据的一致性;
区块链事件的内容包含请求信息封装后的具体信息和根据该信息通过sha3算法生成的事件索引;通过生成的事件索引,预言机网络中的节点能够快速监听检索到该区块链事件;
步骤2-4:当预言机网络检索到区块链事件后将区块链事件解码;解码完成之后得到身份认证智能合约地址、身份认证智能合约回调函数、回调函数参数、base64编码的身份证头像信息、base64编码的活体人脸信息;
步骤2-5:预言机网络节点利用人脸对比模型对比解码后得到的用户身份证头像信息和生物体人脸信息的相似度;如果相似度超过设定阈值,则认为对比成功;
步骤2-6:预言机网络中的每个节点都执行步骤2-5,将身份认证请求的对比结果在全网共识,如果预言机网络中有一半以上的节点对比成功,则认为此次认证成功;认证成功之后预言机网络随机选出一个节点作为主节点调用预言机智能合约请求响应函数,请求内容包括身份认证结果、身份认证智能合约地址、身份认证智能合约回调函数、回调函数参数;
步骤2-7:预言机智能合约请求响应函数接收到预言机网络的调用后,利用身份认证智能合约地址和身份认证智能合约回调函数、回调参数、认证请求对比结果信息发送回调请求到身份认证智能合约;
步骤2-8:身份认证智能合约收到身份认证结果后,如果为认证成功,则向区块链提交一笔交易更改用户身份信息为认证状态。


2.根据权利要求1所述的一种基于区块链的身份认证方法,其特征在于,所述请求接收函数执行过程如下:
请求接收函数对请求信息进行判断,首先判断请求信息包含的交易所携带的手续费是否大于等于合约要求的最低手续费;如果大于等于,执行下一步;如果小于,则直接结束;
接着判断请求信息包含的交易的数据大小是否大于0字节,如果小于等于0字节,说明此次调用非法,结束函数执行流程;如果大于0字节,则正常执行下一步;
再判断请求回调函数是否大于0字节,如果小于等于0字节,说明函数签名为非法函数调用;如果大于0字节,则正常执行下一步;
最后将请求信息封装为区块链事件,存储到区块链中,函数执行结束。


3.根据权利要求1所述的一种基于区块链的身...

【专利技术属性】
技术研发人员:郗润平韩倩倩张艳宁
申请(专利权)人:西北工业大学
类型:发明
国别省市:陕西;61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1