DID Resolution
DID Resolution is the process of retrieving a DID Document from a decentralized identifier (DID). This fundamental operation enables verifiable data exchange in decentralized identity systems by providing access to the cryptographic material needed for verification operations.
What is DID Resolution?
DID Resolution acts as a bridge between identifiers and their verification material. When you need to verify a digital signature or credential, you first need access to the public keys associated with the signer's DID. Resolution provides this critical connection.
For example, if you receive a credential signed by did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK
, resolution translates this identifier into a DID document containing the public key information needed to verify the signature.
A resolver takes a DID as input:
did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK
And returns a standardized DID document containing verification material:
{
"@context": ["https://www.w3.org/ns/did/v1", "https://w3id.org/security/suites/jws-2020/v1"],
"id": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK",
"verificationMethod": [
{
"id": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK#z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK",
"type": "JsonWebKey2020",
"controller": "did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK",
"publicKeyJwk": {
"crv": "Ed25519",
"kty": "OKP",
"x": "Lm_M42cB3HkUiODQsXRcweM6TByfzEHGO9ND274JcOY"
}
}
],
"authentication": [
"did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK#z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK"
],
"assertionMethod": [
"did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK#z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK"
],
"capabilityInvocation": [
"did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK#z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK"
],
"capabilityDelegation": [
"did:key:z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK#z6MkhaXgBZDvotDkL5257faiztiGiC2QtKLGpbnnEGta2doK"
]
}
Resolution Standards
DID Resolution is standardized through the W3C DID Resolution specification, which defines:
- The resolution process and its inputs/outputs
- The format of resolution results
- Error handling and metadata
- The behavior expected from conformant resolvers
This standardization ensures interoperability across different implementations and identity ecosystems.
The Resolution Process
The resolution process follows these key steps:
- Parse the DID to extract the method name and method-specific identifier
- Invoke the method-specific resolver to retrieve the DID document
- Process the retrieved document according to the method's specification
- Return a resolution result containing the DID document and metadata
This process is handled by a resolver, which may be a local library, a network service, or a combination of both.
Understanding DID Methods
DID methods are the mechanisms that define how DIDs are created, resolved, updated, and deactivated within specific systems. Each method has its own approach to storing and retrieving identity information.
Types of DID Methods
Method Type | Examples | Characteristics | Best For |
---|
Blockchain-based | did:ethr , did:ion | Anchored on distributed ledgers | Public, tamper-evident identities |
Web-based | did:web | Uses existing web infrastructure | Organizations with established web presence |
Self-certifying | did:key , did:jwk | Derived directly from cryptographic material | Simple, portable identities |
Network-based | did:cheqd , did:ebsi | Specialized identity networks | Compliance with specific ecosystems |
How Method Selection Affects Resolution
Your choice of DID method impacts several aspects of resolution:
- Performance: Methods vary in resolution speed and resource requirements
- Availability: Some methods depend on external networks or infrastructure
- Security properties: Methods offer different security and trust guarantees
- Storage location: Identity data may be stored on-chain, off-chain, or derived
Understanding these trade-offs helps you select methods appropriate for your specific requirements.
DID Documents Explained
A DID document is the primary output of resolution and contains information about a decentralized identifier:
Core Components
- Identifier: The DID itself, serving as the document's subject
- Verification methods: Public keys used for cryptographic operations
- Authentication methods: Keys designated for authentication purposes
- Service endpoints: URLs where the identity can be contacted
- Other properties: Additional metadata about the identity
Example DID Document
{
"id": "did:web:example.com",
"verificationMethod": [
{
"id": "did:web:example.com#key-1",
"type": "JsonWebKey2020",
"controller": "did:web:example.com",
"publicKeyJwk": {
"kty": "EC",
"crv": "P-256",
"x": "example_x_value",
"y": "example_y_value"
}
}
],
"authentication": ["did:web:example.com#key-1"],
"service": [
{
"id": "did:web:example.com#messaging",
"type": "MessagingService",
"serviceEndpoint": "https://example.com/messages/8377464"
}
]
}
Working with DID Documents
To effectively use a DID document:
- Check the document ID to confirm it matches the requested DID
- Look for verification methods appropriate for your operation (e.g., authentication, signing)
- Use the public key material for cryptographic verification
- Reference service endpoints if you need to interact with the identity
This standardized structure makes it possible to work with identity information from diverse sources in a consistent way.
Resolution Metadata
Beyond the DID document itself, resolution results include metadata that provides context:
- Content type: Format of the returned document
- Method metadata: Method-specific information about the resolution
- Resolution metadata: Details about the resolution process itself
- Error details: Information about any issues encountered
This metadata helps applications interpret the resolution result and handle any special conditions or errors.
Challenges in DID Resolution
Implementing DID Resolution involves addressing several challenges:
- Performance: Some methods have slow resolution times
- Availability: Network-dependent methods may have downtime
- Caching: Balancing freshness with performance
- Method diversity: Supporting multiple methods increases complexity
- Security: Ensuring secure retrieval of DID documents
Vidos Resolver addresses these challenges to provide reliable, secure resolution services.
Summary
DID Resolution is the foundational process that bridges decentralized identifiers to their verification material. By retrieving DID documents from various identity systems using standardized protocols, resolution enables the verification operations that build trust in decentralized ecosystems. Understanding this process and its components helps you make informed decisions about identity methods and verification workflows in your applications.