问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

去中心化DID身份认证的技术解析

发布网友 发布时间:2022-11-08 19:03

我来回答

1个回答

热心网友 时间:2023-11-11 20:42

    去中心化数字身份(Decentralized Identity,DID)是基于区块链技术建立起来的一种数字身份系统。它可以保证身份数据真实可信,同时也能保护身份用户相关的隐私,确保跟个人身份相关的数据归属于个人所有。很吻合2021年11月开始实施的《中国个人信息保*》,有没有?

V1.0 传统的身份认证:用户在每个网站上都重复注册账号,使用账号+密码的方式登录,每个网站各自掌握着用户的身份信息,如图1(a)所示。
缺点:重复注册账号,用户会时常不记得账号密码;而且多个网站都有用户的信息,也导致信息泄露。

V2.0 以单点登录代表的身份认证:用户在一个网站上注册的账号,可以授权登录到其他网站,比如在支付宝、微信、*、google等网站注册号账号后,授权登录到其他网站,如图1(b)所示。
缺点:用户的信息都掌握在几个大网站内,会有”店大欺客“的成分存在,也容易出现信息泄露的情况,如*的用户信息泄露问题。

V3.0 去中心化的身份认证:用户保管自己的身份信息,在必要的时候,以最小化的方式出示给各个网站确认即可,如图1(c)所示。
算缺点么?需要区块链作为底层技术支撑,将区块链作为一个可信任的第三方,来保证身份信息的完整性和正确性。

    DID 文档是对DID的详细说明,是一对一的关系,可以看作由两部分组成:DID metadata,以及 DID public key,如图4(a),其中public key是关键,用于数字签名或加密操作等。
    一般 DID 由用户自己保存,而将DID document 保存在区块链上(可以DID为 key 做索引),以保证DID document 的正确性。
    当用户在区块链上注册 DID 时,可以根据智能合约生成DID 及相关的document,并由智能合约负责 DID在链上的读取和更新等。

    DID的认证过程涉及四方的交互:证书颁发者,证书持有者(可以拥有一个app保存多张证书凭据VC),验证方,以及DID注册系统(比如区块链)。
    证书颁发者是一个权威机构,比如某大学、*机关等;持有者会保存权威机构发布的凭据VC(比如从大学拿到的毕业证,*机关拿到的身份证等);验证者会对这些凭据的表示(VP),并结合区块链上的信息进行验证。
    DID认证的前提是权威机构、VC持有者、验证者都已经在区块链上注册了各自的ID。

VC(Verifiable Credential): 可验证的凭据,这相当于大学颁发的毕业证,或是*机构颁发的身份证等。其格式如图4(b)所示,包括:
(1) VC metadata,比如发行人、发行日期、声明(claim)的类型等;
(2) claim: 是一个或者多个关于主体的说明,比如身份证凭据的声明包含:姓名、性别、出生日期、民族、住址等;
(3) proof证明:保存了颁发者的数字签名,用于验证该VC的正确性及来源等。
有些实现方案中使用app或是钱包存储VC,持有者自己保管,也可以将VC存在区块链中,作为私密数据保存。

VP(Verifiable Presentation): 可验证的凭据表示,或者说是可验证的凭据的展示方式,有些场景下持有者不便于将VC直接给验证者看,或者一次验证中会涉及多个VC,所以就将一个或多个VC包装成VP,其格式如图4(c):
(1) VP元数据,包含了版本等信息;
(2) VC列表,要对外展示的VC的内容,如果是选择性披露或者隐私保护的情形,就需要对原始的VC做一些变动并加上对变动的证明。
(3) proof证明,主要就是持有者对本VP的签名信息。

    VC中的claim五花八门,可能是大学毕业证书、身份证、驾驶证、结婚证等,为了能正确地解析,就需要提前在区块链中注册其解析方式。
    这种事情一般由Authority来完成,按照业务场景分类,定义不同类型数据结构的Claim结构,并注册在区块链上,以保证全网通用。

     以身份证为例,其完整的VC凭据包括姓名、性别、出生日期、民族、住址、照片等。在买火车票时,可能只需要姓名和身份证号码;上学报名时,可能仅需要姓名、出生日期等;确认少数民族身份时,必须要明确民族信息。所以很多场景下,不是全部选项都需要,可能只需要其中的一两项,可以仅仅披露必须项。
    但如何确认披露的这几项是正确的,没有被修改过呢?这里用到了经典的Merkle Tree结构,如图5所示。比如在只需要披露生日的场景下,就可以借用”生日“的兄弟选项”民族“,以其到树根的路径<Hash1, Hash34> + MerkleRoot 来验证”生日“的正确性。

     比如证书到期了,颁发者需要撤销之前发布的凭据VC,这里用到了密码学中的累加器。
     在颁发者发布VC时,会给每个VC都设置一个大素数,并保存所有大素数的RSA累加结果;当需要撤销某个VC时,就先用该VC的大素数去除Accumulator,并更新Accumulator,之后验证时,用 VC 对应的大素数去除 Issuer 公开的 Accumulator,如果能整除,则表明是VC是有效的(未被撤销)。

    基于Ethereum,比较知名的DID是uPort。我也曾关注过Hyperledger的DID项目 Hyperledger Indy,但其底层采用了自己的一套区块链架构,而非Hyperledger Fabric,这估计是基于Fabric 的DID实现的场景较少的原因。微众银行FISCO BCOS基于自己的BCOS架构,实现了自己的一套 WeIdentity .

     该章节只简单讲述了DID是什么,并粗略介绍了其使用原理,还有很多细节未能一一道来,如需要更多细节请移步:

