The Current Status of the DID Specification
Work on the Decentralized Identifier 1.0 specification began at RWOT #2 in May 2016, and a draft was published on 21 November 2016. Work continues under the custody of the W3C Credentials Community Group, a group of 237 members, who contribute by taking part in weekly teleconference calls, engaging in discussions on the mailing list, and raising issues on the spec on GitHub.
This document serves as a summary of the current state of work. It includes a rough categorization of the current open issues, with the goal of identifying actions which can be taken quickly to move the spec forward, as well as topics which need extended discussion amongst the community. Issues (and sometimes PRs) are categorized as follows:
- clarify: Clarification or disambiguation of concepts the community already has consensus on.
- discuss: Topics which need more discussion to reach consensus about.
- editorial: Updates to informative language, without changes to meaning or conformance criteria.
- elsewhere: Issues relating to other documents (specs, namespaces, etc).
- question: Questions about the spec or implementation guidance.
This document will be updated as work on the DID specification progresses, so information will be current at the time of RWOT8.
Some topics have consensus amongst members of the Community Group, or are intuitively understood by people who have been deeply embedded in the work for a while, but remain unclear with regards to text in the specification. For these, the spec needs new text, or reworking of existing text, to make sure concepts are communicated clearly and unambiguously to new readers.
Issues are labeled 'clarify' and include:
- The scope and purpose of the DID specification (#157, #151, #121, #138).
- What is a DID? (#130, #156, #155, #141, #140, #125, #124, #123, #122, #115).
- Use of '[distributed] ledger' (#150, #149).
- Questions about keys (#147, #143, #105).
- ABNF rules (#136, #135, #131).
- Decentralization and practicality (#133, #120).
- Service endpoints (#104).
- Content types (#84, #82).
Action: The CG should agree definitive definitions or statements for each of these, and then work to integrate them into the spec text.
Bigger discussion points
Some topics need deeper discussion to ensure common understanding amongst the CG and the wider community, or more technical work to make sure they are resolved properly.
Issues are labeled 'discuss' and include:
- Do we need to explicitly name the thing that the DID identifies? (Or, consolidate casual references to the thing the DID identifies?) Eg. 'referent', 'entity', 'subject', .. (#154, #148, #145, #130, #139).
- Current consensus: The thing that the DID identifies is a DID Document, no other terms are required or needed.
- DID URI structure, and Resolving DIDs into DID Documents (#97, #90, #85, #80).
- Key revocation (#96).
- DID method discovery (#83).
- DID controllers (#153).
Action: discuss at RWOT and on CCG calls, resolve misunderstandings, and where applicable break issues down into manageable changes that can be made to the spec.
Editorial issues, such as grammatical fixes or reworking sentences without changing the meaning, and perhaps structural changes like section naming or ordering, are labeled 'editorial' and include:
- Clearer language / small correction requested: #144, #137, #129, #128, #127, #126, #119, #118, #117, #116, #112, #81
- Additional explanation requested: #134.
Action: PRs please!
Some aspects of the DID work are eventually extracted into separate specifications. There are other external documents which are connected to the spec. Issues relating to these are labeled 'elsewhere' and include:
- JSON-LD context(s): #152.
- Related to DID Resolution: #97, #64, #17.
- Signatures: #60, #56, #39, #38, #37, #29.
Action: Open issues or PRs on external documents, update references or summaries in the DID spec if applicable.
Other Discussion Points
And if that wasn't enough, there are other topics that are of interest to the CG which haven't (yet) been raised as issues.