Decentralized Identifiers (DIDs)
What are DIDs?
Decentralized Identifiers (DIDs) are a new type of globally unique identifier designed to enable verifiable, self-sovereign digital identity. Unlike traditional identifiers such as email addresses, usernames, or government-issued IDs, DIDs are:
- Decentralized: Not dependent on centralized authorities or registries
- Persistent: Can exist indefinitely without requiring ongoing maintenance from their issuer
- Resolvable: Can be looked up to discover metadata and verification methods
- Cryptographically verifiable: Enable proof of control through authentication
DIDs enable entities (people, organizations, devices, or digital objects) to establish and maintain identifiers under their own control, independent of any central authority or intermediary.
Why DIDs Matter
In today's digital world, most identifiers we use are controlled by third parties:
- Email providers control your email address
- Social media companies control your username
- Governments control your passport and ID numbers
- Domain registrars control your domain names
This creates several problems:
- Single point of failure: If the providing service goes down or out of business, your identifier may become unusable
- Censorship: The providing service can revoke your identifier at their discretion
- Privacy concerns: Your online activities can be tracked across services using these identifiers
- Vendor lock-in: Switching providers often means abandoning your established identifier
- Siloed identity: Your identity is fragmented across different systems with no coherent way to connect them
DIDs solve these problems by giving entities direct control over their digital identifiers without relying on central authorities, while enabling cryptographic verification of identity claims.
DID Architecture
DID Syntax
A DID is a simple text string consisting of three parts, separated by colons:
did:example:123456789abcdefghi
- Scheme: Always "did", identifying the string as a Decentralized Identifier
- Method: Specifies which DID method is used (e.g., "example", "key", "web", "eth")
- Method-Specific Identifier: A unique identifier within the namespace of the specific method
Each DID method defines how DIDs are created, resolved, updated, and deactivated on a specific system (such as a distributed ledger, decentralized file system, or secure database).
DID Documents
When resolved, a DID points to a DID document, which contains metadata about the DID subject. A DID document typically includes:
- Verification methods: Public keys or other verification material that can be used to authenticate the DID controller
- Authentication mechanisms: Methods that can be used to prove control of the DID
- Service endpoints: References to services associated with the DID subject, such as messaging endpoints, social media profiles, or credential issuance services
Here's a simplified example of a DID document:
{
"@context": "https://www.w3.org/ns/did/v1",
"id": "did:example:123456789abcdefghi",
"authentication": [
{
"id": "did:example:123456789abcdefghi#keys-1",
"type": "Ed25519VerificationKey2020",
"controller": "did:example:123456789abcdefghi",
"publicKeyMultibase": "zH3C2AVvLMv6gmMNam3uVAjZpfkcJCwDwnZn6z3wXmqPV"
}
],
"service": [
{
"id": "did:example:123456789abcdefghi#vcs",
"type": "VerifiableCredentialService",
"serviceEndpoint": "https://example.com/vc/"
}
]
}
Key Roles
- DID Subject: The entity identified by the DID (person, organization, thing, data model, etc.)
- DID Controller: The entity that has the ability to make changes to a DID document
- Verifier: An entity that receives and verifies credentials or assertions from a DID subject
In many cases, the DID subject and DID controller are the same entity, but they can be different (e.g., a parent managing a child's DID or a company managing DIDs for its devices).
Benefits of DIDs
User Control and Autonomy
DIDs give entities direct control over their digital identifiers. You can:
- Create as many DIDs as you need for different contexts
- Update your DID document when necessary (e.g., to rotate keys)
- Decide which services and verification methods to associate with your DID
- Maintain your identifier even if the underlying infrastructure changes
Enhanced Privacy
DIDs support privacy-preserving identity through:
- Pairwise DIDs: Creating unique DIDs for each relationship to prevent correlation
- Selective disclosure: Revealing only the necessary information in different contexts
- Minimal data in DID documents: Keeping personal information out of public DID documents
- Cryptographic verification: Proving control without revealing private keys
Security
DIDs enhance security in several ways:
- No central point of failure: Distributed systems behind many DID methods increase resilience
- Cryptographic proof: Strong verification using public-key cryptography
- Key rotation: Mechanisms to update keys if they're compromised
- Self-certification: No need to rely on third-party certificate authorities
Interoperability
The W3C DID standard creates a common framework that enables:
- Different DID methods to work together
- Different applications and services to accept the same DIDs
- Consistent verification across platforms
- Portable digital identity across systems and networks
Persistence
Well-designed DIDs can provide persistent identifiers that:
- Don't depend on the continued existence of any particular company
- Can be maintained indefinitely by their controller
- Are resilient to changes in underlying technology
- Can migrate between different systems if necessary
Relationship to Other Technologies
DIDs work alongside other technologies to form a complete decentralized identity ecosystem:
- Verifiable Credentials: Provide a standard way to express and verify claims about a DID subject
- Decentralized Web Nodes: Enable secure, permissioned data storage associated with DIDs
- Secure Data Vaults: Allow users to store personal data linked to their DIDs
- Trust Registries: Help establish which issuers are trusted for particular types of credentials
Further Resources