在上一篇文章中,我们给出了一种零知识证明的方法,解决用户身份属性的隐私问题,下面我们再来谈谈基于DID技术,我们都能在什么场景去应用。

0x.0 无密码安全登录

这个使用场景大家应该都很熟悉了,就类似于微信扫码登录,当我们要注册或者登录一个网站时,不需要再填写用户名、密码、邮箱之类的信息,只需要用手机里的数字身份APP扫描登录页的二维码,然后在APP中弹出扫码后的信息,选择确认登录即可。使用DID的APP与传统的微信扫码登录不同之处就在于DID中用户的身份信息是用户自己掌握的,而微信扫码登录的身份信息是腾讯掌握的,如果哪一天腾讯封禁了你的微信账号,那么你将无法登录所有之前使用微信登录的网站。而DID不会有这个问题,因为没有人能够封禁你的DID。使用DID实现无密码登录的流程如下:

  1. 用户打开要登录的网站,网站服务器生成一个包含随机分配的ID、网站DID、网站服务器URL的二维码。
  2. 用户解锁手机中的DID APP,并扫描网站上的二维码。
  3. APP获得二维码中的ID和服务器提交URL,生成登录请求,并使用网站DID去区块链查询DID文档,获得网站服务器的公钥,用公钥加密请求数据,发送到网站服务器。
  4. 网站服务器用私钥解密登录请求,并在区块链中查询DID对应的DID文档,从中获得公钥,用公钥验证签名,确保DID为对应的用户。
  5. 网站服务器验证通过,刷新登录页面为已登录状态。

从整个流程中我们可以看到,服务器并不知道用户的密码,而且也无法获得除用户的DID和DID文档以外的任何信息,从而保证了用户隐私数据的安全。从此再也不用担心XX网站用户信息泄露或者密码被黑客撞库,登录了其他网站盗取有用信息的情况发生。

0x.1 身份认证

在大量的涉及价值的网络中,尤其是金融产品的网络,都要求做好KYC和AML。尤其是KYC,需要获得用户的一些身份信息,而每注册一个金融网站就需要认证一次身份信息十分繁复,使用DID进行身份认证可以简化这个流程。以某互联网金融APP为例,如果一个新用户想在上面做投资,那么需要提供手机验证码、身份证照片验证、人脸识别验证、录制视频等手续。而如果该用户又去另一个互联网金融的APP里面,又得再次进行相关的验证,非常的麻烦。而如果基于DID,可以将身份认证的手续大为简化。当然要进行身份认证的前提是:公安机关、大学等身份信息、证书颁发机构已经将VC生成,并发到了用户手中。用户将VC存储在自己的云空间或者自己的手机中。

在用户通过无密码登录APP后,进行实名认证的过程如下:

  1. 用户登录到网站或者APP或者商家点击认证按钮。
  2. 服务器根据业务需求,生成需要认证的信息的请求,并将请求以二维码或者其他方式发送给用户DID的APP。
  3. DID APP收到认证请求后,查询本DID是否有满足要求的VC,是否有对应的字段等,如果满足要求,显示认证的内容,并请求用户通过指纹或者密码解锁私钥进行签名,以生成VP。
  4. 用户在确认信息无误后,解锁私钥,生成VP,并将VP以二维码或者直接回传商家服务器的形式,发送到商家服务器。
  5. 商家服务器收到VP后,验证VP签名无误,满足验证的要求,显示验证通过。商家服务器将VP保存,并关联用户DID。

除了金融场景要求的KYC之外,前面我们也举例过的公司入职时要验证学历、酒店入住的时候要验证身份、买烟酒时要验证年龄大于18岁,在购买景区门票时验证学生身份享受学生折扣等。

0x.2 电子签名

在传统的电子签名方案中,用户需要预制一个U盾,该U盾中含有分配给该用户的私钥还有给该用户颁发的证书,每次签名需要插入U盾,安装插件,才能正常使用。而基于U盾的电子签名方案具有以下几个问题:

1.需要很长的时间来准备U盾(制作证书),所以不能立刻申请,立刻使用。

2.U盾必须随身携带,而用户一般只有随身带手机的习惯,没有随身带U盾的习惯。

