参考文档
DID 三篇规范:
https://w3c.github.io/did-core/
https://w3c-ccg.github.io/did-resolution/
https://www.w3.org/TR/vc-data-model/
百度 DID实现
微众银行WeIdentity
https://weidentity.readthedocs.io/zh_CN/latest/docs/weidentity-spec.html
DID相关概念
DID概念、规范
身份相关数据锚定在区块链上,认证的过程不需要依赖于提供身份的应用方。
- 如何不依赖身份提供方来验证身份?
DID是由用户自己生成的,用户生成DID的同时会生成一对秘钥,DID和公钥的绑定关系写入分布式数据库,达到了去中心化身份的目的
可验证声明(Verifyable Claim)
是一个 DID 给另一个 DID 的某些属性做背书而发出的描述性声明,并附加自己的数字签名,用以证明这些属性的真实性,可以认为是一种数字证书。
- 分布式信任网
holder持有DID, Issuer针对Holder的某个DID颁发VC, Verifier可以验证Holder自身的DID,以及Issuer颁发给Holder的VC
(例如某网站可以指定,验证某个用户的DID即可登录,或者需要验证用户的DID,并且需要一个针对该DID的声明(例如该DID持有者年龄大于18岁))
1 |
|
serviceEndPoint 标识,能够使用该DID的某个EndPoint,例如type为DIDResolver的serviceEndPoint 存放了DIDResolve服务的地址
DID resolve 和 DID dereference
resolve:通过DID获取DID document ; dereference:通过DID URL 获取所需资源
DID Resolver
VC
基本概念
可验证声明(Verifiable Claim,简称Claim),是发证方使用自己的 DID 给用户的 DID 的某些属性做背书而签发的描述性声明,并附加自己的数字签名,可以认为是一种数字证书。
发证方的 DID 是做背书的,签发出来的Claim我们称之为:Proof Claim;
如果发证方就是用户自己,即一个 DID 对自己签发Claim,我们称之为:Profile Claim。
VC的整个生命周期包括用户申请-发证方签发-吊销-第三方请求-验证
对于可吊销的 claim 所保存的信息里需要包括吊销方式的字段,里面需要有查询 claim 吊销状态的 endpoint,验证 claim 时,需要通过该 endpoint 来验证 claim 是否吊销。如果需要支持 claim 的吊销,DID 账户所有者需要自己维护一个提供获取吊销列表的 endpoint。
访问吊销列表的时候,如何保证访问可信?证书?吊销列表自己是个DIDDocument
VC存在哪里?百度是存在一个Identity Hub里,用户持一个VC id,可以通过VC id去该Identity Hub里拿。
系统中是否只存在某个协议服务去发VC,不存在用户去申请VC的情况?
标准VC
1 |
|
标准VP
1 |
|
百度企业认证VC实现
1 |
|
微众银行DID
链上格式
1 |
|
声明格式
1 驾照VC
1 |
|
1 |
|
2 单词文件转移VC
适用场景:用户授权后,用户的数据由一个机构给到另外一个机构。credential的ID用于标识本次文件转移。这一类Claim一般用户是issuer
Weelink DID VC
1 |
|
VC结构
three kinds of verifiable claims:
- profile:This can contain multiple universally-known predefined claim items, such as firstName and birthday.
- type:fixed to “profile”.
- meta:an optional field.
- items:a list of predefined profile items.
- agreement:A peer may ask users to sign agreements.
- type:fixed to “agreement”.
- meta:optional field.
- uri:points to the content of agreement.
- hash:an object where the method subfield specifies the algorithm (sha3, sha256, etc) used and the digest subfield is the hash result.
- agreed:a boolean value added by Wallet to represent whether the user accepts the agreement.
- sig:the DSA signature of hash.
- proofOfHolding: A peer may ask users to prove that they have either a certain amount of tokens or a certificate issued by a third party.
- profile:This can contain multiple universally-known predefined claim items, such as firstName and birthday.
meta is an optional field which may contain, but not limited to, the following field:
description: This is used for describing claim. Wallet can shown users this field.