在本文中介绍了DID的单一实现方式,今天看到另外一篇博客 Demystifying Digital Identity (2/2) 或参考其翻译 揭开数字身份的神秘面纱2/2 ,建议通过一组链接文档来实现扩展的DID,以信息图谱的方式来组织文档,如主链、关联的多个账户、分类的基本信息profile、关联的外部服务或资源等,如下图。这样的DID,就可以对接任何应用程序、服务或用户,而且是一个全球可用的、分布式的、可审查的DID。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
The ___ of the food is very terrible, but it ___ very nice. Worm.Win32.Viking.k病毒描述 IM-Worm.Win32.VB.c清除方案 Worm.Win32.VB.nk 是什么样的蠕虫病毒啊,会怎么样你的电脑啊?_百度知 ... 蠕虫病毒Win32.Womble.C简介 email-worm.win32,vb,bk是什么病毒? Email-Worm.Win32.VB.bk,有谁知道这是什么病毒吗现在有些什么 病毒? Worm.Win32.Viking病毒描述 IM-Worm.Win32.VB.c病毒标签 贵州遵义到甘肃省天水市怎么走方便? 16款威驰汽车空调温控器在什么位置? 汽车空调温控器在哪个位置? 发质毛躁用什么洗发水? DOREEN.R的洗发水和沐浴露好用吗? 铁齿铜牙纪晓岚,有关内容,答对满星 《铁齿铜牙纪晓岚》洪霞吸引皇上为救洪御史,又发生了什么故事呢? 河南电视台每天广告天方方便面的那个女孩叫什么名字 哪位知道告诉一下谢谢~~!! 求AutoCAD2011激活码 序列号:356-72378422 密钥:001C1申请号:3K6F ZUWF 2F98 Q 冬虫夏草10克大慨有多少根 win7怎么恢复刚买来的样子,就像手机恢复出厂设置一样 怎样把win7恢复到刚买来的样子 刚才不小心把现在的系统用一点还原备份了 一键还原之后还 流量1g相当于多少m,多长时间可以用完。 消逝的光芒1和2哪个好玩 消逝的光芒2买哪个版本 消逝的光芒1.35更新了什么 switch消逝的光芒1.0.5更新了什么 ipad首付最多可以交多少钱? 想买部ipad mini2,不是说首付交的多,分期就拿的少吗,现 ipad air2分期付款首付是多少? 车窗膜贴什么颜色好 车窗膜颜色搭配方法介绍 怎么选择汽车贴膜颜色 去中心化DID身份认证的应用解析 你们的华为手机是不是也存在频繁重启问题? 你的身材有料吗,都是牛奶巧克力。是什么意思。求科普。 你的身材有料吗?全是牛奶巧克力,这个算是牛奶巧克力什么意思 巧克力牛奶形容黑人是侮辱吗? 300790要破产了吗 创维32e3000可以投屏吗 微信的聊天记录怎么查到 东北产的“哪旮旯”鹿鞭健身酒,酒颜色呈*,有沉淀物是不是正常?保质期为5年,实际3年多了,还能饮 XS是什么意思 带你详细了解一下 用移动手机充值卡序列号就可以充值话费吗? 压花艺术的介绍 押花的起源发展 压花的解释二 压花艺术的压花艺术的定义 夏威夷语“啊楼哈”是什么意思? 夏威夷打招呼的方式 hello ha的意思? 学法知法做守法小公民手抄报 在小学阶段,为了让孩子们取得更加优秀的成绩,你对老师有什么建议?