3C/ Standard Interfaces for DID Create/Update/Deactivate

From IIW

Standard Interfaces for DID Create/Update/Deactivate

Tuesday 3C

Convener: Markus Sabadello

Notes-taker(s):  Jovan Shandro

Tags for the session - technology discussed/ideas considered:

DID, specification, DID operations

Discussion notes, key understandings, outstanding questions, observations, and, if appropriate to this discussion: action items, next steps

  • There is an attempt to specify abstract interfaces if you want to Create/Update/Deactivate a did that could be implemented for all did methods.

  • The idea of this specification is to provide a standard with the same assumptions as with resolution. It should be in an abstract level, meaning it should specify the inputs and outputs of creating/updating/deactivating a did but not how it should be implemented.

  • There are many differences on how the operations of different did methods work, so it is still a question whether this standard will work for all did methods at the current state.

  • Two greatest architectural questions that have come in the way:

    • How should key management be handled: where are keys created, how are they handled etc?

    • The concept of internal state or longer running jobs

  • Regarding key management, in the current early draft there is a section which describes 3 possible way to handle key management:

    • Internal secret mode: The service itself generates keys and either stores them or returns them to the client. The disadvantage is that the service has to be highly trusted. This mode could make sense if you run the service yourself.

    • External secret mode: Key management is handled by some kind of externally hosted wallet that the service can call (e.g hardware wallet).

    • Client-managed secret mode: The client that makes use of the registrar service would first create the keys and then call the different functions of the service. This would mean back and forth communication between server and client (e.g server sends sign request, client signs etc.).

  • Regarding the internal state concept, write operations could sometimes take some states to complete, so there could be an internal state machine keeping track of the states until the operation is complete e.g when you say you want to create a did, the create method might not directly return the did, but there might be multiple steps and a bit of back and forth communication between client and registrar and the client will need to take some more action.

  • The next step would be to see if the current specification is generic enough (can it be applied to all did methods).

  • Regarding future changes: It is sure that one such generic specification will be able to work for all did methods, the question is if it is too generic, then is it useful?

Links: