#verifiable-credentials #credentials #substrate #parity #ids #data-model #dids

caelum-vcdm

该包实现了W3的Verifiable Credential Data Model

4个版本

0.2.0 2019年11月27日
0.1.3 2019年11月14日
0.1.2 2019年11月8日
0.1.0 2019年11月6日

#436 in 认证

MIT/Apache

87KB
1K SLoC

Verifiable Credential Data Model [WIP]

此包实现了W3的Verifiable Credential Data Model规范。这意味着它可以创建、读取、更新和删除(即CRUD)所有Verifiable CredentialVerifiable Presentation的属性。同时,与其他Verifiable CredentialVerifiable Presentation进行交互。

Verifiable CredentialVerifiable Presentation可以表示物理证书所表示的所有相同信息。数字签名等技术的发展使可验证证书比其物理对应物更加难以篡改和更加可信。在物理世界中,证书可能包括

  • 与识别证书主题相关的信息(例如,照片、姓名或识别号)
  • 与颁发机构相关的信息(例如,市政府、国家机构或认证机构)
  • 与证书类型相关的信息(例如,荷兰护照、美国驾照或健康保险卡)
  • 与颁发机构对主题所声明的具体属性或属性相关的信息(例如,国籍、有权驾驶的车辆类别或出生日期)
  • 与证书推导方式相关的证据
  • 与证书约束相关的信息(例如,过期日期或使用条款)。

我们希望帮助开发者创建这些场景,并使其与其他遵循相同规范的实体交互变得容易。

角色

以下角色表示一个实体(个人或组织),该实体持有在区块链中存储的唯一去中心化标识符(DID),以及一个公钥,这两个可以一起用于保护通信并验证各方之间身份的连续性。

  • 主题是信息相关的实体。持有者是指持有该信息的实体。在 Lorena 中,主题和持有者是相同的。

  • 发行者是指验证(手动或自动)关于主题的信息的实体,并提供由发行者的 DID 相关的公钥签名的数字签名,以证明此验证。

  • 验证者是指想要了解主题信息的实体。验证者需要验证主题信息,并信任发行者对该信息的判断。

扮演这些角色的实体都享有平等的地位:每个实体都有一个 DID、一个(秘密)私钥及其关联的公钥,这些公钥与 DID 一起在区块链上发布,并且每个实体都可以持有可验证凭证(VC)。角色可以改变,可以是点对点关系,也可以根据需要是层次结构。

组件

服务

Component Communications

Lorena 身份沙盒是一个React 单页应用,实现了原型身份容器,允许主题(持有者)创建 DID、创建凭证,并请求发行者发行 VC,并将 VC 发送给验证者。

Hoverfloat是一个演示网站,用于虚构的运输服务。它用React编写,作为单页应用,没有服务器后端。它作为验证者,接收主题发送的 VC,并确保它们是由受信任的发行者签发的。

Lorena Matrix 守护进程是一个 Node JS 后端服务,根据主题的请求充当 VC 的发行者。它实现了电子邮件验证服务,并通过 Matrix 协调匿名访客账户之间的通信。

Lorena Substrate是一个基于Substrate的区块链,用于发布 DID 和其关联的公钥。

Matrix是一个去中心化的通信服务,用于不同实体和服务的安全通信。

实现

如何使用

路线图

  • [ X ] 属性的基本 CRUD 实现。
  • [ X ] 可选属性的基本 CRUD 实现。
  • [ X ] 验证基本的加密证明。
  • 使用 Zenroom 实现零知识证明。
  • 连接到 可验证数据注册表
  • 验证必要属性。
  • 实现角色(发行者持有者验证者)。

贡献

请为 vcdm 贡献!越多越好!请随时提出问题或建议,直接与所有者联系。

致谢

这个库是为了满足 w3 的规范而创建的。

行为准则

本行为准则改编自贡献者公约,版本 1.4,可在http://contributor-covenant.org/version/1/4找到。

许可证

本项目根据Apache License(版本2.0)和MIT许可协议进行分发,具体请参阅LICENSE-APACHELICENSE-MIT

依赖项

~8.5MB
~159K SLoC