DID-veramo

Veramo 中的功能是通过插件系统添加到代理中的。

Plugins Architecture

DID Methods

DIDs and DID documents are recorded on a Verifiable Data Registry; DIDs resolve   to DID documents; DIDs refer to DID subjects; a DID controller controls a DID document; DID URLs contains a DID; DID URLs dereferenced to DID document fragments or external resources; DID resolver implements resolve function; DID URL dereferencer implements dereferencing function; DID method operates a   Verfiable Data Registry; DID resolver and DID URL dereferencer instruct a DID method.

Core Supported DID Methods

Veramo 核心插件支持以下 did 方法。

did:ethr

did:ethr:0xc530503a148babcaca68565cfa576d6f43427a2d

Ethr-DID 为以太坊地址提供了一种可扩展的身份识别方法,使任何以太坊地址都能够收集链上和链下数据。因为 Ethr-DID 允许任何以太坊密钥对成为身份,所以它比基于智能合约的身份方法更具可扩展性和隐私保护性。

这种特殊的 DID 方法依赖于 ethr-did-registry。 ethr-did-registry 是一个智能合约,可以促进链下(和链上)身份验证的公钥解析。 它还有助于密钥轮换、委托分配和撤销以允许第 3 方签名者,以及设置和撤销链下属性数据。 这些交互和事件被聚合使用以使用 ethr-did-resolver 构建 DID 文档。

did:web

did:web:veramo-agent.herokuapp.com

Web-DID 利用域名系统,允许 Web 来源的所有者将其转换为 DID。创建 Web-DID 就像创建 DID 文档并将其托管在众所周知的 URL 下一样简单。 每次解析 DID 时,DID 文档都必须通过 HTTPS GET 可用。 这意味着创建一个 DID,不需要区块链,但它有一定的权衡。 Web-DID 的安全性通过实施 TLS 植根于现有的互联网 PKI。 Web-DID 可以直接托管在网络域的众所周知的 URL 下,例如 www.example.com/.well-known/did.json,也可以托管在特定的子路径下。使用子路径允许在一个网络域下托管多个 DID。此方法还可用于允许 Web 应用程序为其用户创建 Web-DID,例如 www.example.com/users/username/.well-known/did.json。

虽然 Web-DID 是一种非常有用的技术,可以将 Web2 连接到 Web3,并且特别允许公司非常轻松地创建他们的 DID,但它在安全和隐私方面存在一些缺点(例如,跟踪)。

did:key

did: key:z6MkpTHR8VNsBxYAAWHut2Geadd9jSwuBV8xRoAnwWsdvktH

Key-DID 代表了一种非常轻量级的自我证明 DID 方法,它不需要任何外部实用程序,例如区块链。Key-DID 是通过生成加密密钥对(例如,Curve25519)创建的。使用 Curve25519 将自动向 DID 文档添加两个条目,可用于 EdDSA(即 Ed25519)和 ECDH/加密(即,使用 X25519)。Key-DID 始终解析为相同的 DID 文档,并且由于它是不可变的,所以添加服务端点和其他密钥是不可能的。

Message Handlers

创建代理实例时,您指定要使用的消息处理程序以及调用它们的顺序。例如,如果您的应用程序从 QR 码捕获可验证凭证,其中数据被编码为 JWT,您将在代理设置中按顺序指定 urldid-commdid-jwtcredential-w3c 处理程序。

url

UrlMessageHandler 解析来自 URL 的消息,通常来自查询字符串。进一步的解析可能在 JWT 和/或 DIDComm 处理程序中执行。该处理程序支持获取缩短的 URL 重定向。

did-comm

DIDCommMessageHandler 使用收件人的私钥解密传入的消息。 解密的消息将传递给后续的消息处理程序。

did-jwt

JWT MessageHandler 解码 JWT 并创建消息对象。

credential-w3c

W3CMessageHandler 检查可验证凭证和可验证演示的消息有效负载,并相应地格式化消息对象。