自主身份例子: 发证
为了形象的描述自主身份的概念,我准备写几个场景。首先就是发证场景。
发证是指颁发机构(issuer)给证书持有者(holder)颁发凭据(credentials),这完成了第一步,第二步是持有者给相关方(relying party)选择展示凭据中的部分或者全部项目。
在线下场景中,发证非常常见。例如学校给学生颁发毕业证、学位证,而学生可以拿这些证件展示给用人单位。自主身份的一大场景就是这种发证场景,只不过把 这种线下的发证模式搬到线上了。与自主身份结合,发证的一般需求如下:
存在一个去中心化的注册数据库(Registry),各利益相关方(issuer、holder、relying party)可独立注册自己的身份。
holder必须持有一个数字钱包,该钱包可管理holder的数字身份和各种凭据。
issuer必须有一个发证平台,可与holder的数字钱包通信,将凭据发送到holder的数字钱包中。
relying party必须有一个验证平台,可与holder的数字钱包通信,接受holder钱包中持有的某个或某些凭据中的项目,并验证:
- 其确实为issuer签发
- 为holder所有
- 尚未被吊销
- 发证时间
relying party在验证这些属性的时候,不需要issuer参与。
holder钱包和relying party的验证平台通信时,由holder自主决定展示哪些凭据以及凭据项目。
issuer可吊销已经发出的凭据,当然也可以发新的凭据。
与线下模式相比,relying party验证凭据的时候,其可信度是更高的,因为有数字签名体系、可信时间戳等等这些自主身份的一整套基础设施做支撑(现在还没有那么完善的东西,这是愿景),最后我们相信的其实是数学。
因此,发证场景中的凭据必须是可验证凭据(verifiable credentials, 简称VC)。
由于有可信的时间戳,relying party可验证发证时间,这可以避免线下场景中的临时造假。