深圳幻海软件技术有限公司 欢迎您!

Web3.0--去中心化身份DID介绍

2023-04-26

Part01互联网身份 ​1.1互联网身份危机众所周知,目前我们使用的互联网是没有身份层设计的。有个比较经典的笑话:在网上聊天你不能确定对方是人还是狗!很多网络犯罪往往也是基于此来进行。微博在初期就有很多相似的账号进行冒充诈骗,后面平台引入大V等机制来进行人工身份识别,但这种方式是比较繁琐

Part 01

互联网身份 

1.1 互联网身份危机

众所周知,目前我们使用的互联网是没有身份层设计的。有个比较经典的笑话:在网上聊天你不能确定对方是人还是狗!很多网络犯罪往往也是基于此来进行。微博在初期就有很多相似的账号进行冒充诈骗,后面平台引入大V等机制来进行人工身份识别,但这种方式是比较繁琐且难以复制的。

身份是社会关系的总和,同一个人在不同的场景下的身份是不同的。比如在家庭身份里面你可能是父亲,丈夫,在工作身份里面可能是裁判,同事。不同的场景仅仅只是需要你的一部分身份而已,但目前的互联网存在过度收集用户信息,在用户不知情的情况下收集用户信息等风险。

1.2 互联网身份简史

在Web1.0时代(中心化身份),每个网站都通过唯一的用户名来标识不同的用户身份信息,这些用户信息都存在于该网站的数据库里。这种身份体系弊病很多:用户需要注册比较多的账号和密码,复杂的管理系统对账号的安全性也是一个比较大的挑战。

Web1.0

在Web2.0时代(联邦制身份),数字身份以平台为中心,同一平台内的不同产品间通过账号系统打通。例如,腾讯的邮箱、游戏、金融等皆可使用同一账号;Google、Facebook 等互联网头部企业也均有自己的账号体系。这种身份体系相比于Web1.0存在减少用户注册,平台背书等优势,但弊病也广为人知:平台相互间的账号并不互通,用户无法控制自己的身份数据。

Web2.0

在Web3.0时代(自主权身份),身份标识变为了一个个的链上地址,在保证唯一性的前提下不需要用户手动去生成。用户身份数据不再存储于各大互联网公司数据库里而是在区块链上了,用户对自己的身份数据拥有绝对的控制权。

Web3.0

Part 02

去中心化身份DID 

2.1去中心化身份(Decentralized Identity,DID)

我们出国需要护照,需要签证,需要各种繁琐且严格的审核。但互联网是全世界相通的,不可能说我访问一个国外的网站也需要类似的审核。所以一个通用的自主权身份就显得非常有必要。一个主体的身份,既不依赖于也不受制于中心化的组织或者国家。

但去中心化身份很容易产生下面的一些认知误区:

  • DID的权威性来源于用户本人;
  • DID普及之后就可以不再需要政府机构管理用户身份;
  • 一套DID可以包打天下,适用于所有场景;
  • DID是绝对安全的;
  • DID的核发有一个权威的中心机构;
  • DID只能用于个人身份;

总的来说,DID是一个现实身份的有效补充,也是在不断发展更新的。

2.2 DID的标准和实现方式

目前DID标准主要分为两种:W3C标准和DIF标准。

W3C:用来标示人员、组织和事物,并保护安全和隐私。主要由“基础层DID规范”和“应用层可验证声明”组成。

DIF:最主要的作用是使用户掌握充分的所有权,从而可以建立一个开放的、去中心化身份的生态系统,并确保所有参与者之间的互操作性。

这里主要介绍W3C的DID标准和实现方式。其DID系统主要包括两个层次的要素,基础层和应用层。基础层——DID规范,包括DID标识与DID文档。

-- DID标识符

