自主身份例子: 发证

为了形象的描述自主身份的概念,我准备写几个场景。首先就是发证场景。

发证是指颁发机构(issuer)给证书持有者(holder)颁发凭据(credentials),这完成了第一步,第二步是持有者给相关方(relying party)选择展示凭据中的部分或者全部项目。

在线下场景中,发证非常常见。例如学校给学生颁发毕业证、学位证,而学生可以拿这些证件展示给用人单位。自主身份的一大场景就是这种发证场景,只不过把 这种线下的发证模式搬到线上了。与自主身份结合,发证的一般需求如下:

  1. 存在一个去中心化的注册数据库(Registry),各利益相关方(issuer、holder、relying party)可独立注册自己的身份。

  2. holder必须持有一个数字钱包,该钱包可管理holder的数字身份和各种凭据。

  3. issuer必须有一个发证平台,可与holder的数字钱包通信,将凭据发送到holder的数字钱包中。

  4. relying party必须有一个验证平台,可与holder的数字钱包通信,接受holder钱包中持有的某个或某些凭据中的项目,并验证:

    • 其确实为issuer签发
    • 为holder所有
    • 尚未被吊销
    • 发证时间
  5. relying party在验证这些属性的时候,不需要issuer参与。

  6. holder钱包和relying party的验证平台通信时,由holder自主决定展示哪些凭据以及凭据项目。

  7. issuer可吊销已经发出的凭据,当然也可以发新的凭据。

与线下模式相比,relying party验证凭据的时候,其可信度是更高的,因为有数字签名体系、可信时间戳等等这些自主身份的一整套基础设施做支撑(现在还没有那么完善的东西,这是愿景),最后我们相信的其实是数学。

因此,发证场景中的凭据必须是可验证凭据(verifiable credentials, 简称VC)。

由于有可信的时间戳,relying party可验证发证时间,这可以避免线下场景中的临时造假。