3.签名方在首次签名后可以对原文件进行修改,然后重新签名,仍然验证通过的。

基于数字身份DID的电子签名方案可以很好的解决前面提到的三个问题。其使用流程如下:

  1. 用户通过自己的手机创建好DID后,先向可信发证方发起请求,获得VC,并将VC存储在用户端。该VC就相当于传统PKI体系的证书文件。
  2. 用户在审阅文档确认没问题后,计算文档Hash,将文档Hash和其他摘要信息通过二维码或者其他方式发送到DID APP中。
  3. DID APP请求用户解锁私钥,并用私钥对文档哈希进行签名,并同时将:DID、文档Hash、签名值上链。
  4. PC端检索区块链,获得上一步骤上链的DID、签名值等信息,验证通过,将签名结果展示在文档中。

以上步骤中,因为VC的生成和下载都是软件实现,所以不需要长时间等待U盾制作;而且私钥通过加密保存到手机中,不用单独再随身带个U盾;签名结果直接上链,防止篡改,预防签名方多次签名同一个文档多个版本的情况。

0x3 个人隐私保护

这个我在前面两篇文章,用户身份属性的选择性披露和零知识证明中已经详细讲到了,用户在亮证的时候只披露验证方需要的信息,而不会把整个证件的所有信息暴露,从而实现了个人隐私保护的目的。

另外还有进一步的一种叫PDC(个人数据中心)的方案,个人数据都加密保存在个人的数据中心中并与个人的DID关联,每个人对自己的数据负责,当需要获取用户的某些隐私数据时,需要该DID的授权才能解密访问。这属于一个比较新,而且还没有真正应用起来的方案,细节就不再赘述。

0x4 物联网标识

前面提到的几个应用场景都是针对人的身份,实际上IOT也可以与DID进行紧密结合,我们给每个IOT设备都分配其独一无二的IDD,基于物联网+区块链+DID构建:商品溯源、车联网、智能制造、智慧城市等应用场景。

以制造业中的制造机器为例,每个机器都有一个DID,该DID是由机器的制造商生成并赋予每台机器的,当机器运转时会产生大量的生产数据,该机器会将数据签名,将非敏感生产数据、签名结果和DID上链。机器的制造商可以根据链上数据得知机器的运行情况,便于更好的售后保养服务。当企业需要贷款时,银行可以根据区块链上的生产数据,并结合机器制造商的背书,判断企业的生产经营情况,评估贷款风险。

我们再以高价值商品的物联网防伪溯源为例,当每个商品被制造出来时,商家就为其IOT设备生产私钥并创建唯一的DID。因为私钥无法复制导出,所以只有在区块链上登记了DID的商品才是正品。而且商品的DID可以映射对应的非同质化通证,以数字化的形式表现商品的流转过程。

0x5 总结

DID技术是一个具有广泛应用场景的技术,尤其在关于居民身份信息的电子政务领域具有明显的优势,但是该技术需要公安部门之类的背书,目前还没有真正应用起来的场景。但是在不久的将来,随着个人隐私数据的保护立法和人民群众隐私保护意识的加强,DID必然会大放异彩。除了人的身份外,随着物联网技术,车联网技术,尤其是新兴的AIoT技术的发展,物品的身份标识也越来越重要,并以物联网标识为基础可以拓展出大量的应用场景。

