正如在《Hyperledger Indy 的 blockchain 网络类型》所提到的,因为 Hyperledger Indy 是共有的需要许可的区块链网络,以为区块链上的数据是能够被所有人访问的,所以之应该存储共有的信息。任何私有的信息比如可验证的凭证(verifiable credentials)是应该存储在个人的数字钱包中的。
通常以下的信息可以存储在 blockchain 上,因为这些信息是需要所有人都知道的:
- 公共的 DIDs:比如代表政府或者公司身份的 DID,他们必然需要所有人知道他是谁。
- Schemas:对于某个凭证的数据结构的定义。
- Credential Definitions:对于某个凭证的实例定义。
- Revocation Registries:对于某个 DID 的撤销。对于 DID 的撤销列表,没有人能够知道一个指定的 credential 是不是被撤销了,但是因为零知识证明(zero-knowledge proof, ZKP)的存在,一个 credential 的所有者以及想要验证这个 credential 的验证者可以验证 DID 是否有被回收。
所以,下边这个颁发凭证的过程反应了都有哪些信息是需要放在 blockchain 上的。
一个凭证的颁发者(issuer)需要让所有人知道:
- 我是谁(我的 DID 以及我的公钥是什么)
- 我要颁发的凭证都具有哪些字段/结构(Schemas)
- 我的凭证具体指的是什么(Credential Definitions)
- 我颁发的凭证是可以被收回的,怎么来知道(Revocation Registries)
网友评论