The purpose of this document is to aid implementers of W3C Decentralized Identifiers (DIDs) in selecting the most suitable identifier for their specific use cases. It does so by identifying and defining key traits of identifiers that have proven to be significant. Additionally, it provides a JSON schema for DID method authors, allowing them to present the characteristics of their DID methods in a structured and machine-readable format. This structured information can then be utilized by third-party systems, such as DID resolvers. This work builds on existing literature and specifications, which are detailed in the References section.
- Get approval for work item by DIF ID WG.
- Set up recurring call to advance the work item.
- Review existing works.
- Review, extend and formalize traits.
- Define JSON Schema for describing the DID Traits of a DID method.
Trait | Description |
---|---|
Deactivatable | DID Documents deactivated / deleted |
Enumerable | All DIDs of this method can be enumerated, i.e. a public registry like a DLT exists that references all existing DIDs |
Globally resolvable | DIDs can be resolved globally, i.e. the current DID document can be resolved globally from every point as opposed to a DID that just exists in a local context |
History available | Previous versions of DID document are available and can be looked up |
Immutable History | Changes to DID Documents are persisted in an immutable data structure, e.g. a DLT |
Human-readable | DID can be read and remembered by humans, e.g. did:web:example.com:me |
Key Pre-Rotation | Cryptographic keys can be pre-rotated to combat key loss and attacks by quantum computers |
Modifiable | DID Documents can be modified |
Self-Certification | The initial DID Document is securely derived from the DID itself, e.g. did:key |
Self-Creation | DID Document is generative / derived from the DID without having to access any external system, e.g. any did:key DID can be derived from the initial public key |
Explicit Fees | Creation, modification or deletion of identifiers trigger transaction fees, e.g. blockchain-based DID methods often require transaction fees |
Hosting | What kind of hosting is require? None, centralized, decentralized. |
- Add KERI's credential registry as a trait that enables key rotation while retaining verifiability of credentials.
- Add ID recovery mechanism as trait.
- Add multi signature support as trait, see https://github.com/w3c-ccg/verifiable-conditions.
- Review DID Enumeration work item.
- Find Hashgraph's DID comparison.
- Reach out to Google / Apple working groups and integrate their analyzes of DIDs.
- Reach out to W3C DID WG concerning their overhaul of DID Specification Registries to align on how this work item could support their work.
INFO: this table is not a deliverable of this work item. It's merely an example of how a comparison table could look like.
Method \ Trait | Deactivatable | Enumerable | Globally resolvable | History available | Immutable History | Human-readable | Key Pre-Rotation | Modifiable | Self-Certification | Self-Creation | Explicit fees |
---|---|---|---|---|---|---|---|---|---|---|---|
did:tdw | x |
x |
x |
x |
x |
x |
x |
||||
did:web | x |
x |
x |
x |
|||||||
did:key | x |
x |
x |
||||||||
did:jwk | x |
x |
x |
||||||||
did:peer | x |
x |
x |
x |
|||||||
did:dht | x |
x |
x |
x |
? |
? |
x |
? |
? |
||
did:ion | x |
x |
x |
x |
x |
x |
? |
x |
|||
did:webs |
Symbol | Meaning |
---|---|
x |
Trait applies to identifier |
? |
Unclear whether trait applies to the identifier, further information is needed |
- DID Method Rubric: A core inspiration for this work. The focus is wider, e.g.
covering privacy, resource consumption and adoption, and less focused on concrete tangible feature differences.
- Methods for Decentralized Identities: Evaluation and Insights: Application of the DID Method Rubric to selected DID methods. See page 15 for the resulting comparison matrix.
- A Taxonomy of Decentralized Identifier Methods for Practitioners: Another core inspiration. The paper puts forward a comparison matrix with lots of sub-traits per category. Important newer traits are missing.
- SpruceID Ugradeable Decentralized Identity - DID Method Traits: Proposal from 2022 to produce a list of DID Method Traits. The list wasn't create, however a number of traits are proposed in the blog post.
- OWF
- DID Enumeration
- ToIP DID Utility Comparison
great initiative and happy to contribute!
some suggestions for possible further traits: