Skip to content

Instantly share code, notes, and snippets.

@jceb
Last active September 2, 2024 11:56
Show Gist options
  • Save jceb/8e37e4900e815eb14b207ad7e8d02a6c to your computer and use it in GitHub Desktop.
Save jceb/8e37e4900e815eb14b207ad7e8d02a6c to your computer and use it in GitHub Desktop.

DID Traits

Source

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.

Next Steps

  • 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.

Contents

  1. Traits
  2. Traits by Identifier
    1. Legend
  3. Task Backlog
  4. References

Traits

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.

Task Backlog

  • 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.

Traits by Identifier

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

Legend

Symbol Meaning
x Trait applies to identifier
? Unclear whether trait applies to the identifier, further information is needed

References

@bumblefudge
Copy link

this is so great!

@fabianekc
Copy link

great initiative and happy to contribute!

some suggestions for possible further traits:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment