一种基于区块链的身份生成方法及身份系统

文档序号:169087 发布日期:2021-10-29 浏览:12次 >En<

阅读说明:本技术 一种基于区块链的身份生成方法及身份系统 (Identity generation method and identity system based on block chain ) 是由 居敏 徐丹梅 于 2021-07-23 设计创作,主要内容包括:本发明公开了一种基于区块链的身份生成方法及身份系统,包括以下步骤:将生成主密钥对和派生的子密钥对进行加密并存储在用户设备上,用户通过使用主密钥对管理派生的子密钥对;从主密钥对生成分散式身份,将分散式身份的ID解析为IPFS上存储的文档;将分散式身份数据写入IPFS并通过IPFS的哈希值关联分散式身份数据的信息,将关联信息写入以太坊区块链;以太坊区块链建立唯一数字身份。本发明基于用户自己生成身份,解决上述身份认证及数据安全问题。(The invention discloses an identity generation method and an identity system based on a block chain, which comprise the following steps: encrypting the generated master key pair and the derived sub-key pairs and storing the encrypted master key pair and the derived sub-key pairs on user equipment, wherein the user manages the derived sub-key pairs by using the master key pair; generating a distributed identity from the master key, and analyzing the ID of the distributed identity into a document stored on the IPFS; writing the distributed identity data into an IPFS (internet protocol file system), associating the information of the distributed identity data through a hash value of the IPFS, and writing the associated information into an Etherhouse block chain; the ether house blockchain establishes a unique digital identity. The invention generates identity based on the user, and solves the problems of identity authentication and data security.)

一种基于区块链的身份生成方法及身份系统

技术领域

本发明涉及区块链技术领域,具体涉及一种基于区块链的身份生成方法及身份系统。

背景技术

当今世界,保护数字隐私越来越具有挑战性,用户的个人数据通常成为所谓的免费互联网服务的产品。大型科技公司对用户数据的保管是不透明的,今年以来,用户数据泄漏以及数据交易的事件频发,由此我们感觉到如何有效的保护用户的数字隐私已经是一个刻不容缓的课题。

现有的数字身份系统存在以下问题:差别行业差别部门的身份认证系统各不相同,一个公民可能在差别的身份系统中保留着差别的身份信息和行为数据,这些身份数据中许多相互重叠,一方面造成了资源存储的虚耗,另一方面也给用户使用身份带来了未便与低效,往往需要重复注册和认证,也差别身份系统中的用户身份数据由各系统单独存储,无法共享和流通,也无法综合行使,对于身份提供者来说跨域认证效率低;在传统的PKI(Public Key Infrastructure-公钥基础设施)系统中,数字证书是焦点,其是由相对权威的CA(certificate authority-证书颁发)机构签发的,但CA的中央化签发所引发如中央失效、网络平安等问题;当前数字身份的身份信息散落在各个身份认证者手中,用户身份信息保留在各个应用的中央化服务后,还存在着服务器被攻击,用户隐私泄露等问题;传统身份证实无法笼罩所有人,缺乏足够的信托支持他们获得应有的权力。

发明内容

本发明的目的是提供一种基于区块链的身份生成方法及身份系统,基于用户自己生成身份,解决上述身份认证及数据安全问题。

为了解决上述技术问题,本发明提供了一种基于区块链的身份生成方法,包括以下步骤:

S1:将生成主密钥对和派生的子密钥对进行加密并存储在用户设备上,用户通过使用主密钥对管理派生的子密钥对;

S2:从主密钥对生成分散式身份,将分散式身份的ID解析为IPFS上存储的文档;

S3:将分散式身份数据写入IPFS并通过IPFS的哈希值关联分散式身份数据的信息,将关联信息写入以太坊区块链;

S4:以太坊区块链建立唯一数字身份。

作为本发明的进一步改进,所述步骤S1中用户设备选择从主密钥对导出签名密钥,签名密钥用于签署用户可验证声明,当签名密钥泄露时,丢弃导出的签名密钥。

作为本发明的进一步改进,所述步骤S1中密钥对生成方法,包括以下步骤:主密钥对根据分层确定性钱包从种子短语派生,沿着不同的身份路径导出其子密钥对。

作为本发明的进一步改进,所述步骤S2中分散式身份采用分散标识符DID,分散标识符DID从主密钥对中生成,将分散标识符DID解析为IPFS上存储的文档DDO。

作为本发明的进一步改进,所述步骤S3中,分散标识符DID写入到IPFS并通过IPFS的哈希值关联分散标识符DID与数据的信息,分散标识符DID于IPFS关联的数据通过以太坊智能合约提交至以太坊区块链。

作为本发明的进一步改进,所述步骤S4中,以太坊区块链通过生物特征建立身份标识,所述身份表示由数字化处理后以数字摘要的形式存储在以太坊区块链上,形成唯一数字身份。

作为本发明的进一步改进,所述步骤S4中通过以太坊区块链形成用户可信行为特征,用户可信行为特征与身份信息绑定形成用户KYC数据。

一种基于区块链的身份系统,包括用户端、底层架构、IPFS和以太坊区块链:

用户端,用于创建和管理身份以及与每个身份相关联的声明的默认用户界面;

底层架构包括应用接口、登录模块、解析模块和智能合约模块,所述应用接口用于提供分散式身份各种功能的应用程序服务器模块;所述解析模块用于通过分散式身份的ID取得分散式身份的文档;所述登录模块用于将分散式身份数据写入IPFS并通过IPFS的哈希值关联分散式身份数据的信息,并将分散式身份的ID与IPFS的哈希值的关联写入以太坊区块链;所述智能合约模块用于定义与以太坊区块链交互的智能合约和其他模块调用的接口。

作为本发明的进一步改进,所述用户端包括SDK、CLI和用户应用,所述SDK采用面向开发者的SDK,用于调用分散式身份的各类接口;所述CLI采用面向开发者的命令行工具,用于调用分散式身份的各类接口;所述用户应用采用面向用户的个人数据管理的应用端。

作为本发明的进一步改进,所述应用接口连接有第三方应用,所述第三方应用用于提供分散式身份解析的Restful的API。

本发明的有益效果:本发明身份生成方法基于用户自己生成,提供和控制的分层确定性密钥为用户提供分散的身份,提供不同自我主权身份之间的整合;通过区块链技术实现分布式的数字证书签发规避网络平安,中央服务器宕机等问题,以及区块链保证用户数字身份的有效性的同时,对同一行业制定认可的数据结构的标准,从而能使用户的数字身份可以在同一行业内被反复使用,同时,区块链以其真实可信,不能篡改等特点为人们提供低门槛的可信身份解决方案;在实现现基于区块链技术的分散式数字身份的同时,整合不同的分散式数字身份的方案,并将其整合在系统服务中,设计为不受任何特定技术约束以应对区块链技术迅速不断变化的格局。

附图说明

图1是本发明方法流程示意图;

图2是本发明系统结构示意图。

具体实施方式

下面结合附图和具体实施例对本发明作进一步说明,以使本领域的技术人员可以更好地理解本发明并能予以实施,但所举实施例不作为对本发明的限定。

实施例一

参考图1,本发明实施例提供了一种基于区块链的身份生成方法,包括以下步骤:

S1:将生成主密钥对和派生的子密钥对进行加密并存储在用户设备上,用户通过使用主密钥对管理派生的子密钥对;

S2:从主密钥对生成分散式身份,将分散式身份的ID解析为IPFS上存储的文档;

S3:将分散式身份数据写入IPFS并通过IPFS的哈希值关联分散式身份数据的信息,将关联信息写入以太坊区块链;

S4:以太坊区块链建立唯一数字身份。