去中心化数字身份DID简介——五、DID的应用相关推荐

  1. 去中心化数字身份DID简介——一、基本概念

    本人最近正在研究数字身份DID技术,该技术在区块链领域目前还比较冷门,并没有什么实际的应用案例,但是数字身份的应用场景广阔,是一个必然会火起来的技术.于是打算写几篇文章,好好讲一下其中涉及到的概念,技 ...

  2. 去中心化数字身份DID简介——二、一个完整的DID使用流程

    在上一篇文章,我们已经掌握了DID的基本概念,接下来我们用一个具体的场景来看看DID是怎么使用的. 0x0. 场景描述 小明是一个刚刚从大学毕业的应届毕业生,在毕业当天学校颁发了毕业证给小明对应的数字 ...

  3. 去中心化数字身份DID简介——四、用户属性的零知识证明

    在上一篇文章中,我们介绍了用户具有多个身份属性时,选择性的把其中的一个属性暴露出来,而不会造成其他信息的暴露.更进一步的情况,某些时候我们只需要验证用户的年龄达到多少岁,或者小于多少岁,但是并不关心用 ...

  4. 去中心化数字身份DID简介——三、用户属性的选择性披露

    在上一篇文章中,我们以最简单的生成DID,颁发VC,验证VP流程介绍了DID的用法,但是在实际生活中,我们并不总是希望直接将整个证件VC亮给验证者看,比如我们去住酒店时,需要登记姓名.身份证号信息,但 ...

  5. 去中心化数字身份(DID)的灵魂绑定

    在元宇宙中的去中心化数字身份(DID)能够在各个平台.软件中实现一号通行,关键在于它与用户进行了深度灵魂绑定,使用户在进入不同平台时拥有高度可信度,从而不必像当前互联网中需要频繁地进行身份验证. 关于 ...

  6. Neutrino追问AMA第14期 | MYKEY CEO George:去中心化的身份系统是未来网络的一个核心基础设施

    在2月27日 Neutrino 追问 AMA 第14期交流中,我们邀请到了基于多条公有区块链的自主身份系统 MYKEY CEO  George Sheng 进行了一场关于<如何通过数字钱包降低使 ...

  7. 去中心化借贷Compound项目简介

    自从有了借贷,经济便开始以前所未有的速度增长.借贷体系需要某种形式的信任和中介,当前金融中介的角色由银行承担,但是我们有理由质疑当前借贷系统的各种缺陷,如强制性的筹资标准.获取银行服务的地理位置或法律 ...

  8. uPort:去中心化的身份系统试用

    uPort ( http://uport.me/ ) 是基于以太坊的去中心化身份系统,用于去中心化应用(Dapp).最近在以太坊测试网络上发布了测试版本. 下面介绍如何使用uPort. 注册申请,提交 ...

  9. Hyperledger Indy项目(开源去中心化身份平台)、去中心化身份(DID)、分布式数字身份项目

    文章目录 一.Hyperledger Indy 1. 什么是Hyperledger Indy 2. 名词概念 3. Indy实现独立的数字身份 4. Indy如何验证数字身份 5. 使用案例 Kiva ...

最新文章

  1. 必要时调整应用程序每个辅助进程的线程数
  2. 如何禁用Visual Studio 2013的Browser Link功能
  3. Nginx(六)-- 配置文件之Gzip
  4. rp2836 网卡以及串口与接插件位置关系
  5. Python中内存管理的问题
  6. frame跨页传值/AJAX出错解决方案 + 知识补充:浏览器同源政策
  7. 从bagging到dropout(deep learning笔记Ian)
  8. Python竟然可以玩转微信emoji
  9. Android开关按键(左右复选)
  10. 教你用arduino控制LCD1602液晶屏的底层程序实现(全网最笨的方法)
  11. 关于android接入微信分享(以及app签名 the apk for your currently selected variant(app-release)
  12. 台湾SSS鑫创SSS1700替代Cmedia CM6533 24bit 96KHZ USB音频编解码芯片
  13. 【附源码】计算机毕业设计java志愿者招募系统设计与实现
  14. 什么是 DNS SPF 记录?
  15. 电梯屏只有新潮的一半了!阿里的150亿,能否让分众扛住挑战?
  16. Windows远程桌面突然不能复制粘贴的解决办法
  17. 网站推广手段集锦(2008七夕节中国情人节版)
  18. 银行卡收单业务____对账
  19. 计算器属于微型计算机嘛,计算器和计算机的区别?
  20. 《射击游戏》游戏开发记录

热门文章

  1. 清迈府Chiang Mai
  2. PPT课件的制作经验
  3. 揭秘马斯克脑机接口公司Neuralink的科学雄心
  4. 150h速成软件工程
  5. AI 自动研发机器学习系统,DeepMind 让算法学习强化学习
  6. Python 求完全数
  7. 安装xshell失败,mfc110u.dll缺失,或0xc000007b无法正常启动
  8. 2023年铜川宜宾半程马拉松赛-人生首次半马比赛
  9. android 竞品分析工具对比
  10. Linux如何杀掉僵尸进程