DID标识符是身份标识符的格式。DID的格式跟浏览器里面的URL非常相似。其中Scheme did相当于https协议。DID method相当于域名,里面会详情描述did的生成规则,并可以提交到W3C去校验和记录。最后面的一串数字就可以理解为path,生成规则是基于密码学来保证全局唯一性。整个DID只有一个作用就是作为一个索引去打开DID Document,就跟打开一个具体的网页一样。DID到Document的映射必须抗篡改,抗审查,且数据公开可见。

-- DID文档


DID文档是身份信息的格式,是一个基于JSON格式的文档文件,其中包含很多有意义的键值对。

  • @context:W3C标准的版本号;
  • controller:可以对这个文档进行修改的用户,值为一串公钥;
  • verificationMethod:声明了2把钥匙,分别是用不同的加密算法生成的不同的publicKey;
  • authentication,capabilityDelegation,keyAgreement:这3个分别对应3种具体的场景。其中前面2种是用公钥1去处理,最后一种是用公钥2去处理;
  • service:指明在什么网站上面可以去内容进行修改。

应用层——可验证声明(Verifiable Claims 或 Verifiable Credentials,简称VC)

隐私数据披露的方式,为数据授权(Authorization)提供了保障。下面是一个大致的运行机制图:


  • Issuer:凭证颁发机构,如政府、公安局、银行、大学等机构和组织;
  • Holder:身份持有者,能向Issuer请求,接收、持有VC,向Verifier出示VC,开具的VC可以存放在钱包里,方便以后再次证明时使用;
  • Verifier:身份消费机构,如火车站、游戏网站、香烟店;
  • Registry:维护DID标识符及密钥(DID文档)的数据库,如区块链、可信数据库、分布式账本等。

为了方便理解,我们以持有身份证去火车站坐高铁为例,整个流程跟我们目前的中心化的验证场景最大的区别在于:在中心化的场景里面Verifier的系统是需要跟Issuer联网的,而VC则不需要。一旦跟Issuer联网则意味着Verifier是有可能获取到你全部身份信息的,诸如婚姻状态等跟乘车毫不相关的信息。VC既可以减少系统冗余也可以保护用户隐私。在使用VC时用户可以根据不同的安全场景选择不同的使用方式:

1)全文出示;

2)选择性出示;

3)存在性证明;

其中“存在性证明”是保护隐私最好的一种方式,这里举例几个使用场景:

  • A是知乎注册满3年的用户,至少获得了100个赞,并且社区积分高于1000,可以参与某NFT的白名单活动;
  • B的年收入在20万到40万之间,风险等级大于3,可以购买该款理财产品;
  • C持有一本合法的D国数字护照,在一次D国的撤侨行动,可以获得D国的帮助;

VC在验证的时候就会涉及到一个隐私计算的新领域——本地零知识证明计算。我们希望的是数据可证而不可见。在不出示计算输入数据和计算过程的情况下,以零知识证明的方式,证明计算的可信性,从而完成数据分析与计算的需要。

零知识证明其实在生活中也比较常见,比如你手机丢了,被人拾到放物业然后你去取。那物业如何判断手机是你的呢?通常我们的手机都会设置密码,只要你能通过面容或者密码解锁手机,那就可以判断手机就是你的,而你的其他隐私信息通通是不需要的。

目前已经有很多项目在使用零知识证明来构建基于Web3.0的自画像。首先将Web2.0的网站变为VC的签署方,使用零知识数字身份变为一个一个Tags,然后出示给Web3.0的网站。这里有个不同的是,Web2.0的网站其实也是对你打了很多Tags,但这是未经你允许的,你也无法编辑。而你提供给Web3.0的画像是你希望的,经过筛选的你愿意的,这才是真正的自画像。

Part 03

总结 

人类生存几千年,早已形成一套依赖组织或国家成熟的身份系统,所以很多人会以为自主权身份离我们很远。但随着元宇宙的迅速发展,相信很多虚拟元素,无人设备(无人机,机器人...)将会更快的使用上自主权身份。相信在不久的将来,系统快速、准确地进行身份校验将会变成一个日常的基本需求。