具体的,密钥对的创建遵循BIP0032规范。生成的主密钥对和派生密钥将被加密并存储在用户的设备上。用户可以通过使用主密钥对来管理派生的子密钥对,反之,用户用子密钥对不能够追溯到主密钥对。用户可以导出签名密钥,并使用该密钥来签署他或她的可验证声明。或者,在需要匿名的情况下,用户可以选择导出一次性签名密钥,如果签名密钥被泄露,则可以简单地将其丢弃而不会影响主身份。分层确定性密钥派生:主密钥对是根据BIP0032从种子短语派生的。从该主密钥对,可以沿着不同的身份路径导出子密钥对。撇号说明使用了BIP0032强化密钥派生。

身份路径语法:{m/目的'/上下文'/实体'}

在实现中,默认情况下派生一对密钥,以使身份随时可用。这个密钥对通过以下路径定义:

路径定义:{m/73'/签名键'/全局'}

路径实现:{m/73’/0’/0’}

目的:将身份密钥生成的上下文中的目的设置为73'的常数。它描述该节点下的密钥均与特定于身份的实现有关。上下文字段指定在其中使用密钥的上下文。默认情况下,仅定义一个上下文,可以将其视为签名密钥上下文。在此路径深度进行定制允许实施不同的角色和角色。实体定义了可以进一步区分键的下一个路径深度,例如:

{m/73’/签名键’/社交媒体’}

或者:

{m/73’/签名键’/游戏’}。

分散式身份解析:新型的URL不应要求集中的权限来注册,解析,更新或撤销。如今,绝大多数URI基于DNS名称或IP地址而DNS名称或IP地址依赖于集中的权威机构进行注册和最终控制。而DID无需任何此类权限即可创建和管理DID。URL的所有权和相关的元数据(包括公共密钥)可以通过密码学来验证。在本方法实现中,DID是从用户的公钥生成的。此DID解析为IPFS上存储的DDO,DID到返回的IPFS哈希的映射将作为条目存储在以太坊区块链上的注册表智能合约中,由于以太坊区块链其数据保护特性–数据不变性,时间戳和公共审计的可能性,这些映射的存储是可以信任的。

DDO本质上是一个描述DID的JSON对象。DDO包含属性,例如它描述的DID,内容寻址的哈希值或其他端点的集合,可以从中获取与身份相关的其他数据(如可验证的声明)以及潜在的等效DID(由同一实体控制的DID),用户可以授权等效DID为其更新实体的控制权,或可以用来为其提供声明的验证。

区块链以其真实可信,不能篡改等特点为传统身份认证不能认证的人群提供低门槛的可信身份解决方案。区块链技术可以和生物识别技术相整合,建立真实唯一,难以伪造的数字身份。让用户的生物特征成为其身份标识,如指纹、面部、虹膜等,提取其二进制特征向量,经由数字化处置后以数字摘要的形式存储在区块链上,形成不能篡改的数字身份,取代传统所需的ID号。通过区块链形成用户不能篡改的行为纪录,与其身份绑定,增强其身份特征和可信行为特征,进而形成可以被各种业界认可和使用的用户KYC(Know YourCustomer)数据。这对于金融,公共服务,旅行等等行业都有极其重要的意义。

实施例二

参考图2,本发明实施例提供了一种基于区块链的身份系统,包括用户端、底层架构、IPFS和以太坊区块链:

用户端,用于创建和管理身份以及与每个身份相关联的声明的默认用户界面;

底层架构包括应用接口、登录模块、解析模块和智能合约模块,所述应用接口用于提供分散式身份各种功能的应用程序服务器模块;所述解析模块用于通过分散式身份的ID取得分散式身份的文档;所述登录模块用于将分散式身份数据写入IPFS并通过IPFS的哈希值关联分散式身份数据的信息,并将分散式身份的ID与IPFS的哈希值的关联写入以太坊区块链;所述智能合约模块用于定义与以太坊区块链交互的智能合约和其他模块调用的接口。

具体的,所述用户端包括SDK、CLI和用户应用,所述SDK采用面向开发者的SDK,用于调用分散式身份的各类接口;所述CLI采用面向开发者的命令行工具,用于调用分散式身份的各类接口;所述用户应用采用面向用户的个人数据管理的应用端。所述应用接口连接有第三方应用,所述第三方应用用于提供分散式身份解析的Restful的API。

系统简化身份管理以及与身份相关的数据,将基础技术统一为一个对开发人员友好的RESTful API该体系结构被设计为不受任何特定技术约束以应对区块链技术迅速不断变化的格局。用户界面位于系统独立的扩展包中,使用系统公开的接口。它是创建和管理身份以及与每个身份相关联的声明的默认用户界面,并允许以可视化和用户友好的方式进行此管理。公共区块链用于存储每个DID到其DID映射的可信任的存储层(默认以太坊区块链+可插拔式区块链网络接口);存储后端-目前,即将带星际链接数据(IPLD)的星际文件系统(IPFS)用作默认的公共存储后端,用于存储DDO(did document object-did文档对象数据)。此外私人声明的默认存储选项将直接在身份创建者的个人设备上。系统可完成以下可信身份管理功能:产生独特的,分散的和永久的身份数据;从主身份衍生出子身份,以准确地模拟其他角色和/或配置IoT设备;创建与身份相关的可验证声明,该声明可用于与服务或其他方的进一步交互;将第三方创建的可验证声明与选定的身份相关联。

实施例三

参考图1和图2,本发明实施例在实施例一和实施例二的基础上,通过分散式身份生成和身份系统,可实现以下功能:

一、可以运用区块链实现分布式的数字证书签发,让以往由集中式CA认证中央签发数字证书可以由区块链的分布式账本实现。基于区块链的特性可以规避网络平安,中央服务器宕机等问题:

(1)证书申请:用户自己生成公私钥对,私钥自己保留,并将公钥和用于验证用户身份信息的数据发动给验证节点举行证书的申请;

(2)证书签发:验证节点会凭据新用户提交的信息验证其身份的真实性;验证通过后生成数字证书并上链;

(3)证书打消:用户提出证书打消请求,其中包括用户的证书以及可以证实用户身份的信息;验证节点凭据用户提交的信息验证用户身份,审核证书打消请求通过后,验证节点将区块链的上的证书信息删除;

(4)证书更新:用户需要发生一份新的数字证书,与原有证书有相同的DN(Distinguished Name-专有名称)项。证书用户向区块链网络发送证书更新请求,提交需要更新的证书,新的证书以及证实身份的信息,再由验证节点举行验证上链。

二、通过区块链上的验证节点保证用户数字身份的有效性的同时,对同一行业制定系统认可的数据结构的标准,并在行业内推广,从而能使用户的数字身份可以在同一行业内被反复使用:

在数据隐私与数据安全方面,本系统将用户数据的掌控权完全地返还给了用户本人。比如用户登录系统的某一应用时,该应用会向用户请求用户需要提供的数据,当用户在对自己需要共享的数据没有异议的时候,用户可以选择共享数据从而登录改应用。比如系统有酒类电商平台需要用户提供成年人证明,用户会在登录该平台的时候受到该平台发送的‘需要您提供成年人证明’的信息,用户只有选择接受的时候,她/他的相关数据才会共享给电商平台(前提是用户有类似的成年人证明),成年人证明,现在一般的做法是出示身份证明文件比如护照,身份证等。然而在出示类似文件的时候,您的其他信息例如姓名,住址等其实已经遭到了泄漏。系统的数字身份不需要用户在证明是成年人以外的任何信息(甚至不需要提供用户的年龄),这就将数据泄露的风险降到了最低。

以上所述实施例仅是为充分说明本发明而所举的较佳的实施例,本发明的保护范围不限于此。本技术领域的技术人员在本发明基础上所作的等同替代或变换,均在本发明的保护范围之内。本发明的保护范围以权利要求书为准。

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于区块链的完整数据溯源方法、装置及相关设备

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类