Decentralized Identifiers (DIDs) allow for exceptional user-driven control and overall reliability of publicly resolvable, provable identifiers. While DIDs share many features with extant identity systems, no other system combines all the features designed into DIDs. We present the current consensus of the motivations behind DIDs based on input and collaboration with implementers currently building products to the DID specification.
Note:This document is still in early development. Please provide feedback via Github
This document attempts to explain what you can do with DIDs and why you might care to use them. We start by describing the basic conceptual framework for DIDs, including basic terminology, followed by the actions one can take with a DID. Then we introduce the defining features and benefits of DIDs along with five focal use cases illustrating those features and benefits.
Decentralized identifiers enable several key actions by individual actors. These actions are the functional interface for working with DIDs and involve three entities. The Controller, the Relying Party, and the Subject.
Controllers create and control DIDs, while Relying Parties rely on DIDs as an identifier for interactions related to the Subject.
The Subject is the entity referred to by the DID, which can be literally anything: a person, an organization, a device, a location, even a concept. Typically, the Subject is also the Controller, but in cases of guardianship, agents (human or software), and inanimate Subjects, this is not possible. As such, the Subject has no functional role. When the Subject is, in fact, the Controller, we consider the action to be taken by the Controller on their own behalf as the Subject. When the Subject is not the Controller, the Controller is said to be taking action on behalf of the Subject, such as when an employee manages a DID on behalf of their employer or a parent uses a DID on behalf of their child.
The Controller and Relying Party may be individuals or interactive systems, but for simplicity in this document, we refer to both as if they were individual persons performing these actions.
Only a Controller can perform the actions that control a DID, however, anyone can act as a Relying Party for any DID they know, including the Controller should they wish to inspect or verify their own DID.
As a use case document, we define these actions in terms of the eventual systems we anticipate using this specification. The initial DID Working Group Charter only covers the initial specification of the DID syntax itself and the syntax and semantics of its associated DID Document. Together, these encode the information necessary to eventually perform these various actions. Additional specifications, such as DID Resolution and DID Auth (both under incubation in the Credentials Community Group), will specify how these actions take place. There has been interest expressed in standardizing how DIDs can be used for signing and how those signatures are verified, however it is an open question as to whether or not this capability should be a part of the DID Auth specification or a separate work. This document captures these uses as design goals, but it is anticipated that the DID Specification will not define how these actions are realized.
Perhaps the most salient point about Decentralized Identifiers is that there are no "Identity Providers". Instead, this role is subsumed in the decentralized systems that Controllers use to manage DIDs and, in turn, Relying Parties use to apply DIDs. These decentralized systems, which we refer to as DID registries, are designed to operate independently from any particular service provider and hence, free from any given platform authority. Most current DID methods use distributed ledger technology (DLT) for their registries, for example, BTCR uses Bitcoin and ERC725 uses Ethereum. Some use alternative decentralized technologies, as IPID, which uses IPFS. You may see the current DID Methods at the DID Method Registry (https://w3c-ccg.github.io/did-method-registry/), maintained by the Credentials Community Group.
In practice, the definition and operation of all current decentralized systems retain some elements of centralized control. Depending on the criteria one uses to evaluate such systems—from who controls the most widely used code base to who controls the specification—where a system resides on the spectrum of centralized and decentralized varies. However, the design of DIDs is a separate matter from the academic debate about how decentralized any particular DID registry is.
The DID methods specified in each DID MAY define how one performs these actions, including the mechanism(s) for interacting with any particular DID registry. Not all of these actions are supported by all DID methods. Which actions are required is an open question. Similarly, it remains an open question whether or not all DID methods should be required to be decentralized. As mentioned previously, this quickly becomes an academic debate about the definition of decentralized, which we leave as an exercise for the reader. Therefore, each DID method and DID registry should be evaluated on its own merits as to precisely how decentralized it may or may not be relative to its anticipated use.
DIDs, DID methods, DID registries, and DID Documents are anticipated design elements in the DID specification. For illustration we use these elements in this document. When we refer to methods and registries, we mean DID methods and DID registries. All DIDs resolve to DID Documents. DID Documents contain the cryptographic material to perform the functions related to that particular DID, including associated proof methods and service endpoints. When working with DIDs, the DID Document is first resolved, then further dereferencing may return a resource, as is typical for URLs. We use this design framework to describe DID actions.
Here are the eleven (13) actions currently supported by DIDs as envisioned by Credentials Community Group and as intended in the DID Working Group Charter.
In the diagram, we have grouped the actions by Create, Read, Update, and Delete (CRUD) as well as Use.
Controllers create DIDs, uniquely binding cryptographic proofs with the identifier, typically using public-private key-pairs. These DIDs are recorded in a registry in such a manner as to be able to resolve to a DID Document. The DID Document may be dynamically and deterministically generated through resolution or it may be explicitly constructed as a stand-alone resource and either stored or referenced in the registry. This process needs access to the registry, ideally a decentralized system, and like the rest of the DID CRUD actions, can be performed without interaction with any particular authority.
DIDs are URIs, which is to say a string of characters. As such, they may be presented in the same manner as URIs, by simply transmitting or presenting that string of characters. DIDs, however are not designed to be human readable. They invariably contain long, complex numbers represented in various formats. For ease of use, implementations often rely on QR codes for ease of capture using a camera-enabled device such as a smart phone.
Relying Parties may wish to prove that the individual presenting a DID is in fact its controller or specified as a Controller for a particular service endpoint. This authentication process uses the cryptographic material in the DID Document to test if the claimed Controller can, in fact, prove control, typically through some sort of challenge-response. Some DID Documents and methods allow for separate, proofs for different service endpoints, distinct from update and delete actions. This separation allows transactional proofs that are expected to be used frequently, while controlling proofs are used rarely.
Using cryptographic material associated with that found in a DID Document, DID Controllers may sign digital assets or documents. This signature can later be verified (#7 Signature Verification) to demonstrate the authenticity of the asset. In this way, we may referred to the asset as "signed by the DID".
The first step in using a DID for anything other than presentation is to resolve the DID to a specific DID Document, to reveal the cryptographic material and service endpoints associated with that DID. How this occurs is method-specific and currently under development in the DID Resolution specification.
Dereferencing a DID uses the material in its DID Document to return a resource. By default, dereferencing a DID without a reference to service endpoint returns the DID Document itself. When a DID contains a service name, dereferencing returns the resource pointed to from the named service endpoint, which was discovered by resolving the DID to its DID Document and looking up the endpoint by name. In this way, a Relying Party may dynamically discover and interact with the current service endpoints for a given DID.
Given a digital asset signed by a DID, a Relying Party may use the cryptographic material in the DID Document to verify the signature.
Controllers may rotate the cryptographic material for a DID by updating the DID Document as recorded in its registry. Different methods handle this differently, but the result is an update to the core cryptographic proof required to prove control of the DID and the DID Document.
Controllers may change service endpoints associated with a DID, including the proof mechanism for authenticating as the Subject for any given endpoint. The process for doing this is method specific, but is designed to allow Controllers to make these change without necessarily changing the primary proof mechanism for control of the DID itself.
To support interoperability, some methods provide a way for controllers to record in the registry (by updating the DID Document), that the DID should be redirected to another DID, which now has full authority to represent the originating DID. This mechanism allows DID controllers to migrate a DID from one method or registry to another.
Some methods provide means for recovering control of a DID if its existing private cryptographic material is lost. These means vary by method but can include social recovery, multi-sig, Shamir sharing, or pre-rotated keys. In general, recovery triggers a rotation to a new proof, allowing the Controller of that new proof to recover control of the DID without interacting with any Relying Parties.
Some methods provide an explicit audit trail of all CRUD actions on that DID, including a timestamp for when the actions took place. For distributed ledger-based registries, this audit trail is fundamental to the way the ledgers record transactions. This allows relying parties to see, for example, how recently a DID was rotated or its service endpoints updated, which may inform certain analytics regarding the reliability of the DID's cryptographic material.
Instead of deleting a DID, Controllers can revoke a DID such that downstream processes like authentication and dereferencing are no longer functional. Most decentralized systems cannot guarantee actual deletion of a record. Indeed, distributed ledgers are often touted as "immutable". Methods define revocation processes to achieve the same effect as deletion. The mechanisms for revocation vary based on the method.
In collecting and evaluating potential use cases, we have identified fifteen (15) key features supported by the DID specification, which provide benefits in the areas of anti-censorship, anti-exploitation, ease of use, privacy, and sustainability.
The features and their associated benefits can be seen in the following grid. A brief definition of each feature follows.
Feature | Anti-censor | Anti-exploitation | Ease of Use | Privacy | Sustainability |
---|---|---|---|---|---|
1. Inter-jurisdictional | X | X | |||
2. Can't be administratively denied | X | ||||
3. Minimized rents | X | X | |||
4. No vendor lock in | X | X | |||
5. Self-issued, self-managed | X | X | X | ||
6. Streamlined rotation | X | ||||
7. No phone home | X | ||||
8. No surveillance capitalism | X | X | X | ||
9. Cryptographic future proof | X | ||||
10. Survives issuing organization mortality | X | X | |||
11. Survives deployment end-of-life | X | ||||
12. Survives relationship with service provider | X | X | |||
13. Cryptographic authentication and communication | X | X | X | ||
14. Service Discovery | X | X | |||
15. Registry agnostic | X | X | X | X |
Not all use cases illustrate each feature, and not all DID methods support all features. However, we are gathering use cases to make sure all key features are clearly described. The following chart shows which features are explicitly illustrated in the Focal Use Cases.
Feature | Corporate | Educational credentials |
Prescriptions | Digital Executor |
Single Sign On |
---|---|---|---|---|---|
1. Inter-jurisdictional | X | X | X | ||
2. Can't be administratively denied | X | X | X | X | |
3. Minimized rents | X | ||||
4. No vendor lock in | X | X | X | X | |
5. Self-issued, self-managed | X | X | X | X | |
6. Streamlined rotation | X | X | |||
7. No phone home | X | X | |||
8. No surveillance capitalism | X | ||||
9. Cryptographic future proof | X | X | X | ||
10. Survives issuing organization mortality | X | ||||
11. Survives deployment end-of-life | X | ||||
12. Survives relationship with service provider | X | X | |||
13. Cryptographic authentication and communication | X | X | X | X | X |
14. Service Discovery | |||||
15. Registry agnostic |
There are many types of identifiers that corporations use today including tax identification numbers (e.g. 238-42-3893), Legal Entity Identifiers (e.g. 5493000IBP32UQZ0KL24), Data Universal Numbering System identifiers (aka. DUNS Number) (e.g. 150483782), and many more that communicate the unique identity of an organization. None of these numbers enable an organization to self-issue an identifier or to use the number to cryptographically authenticate or digitally sign agreements. A great number of business to business and business to customer transactions could be executed more quickly and with greater assurance of the validity of the transaction if a mechanism to self-issue cryptographic identifiers were created.
A North American government would like to ensure that the supply chain that feeds electronic products into the country is secure. As a result, a new method of submitting digital documentation to Customs is enabled that requires that all documentation is provided as machine-readable digitally signed data. Digitally signed documentation is collected at each stage of the manufacturing, packaging, and shipping process. This documentation is then submitted to Customs upon the products entry into the country where all digital signatures are verified on the documentation. Some aspects of the signed documentation, such as firmware hashes and checksums, are then used by Customs and downstream customers to verify that the products have not been tampered with after leaving the manufacturing facility.
Decentralized Identifiers are chosen in order to ensure 1) low management overhead for the government, 2) self-management of identifiers and cryptographic key material, and 3) a competitive marketplace.
The requirement of downstream customers to use the same documentation and digital signature mechanisms that were provided to Customs is the sticky wicket in this scenario. Governments often create ad-hoc solutions for their import solutions, which make securing the global supply chain difficult as each government has their own method of securing the supply chain and identifying corporations that downstream customers need to integrate with. If you are a global company, that means integrating with many supply chain systems (each with different capabilities). As such, any securing of the supply chain with downstream customers must then depend on the country-specific corporate identification and PKI solution, which leads to ad-hoc solutions that drive up the cost of doing business across borders.
A supply chain identifier solution that is simple, self-administered, built on global standards, is flexible in the cryptographic mechanisms used to authenticate, and can be used by governments and downstream customers with little to no modification to the regional government or corporate systems does not exist today.
Many Decentralized Identifier use cases focus on Self-Sovereign Identity and individuals. This use case focuses on organizations and their departments as entities that would also benefit from Decentralized Identifiers.
Educational Verifiable Credentials offer benefits over traditional educational credentials in that the recipient is able to store and share their credentials, and a third party may independently verify the credential (including authenticating the identity of the recipient), without necessarily consulting the issuer, and without dependence on centuries old treaty-based bureaucratic process for the international verification of credentials. This provides the promise of recipient-owned long-lived credentials that the recipient may use in any country, even if the issuing institution goes out of business.
However, traditional public-private key pair-based identifiers present challenges for rotating keys, especially if the identifier in a credential is simply the public key (with the private key used for authentication).
The key rotation is particularly problematic for credentials expected to last a lifetime. It should be anticipated that a given individual will change their key management strategy and systems several times over the course of their life, e.g., relying on a cloud wallet, a mobile wallet, or a dedicated hardware wallet, as their needs change.
By issuing an educational credential to a recipient's DID, the recipient has the ability to prove ownership of a credential even if the cryptographic material used for authenticating changes over time.
When Sally earned her master’s degree at Oxford, she received a digital diploma which contained a decentralized identifier she provided. Over time, she updates the cryptographic material associated with that DID to use her latest hardware wallet, with biometric protections and a quantum resistant algorithm. A decade after graduation, she applies for a job in Japan, for which she provides her digital diploma by uploading it to the prospective employee’s website. To verify she is the actual recipient of that degree, she uses the decentralized identifier to authenticate, using her current hardware wallet (with rotated keys). In addition to the fact that her name matches the name on the diploma, the cryptographic authentication provides a robust verification of her claim, allowing the employer to rely on Sally’s assertion that she earned a master’s degree from Oxford.
Rotating keys without invalidating Sally's educational credentials and providing acceptable proof of education internationally.
Oxford had no need to provide services for resetting or updating Sally’s username or password; they had no role in managing Sally’s changes to her authentication credentials. The potential employer did not need to contact Oxford to verify Sally’s claim of a master’s degree; they were able to verify the credential and authenticate Sally’s identity with information retrieved over the Internet.
Alice wants help with her urinary tract infection (UTI) and is a bit touchy about her privacy. In the old days, she would have to make an appointment in-person and get a paper prescription to take to a pharmacy. She wants to save money and have peace of mind.
Because she lives in Seattle, Alice is in a state that allows Planned Parenthood to diagnose and prescribe online https://www.plannedparenthood.org/get-care/get-care-online . Alice uses the identity wallet on her iPhone to register with the online medical practice. She tells the online practice her name is Althea with password-less authentication and a verified driver's license credential to prove that she's a WA resident. The remote physician, Bob, is licensed by the WA Board of Medicine and credentialed by Planned Parenthood of WA, Inc. He's securely signed in using the identity wallet on his smartphone. Bob issues Alice a digital prescription in the form of a verifiable credential and allows Alice to download it however she pleases. Alice is a librarian and trusts her local public library to erase their logs as allowed by law. She uses one of their computers to sign-in and do all of this. She snaps a picture of the QR code that is the prescription to take to the pharmacy. Charlie, the licensed pharmacist, scans the prescription QR code and fills the prescription. Alice pays cash.
The challenge of this particular use-case is that only Bob and Charlie are verified identities and accountable for their interaction with Alice. Alice can be anonymous or pairwise-pseudonymous with both Bob and Charlie and everything just works. Alice, Bob, and Charlie all keep separate and legally authentic copies of the records of their interaction in case of dispute.
The Prescription use-case is a common and high-value example of privacy engineering as we shift to convenient and cost-effective online commerce among licensed and unlicensed individuals as peers. Bob and Charlie benefit by reducing or even eliminating the influence of their respective institutions or employers and therefore make more money. They pass some savings to Alice who also gets increased peace of mind.
Today, when people die, there are no standard technologies for heirs, executors, or probate courts to properly take control of an individual's online accounts and digital assets. With a DID linked to accounts and assets, a DID owner could define a trigger for a third party to assume control over the DID Document. Ideally, this trigger would specify (a) an oracle (how to know the death/incapacity occurred), (b) a means for the new owner to assert control, and (c) appropriate checks and accountability.
Kathy uses DIDs to manage her authentications to various services. As part of her estate planning, she generates a unique credential that she gives to her attorney, Gloria, with provisions specified in her will, which initially lists Mike as the digital executor. With appropriate obfuscation, that credential is specified in multiple DID documents as a probate authority, with the authorization to change the master key in case of death, which shall be recorded publicly, on chain, as a notarized invocation of the probate authority. As it happens, Kathy had a falling out with Mike and notified Gloria just two weeks before her death that her friend Miyake should now be her digital executor. Upon Kathy's death, Gloria uses the probate credential to publicly record the assertion of probate and to replace the DID's master key with a new key, controlled by Miyake, who lives in Japan (Kathy, Gloria, and Mike live in the United States). Now, any system using Kathy's DIDs for authentication can programmatically recognized Miyake's authority and specifically know that Kathy's credentials were modified under a assertion of probate.
The late date change in digital executorship from Mike to Miyake could be problematic if Kathy had directly listed Mike's credential in the DID Document. Because she instead chose to rely on her attorney, Kathy has a more flexible way to direct her wishes, while still leveraging the collective control over her authenticated logins to various services. In addition, Miyake's geographic location could make it hard for them to travel to the United States and may make it difficult to provide proof of identity traditionally used by U.S. courts. Also, because Gloria invokes the probate mechanism, Miyake need only provide a suitable credential at that time; he did not need to create and maintain a credential over a long period of time (as would be the case if Gloria weren't involved).
Multiple DIDs with a common, blinded authority for probate assumption of control. The legal selection of the new owner is mediated through a trusted fiduciary (an attorney of record). Cross-border transfer of ownership.
Passwords are notoriously misused ("123456"), stolen from the supposedly-secure database on the server-side, easy to forget when sufficiently secure, and never the last word in authentication for forgotten password situations. Proving control of a DID can replace storage and retrieval of a shared secret.
Use DID as single-sign-on to a website, using DID Auth (especially cases like the example between a web page and web browser with a mobile identity app) directly or via the Credential Handler API. When desirable, the relationship can add a shared secret for 2FA.
Note that what is stored on the server-side is a DID, so in cases where a successful attack reads (but does not mutate) the database, all that is revealed is linkage of the DID to use the site (so probably as a consequence the user should spawn a unique DID to reveal to that site), and any 2FA secret (which should be a random number for TOTP, instead of a phone number susceptible to carrier social engineering and SS7 bugs). In other words, the user's DID Auth procedures remain valid after the hack, even for that site.
Transfer sign-on capability from control of a password to control of the DID, as shown in DID-Auth, using appropriate devices. Optionally include 2FA, although DID Auth doesn't handle that well, yet.
This use case describes the most common authentication action for people on the Internet.