为什么 indy/sovrin 在分类帐中存储 claims/verifiable-credentials/attestations

Why indy/sovrin stores claims/verifiable-credentials/attestations in ledger

视频和文档总是说索赔存储在分类帐中,但只有 "credential definition" 或 "Schemas and claim definitions"。真的需要这个吗?

  • 由于可验证凭证通常包含私人数据,因此可验证声明不会存储在账本上。

  • 凭证模式写在分类帐上。它们不包含任何私人数据,仅指定特定类型的文档包含的内容。例如,它可能指定驾驶执照文件应包含持有人的姓名、出生日期以及持有人有资格驾驶的车辆 类。 Schema 只是一个模板,发行者可以根据该模板发布可验证的声明。

  • 凭证定义也写在分类帐上。它也不包含任何私人数据。凭证定义链接到 1 个凭证模式(必须已经存在于分类帐中)。凭据定义包含 public 密钥,发行者使用它来发布某种类型的可验证声明。

上下文示例

  • 政府决定该国的每个大学文凭都将包含以下字段:NameSurnameUniversity nameProgramDegree他们在账本上写了 Credential Schema Diploma:1.0.0。任何人都可以看到文凭的样子。大学可以用它为学生颁发文凭(作为可验证的证书)。
  • Faber Uni.是国内的大学。它想根据政府对文凭外观的规范来颁发大学学位。因此 Faber Uni 写入分类账凭据定义 Faber:Diploma:1.0.0。此凭据定义还包含 Faber Uni 的 public 密钥 123 用于颁发此类凭据(Faber Uni 将安全地保存在某个地方的私有部分 456)。每次 Faber Uni 颁发学生文凭作为可验证凭证时,它将使用密钥的私有部分 456.
  • 对数据进行签名
  • Faber Uni 为其毕业生 Bob 颁发文凭时,分类账上没有此事件的踪迹Faber Uni 使用私钥 456 简单地签署一份符合分类帐上 Diploma:1.0.0 模式的文档,其 public 对应 123 在分类帐上。
  • 现在 Bob 想在 Abcd 找到一份工作,并被要求证明他的学历。他提交了 Faber Uni 颁发的凭据,并将其安全地存储在自己的设备上。 Abcd 可以 从分类帐中读取 Faber Uni 的文凭签名密钥 并使用它来验证 Bob 提出的可验证声明上的签名。