hyperledger / indy-did-method

Indy DID Method Specification
https://hyperledger.github.io/indy-did-method/
Creative Commons Attribution 4.0 International
18 stars 14 forks source link

DID Document Validation: What happens if the DID Core context changes? #57

Closed dbluhm closed 2 years ago

dbluhm commented 2 years ago

Originally opened by @cjhowland in https://github.com/hyperledger/indy-node/issues/1739

10.1.3 DIDDoc Assembly Steps 3.2: If the diddocContent item contains a @context item, the DIDDoc is assumed to be JSON-LD, and the @context element MUST include the current DID Core JSON-LD context. If it does not, exit the assmebly process and return an error.

Wouldn't this check require updating the ledgers in the event that the DID Core @context is revised? This dependency may cause issues if there is a version or domain name change. In anticipation of future revisions, perhaps it is preferable to leave this check to the creator of the diddocContent.

dbluhm commented 2 years ago

Discussed today during Indy DID Method call. After some discussion, we agreed that enforcing the DID Core Context be present in @context is NOT sufficient to ensure that the resulting JSON-LD DID Document is valid. There is already a responsibility on the part of the content creator to ensure that the resulting doc is valid JSON-LD since they could use values not present in the core context (such as didcomm service endpoint values). As such, we feel it makes sense to relax the requirements noted in 10.1.3 step 3.2 to not require the DID Core Context. This also solves the issue of what happens when the DID Core context URL needs to be updated.

dbluhm commented 2 years ago

Resolved with #58