在上一篇文章中,我们给出了一种零知识证明的方法,解决用户身份属性的隐私问题,下面我们再来谈谈基于DID技术,我们都能在什么场景去应用。
这个使用场景大家应该都很熟悉了,就类似于微信扫码登录,当我们要注册或者登录一个网站时,不需要再填写用户名、密码、邮箱之类的信息,只需要用手机里的数字身份APP扫描登录页的二维码,然后在APP中弹出扫码后的信息,选择确认登录即可。使用DID的APP与传统的微信扫码登录不同之处就在于DID中用户的身份信息是用户自己掌握的,而微信扫码登录的身份信息是腾讯掌握的,如果哪一天腾讯封禁了你的微信账号,那么你将无法登录所有之前使用微信登录的网站。而DID不会有这个问题,因为没有人能够封禁你的DID。使用DID实现无密码登录的流程如下:
从整个流程中我们可以看到,服务器并不知道用户的密码,而且也无法获得除用户的DID和DID文档以外的任何信息,从而保证了用户隐私数据的安全。从此再也不用担心XX网站用户信息泄露或者密码被黑客撞库,登录了其他网站盗取有用信息的情况发生。
在大量的涉及价值的网络中,尤其是金融产品的网络,都要求做好KYC和AML。尤其是KYC,需要获得用户的一些身份信息,而每注册一个金融网站就需要认证一次身份信息十分繁复,使用DID进行身份认证可以简化这个流程。以某互联网金融APP为例,如果一个新用户想在上面做投资,那么需要提供手机验证码、身份证照片验证、人脸识别验证、录制视频等手续。而如果该用户又去另一个互联网金融的APP里面,又得再次进行相关的验证,非常的麻烦。而如果基于DID,可以将身份认证的手续大为简化。当然要进行身份认证的前提是:公安机关、大学等身份信息、证书颁发机构已经将VC生成,并发到了用户手中。用户将VC存储在自己的云空间或者自己的手机中。
在用户通过无密码登录APP后,进行实名认证的过程如下:
除了金融场景要求的KYC之外,前面我们也举例过的公司入职时要验证学历、酒店入住的时候要验证身份、买烟酒时要验证年龄大于18岁,在购买景区门票时验证学生身份享受学生折扣等。
在传统的电子签名方案中,用户需要预制一个U盾,该U盾中含有分配给该用户的私钥还有给该用户颁发的证书,每次签名需要插入U盾,安装插件,才能正常使用。而基于U盾的电子签名方案具有以下几个问题:
1.需要很长的时间来准备U盾(制作证书),所以不能立刻申请,立刻使用。
2.U盾必须随身携带,而用户一般只有随身带手机的习惯,没有随身带U盾的习惯。
3.签名方在首次签名后可以对原文件进行修改,然后重新签名,仍然验证通过的。
基于数字身份DID的电子签名方案可以很好的解决前面提到的三个问题。其使用流程如下:
以上步骤中,因为VC的生成和下载都是软件实现,所以不需要长时间等待U盾制作;而且私钥通过加密保存到手机中,不用单独再随身带个U盾;签名结果直接上链,防止篡改,预防签名方多次签名同一个文档多个版本的情况。
这个我在前面两篇文章,用户身份属性的选择性披露和零知识证明中已经详细讲到了,用户在亮证的时候只披露验证方需要的信息,而不会把整个证件的所有信息暴露,从而实现了个人隐私保护的目的。
另外还有进一步的一种叫PDC(个人数据中心)的方案,个人数据都加密保存在个人的数据中心中并与个人的DID关联,每个人对自己的数据负责,当需要获取用户的某些隐私数据时,需要该DID的授权才能解密访问。这属于一个比较新,而且还没有真正应用起来的方案,细节就不再赘述。
前面提到的几个应用场景都是针对人的身份,实际上IOT也可以与DID进行紧密结合,我们给每个IOT设备都分配其独一无二的IDD,基于物联网+区块链+DID构建:商品溯源、车联网、智能制造、智慧城市等应用场景。
以制造业中的制造机器为例,每个机器都有一个DID,该DID是由机器的制造商生成并赋予每台机器的,当机器运转时会产生大量的生产数据,该机器会将数据签名,将非敏感生产数据、签名结果和DID上链。机器的制造商可以根据链上数据得知机器的运行情况,便于更好的售后保养服务。当企业需要贷款时,银行可以根据区块链上的生产数据,并结合机器制造商的背书,判断企业的生产经营情况,评估贷款风险。
我们再以高价值商品的物联网防伪溯源为例,当每个商品被制造出来时,商家就为其IOT设备生产私钥并创建唯一的DID。因为私钥无法复制导出,所以只有在区块链上登记了DID的商品才是正品。而且商品的DID可以映射对应的非同质化通证,以数字化的形式表现商品的流转过程。
DID技术是一个具有广泛应用场景的技术,尤其在关于居民身份信息的电子政务领域具有明显的优势,但是该技术需要公安部门之类的背书,目前还没有真正应用起来的场景。但是在不久的将来,随着个人隐私数据的保护立法和人民群众隐私保护意识的加强,DID必然会大放异彩。除了人的身份外,随着物联网技术,车联网技术,尤其是新兴的AIoT技术的发展,物品的身份标识也越来越重要,并以物联网标识为基础可以拓展出大量的应用场景。