使用 Spruce DID Kit 颁发 Aleo 的可验证凭证

介绍

Spruce DID Kit 是一个功能强大的工具包,旨在帮助开发者构建和管理去中心化身份(Decentralized Identity)。它是 SpruceKit 生态系统的一部分,专注于实现和管理符合 W3C 标准的可验证凭证(Verifiable Credentials,VC)和去中心化标识符(Decentralized Identifiers,DID)。通过使用 Spruce DID Kit,开发者可以轻松地创建、签署、验证和管理数字身份和凭证,确保身份数据的安全性和隐私性。

主要功能和组件

  1. DIDKit: 这是 Spruce DID Kit 的核心库之一,提供了处理 W3C 可验证凭证和去中心化标识符的工具。DIDKit 支持各种数据模型和协议,帮助开发者实现标准化的身份管理解决方案。

  2. TreeLDR: 一种模式定义语言,用于描述模式的结构和语义。它连接了 RDF(资源描述框架)与结构化模式框架(如 JSON Schema),提供了更丰富的数据描述能力。

  3. Rebase: 这个库用于处理加密可验证的声明,并基于这些声明发行可验证凭证(VC)。它确保了声明的真实性和可信性,是身份验证流程的关键部分。

  4. 以太坊登录: 这一功能允许用户使用其以太坊账户和 ENS(以太坊名称服务)配置文件来控制他们的数字身份。它提供了一种新的身份验证方法,增强了用户对其数字身份的控制。

使用场景

Spruce DID Kit 可用于多个场景,包括但不限于:

  • 数字身份验证:创建和验证用户的数字身份,确保用户数据的真实性和隐私性。

  • 身份钱包构建:开发支持可验证凭证的数字钱包,用户可以在这些钱包中存储和管理其身份数据。

  • 现有系统增强:将可验证凭证功能集成到现有的身份管理系统或钱包中,提升系统的安全性和功能性。

快速入门指南

本教程将带你了解如何使用 SpruceID 工具,重点讲解使用 DIDKit CLI 程序进行凭证发行和验证的基础知识。

第0步:安装 DIDKit

要在GNU/Linux、MacOS或Windows+WSL上安装DIDKit命令行程序,首先需要安装Cargo。

cargo install didkit-cli

这将会把 didkit 二进制文件添加到你的 Cargo 安装路径中,通常位于 ~/.cargo/bin,你可以将其添加到系统的PATH中以方便使用。

第1步:使用 DID 发行和验证你的第一个可验证凭证(VC)

生成 did-key DID要发行你的第一个凭证,你需要一个签名密钥。使用DIDKit生成一个Ed25519私钥,并使用did-key DID方法创建一个DID:

didkit generate-ed25519-key > issuer_key.jwk
issuer_did=$(didkit key-to-did key -k issuer_key.jwk)
echo $issuer_did

在准备好签名密钥及其DID后,指定要签名的可验证凭证(VC)的JSON格式:

cat > unsigned-vc.json << EOF
{
    "@context": "https://www.w3.org/2018/credentials/v1",
    "id": "urn:uuid:$(uuidgen)",
    "type": ["VerifiableCredential"],
    "issuer": "${issuer_did}",
    "issuanceDate": "$(date -u +%FT%TZ)",
    "credentialSubject": {
        "id": "did:example:my-data-subject-identifier"
    }
}
EOF

@context 属性表明这个JSON对象是一个W3C可验证凭证。id 属性是这个VC的标识符。type 属性识别这个VC为一个基本数据模型。issuer 属性包含发行者的URI(即之前生成的did-key),issuanceDate 表示发行时间(当前UTC时间)。credentialSubject 包含实际的声明。

签署VC要使用DIDKit CLI签署VC,指定签名密钥的路径、验证方法(-v)、证明目的(-p)和未签名的凭证:

vm=$(didkit key-to-verification-method key --key-path issuer_key.jwk)
didkit vc-issue-credential --key-path issuer_key.jwk \
                           -v "${vm}" -p assertionMethod \
                           < unsigned-vc.json > signed-vc.json
cat signed-vc.json

这将生成一个已签名的VC。验证已签名的VC:

didkit vc-verify-credential < signed-vc.json

确保没有出现任何检查失败、警告或错误。为了验证,修改 signed-vc.json 的内容,然后再次验证它以查看验证失败的情况。

第2步:验证由did-web发行的VC

要验证来自Spruce演示服务器的VC:

curl https://demo.spruceid.com/get-example-vc > example-vc.json

example-vc.json 应该类似于:

{
  "@context": ["https://www.w3.org/2018/credentials/v1"],
  "type": "VerifiableCredential",
  "credentialSubject": {},
  "issuer": "did:web:demo.spruceid.com",
  "issuanceDate": "2021-09-13T18:23:56Z",
  "proof": {
    "type": "Ed25519Signature2018",
    "proofPurpose": "assertionMethod",
    "verificationMethod": "did:web:demo.spruceid.com#_t-v-Ep7AtkELhhvAzCCDzy1O5Bn_z1CVFv9yiRXdHY",
    "created": "2021-09-13T18:23:56.483Z",
    "jws": "eyJhbGciOiJFZERTQSIsImNyaXQiOlsiYjY0Il0sImI2NCI6ZmFsc2V9..X5J2jI5j3TPqFO_g6XOlB730WlXJ8mDsfoyLQ4u60MelVosi1Et6V_pB7-zELDggdqZTsKQjSqDodv0m7ui1Bg"
  },
  "expirationDate": "2021-10-13T18:23:56Z"
}

验证VC:

didkit vc-verify-credential -p assertionMethod < example-vc.json

确保没有出现任何检查失败、警告或错误。修改 example-vc.json 的内容,然后再次验证它以查看验证失败的情况。要直接解析did-web DID:

didkit did-resolve did:web:demo.spruceid.com

更多信息请访问:

https://www.sprucekit.dev

总结

通过前面的简单学习,你已经学习了使用did-key DID发行可验证凭证(VC),并验证它以及通过did-web DID发行的VC的整个过程。通过SpruceKit和DIDKit,你拥有了构建和验证去中心化身份解决方案的强大工具。这只是一个开始,在SpruceID生态系统中还有许多功能和能力等待你探索。一起加油!

Mirror文章信息

Mirror原文:查看原文

作者地址:0xaca732e6BA7280D69a4f173B74aA153483d93C8e

内容类型:application/json

应用名称:MirrorXYZ

内容摘要:Z5G0YPkynERs6xh6BOrxk2GWblzpY6_fghXXVqaspaE

原始内容摘要:hBAiRiuDCYj3wLq9qCaiqBzpaAipwGkNLhRF_7ohFoY

区块高度:1487056

发布时间:2024-08-16 12:39:17