了证书的所有信息和小明的 DID

 2)DID 文档(Document)

每一个 DID 标识都会对应一个 DID 文档。这个文档就是一个 JSON 字符串,包含 6 个信息(optional):

  • DID 标识,证明全局唯一性

  • 公钥:一组加密材料,可用于身份验证或与 DID 主体的交互

  • 身份验证:一组用于与 DID 主体交互的加密协议

  • 服务端点:用于描述与 DID 主体交互的位置和方式

  • 时间戳:文档创建时间和更新时间

  • JSON-LD 签名

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

这一层是建立 DID 整个体系的价值所在。可验证声明是一个 DID 给另一个 DID 的某些属性做背书而发出的描述性声明,并附加自己的数字签名,用以证明这些属性的真实性,可以认为是一种数字证书。

在 VC 的系统中,有以下 4 种参与者:

  1. 发行者(Issuer):拥有用户数据并能开具 VC 的实体,如政府、银行、大学等机构和组织;

  2. 验证者(Verifier):接受 VC 证书并进行认证,比如酒店入住时前台查看我们的身份证;

  3. 持有者(Holder):通过向发行者请求、收到,最终持有 VC 的实体(用户自己);

  4. DID 标识注册机构(Verifiable Data Registry):我们存贮 DID 标示和 DID 文档的地方,维护 DID 的数据库,如某条区块链、分布式账本,通过 DID 标识可以查询到对应的 DID 文档。

  当用户获得了一个 VC 证明,上面会包含三种信息:

  1. VC 元数据:发行人、发行日期、声明的类型等;

  2. 声明:一个或者多个关于主体的说明。比如身份证作为公安机关颁发给我的 VC,在声明中会包含:姓名、性别、出生日期、民族、住址等信息;

  3. 证明:颁发者的数字签名,保证 VC 的可被认证性。

了解 DID 的运作原理后,我们就能够很容易地知晓 DID 的运作过程:

  1. 小明生成自己的 DID 地址,拥有了公钥和私钥,成为了持有者

  2. 小明的地址接收了发行者组织(具备自身 DID)颁发的证书 VC,

  3. 里面包含了证书的所有信息和小明的 DID

  4. 小明拿着 VC 给验证者看,证明自己确实得到了证书

  5. 验证者通过在 DID 标识注册机构证实发行者的 DID,确定发行者真实性,

  6. 然后再确认小明的 VC 证书真实性,最终完成认证

 可验证表达(VP)

 VC 还有一种表现方式是 Verifiable Presentation,可验证表达。可验证表达是 VC 持有者向验证者表名自己身份的数据。一般情况下,我们直接出示 VC 全文即可,但是在某些情况下,出于隐私保护的需要,我们并不需要出示完整的 VC 内容,选择性披露某些属性,或者不披露任何属性,只需要证明某个断言即可。

这就是 DID 持有者实现展示自己部分数据的方法。

综上所述即为一个完整的 DID 构成框架。