microsoft/did-ccf

Use relative DID URLs in the controller document

Closed this issue · 0 comments

Is your feature request related to a problem? Please describe.
The controller documents currently contains fully qualified id's such as did:ccf:exp-did-ccf-4.confidential-ledger.azure.com:9EKMeln_Cf6AETnzNduACdZpGTJ4KvnPDLhFY1S0nuk#p4U5jGNxVwia. By including an identifier base and switching to relative URLs such as #p4U5jGNxVwia, document size can be reduced.

Describe the solution you'd like
The current documents generated:

{
    "id": "did:ccf:exp-did-ccf-4.confidential-ledger.azure.com:9EKMeln_Cf6AETnzNduACdZpGTJ4KvnPDLhFY1S0nuk",
    "verificationMethod": [
        {
            "id": "did:ccf:exp-did-ccf-4.confidential-ledger.azure.com:9EKMeln_Cf6AETnzNduACdZpGTJ4KvnPDLhFY1S0nuk#puHbzqkQbjN1",
            "controller": "did:ccf:exp-did-ccf-4.confidential-ledger.azure.com:9EKMeln_Cf6AETnzNduACdZpGTJ4KvnPDLhFY1S0nuk",
            "type": "JsonWebKey2020",
            "publicKeyJwk": {
                "crv": "Ed25519",
                "kid": "#puHbzqkQbjN1",
                "kty": "OKP",
                "x": "w327SXx4WN5aRQ3Vb7cH64ZHx8pTrFYLMUqRqmTGc8A"
            }
        },
        {
            "id": "did:ccf:exp-did-ccf-4.confidential-ledger.azure.com:9EKMeln_Cf6AETnzNduACdZpGTJ4KvnPDLhFY1S0nuk#p4U5jGNxVwia",
            "controller": "did:ccf:exp-did-ccf-4.confidential-ledger.azure.com:9EKMeln_Cf6AETnzNduACdZpGTJ4KvnPDLhFY1S0nuk",
            "type": "JsonWebKey2020",
            "publicKeyJwk": {
                "crv": "Ed25519",
                "kid": "#p4U5jGNxVwia",
                "kty": "OKP",
                "x": "YcE5uHJk07w6lGs7_ym5bU7qmsVOVl_6ZIrTpsvhWTk"
            }
        }
    ],
    "@context": [
        "https://www.w3.org/ns/did/v1",
        "https://w3id.org/security/suites/jws-2020/v1",
        {
            "@vocab": "https://github.com/microsoft/did-ccf/blob/main/DID_CCF.md#"
        }
    ],
    "authentication": [
        "did:ccf:exp-did-ccf-4.confidential-ledger.azure.com:9EKMeln_Cf6AETnzNduACdZpGTJ4KvnPDLhFY1S0nuk#puHbzqkQbjN1"
    ],
    "assertionMethod": [
        "did:ccf:exp-did-ccf-4.confidential-ledger.azure.com:9EKMeln_Cf6AETnzNduACdZpGTJ4KvnPDLhFY1S0nuk#puHbzqkQbjN1"
    ],
    "keyAgreement": [
        "did:ccf:exp-did-ccf-4.confidential-ledger.azure.com:9EKMeln_Cf6AETnzNduACdZpGTJ4KvnPDLhFY1S0nuk#p4U5jGNxVwia"
    ],
    "service": [
        {
            "id": "#linkeddomain",
            "type": "LinkedDomains",
            "serviceEndpoint": "https://www.vcsatoshi.com/"
        }
    ]
}

Document generated if proposed feature is implemented:

{
  "id": "did:ccf:exp-did-ccf-4.confidential-ledger.azure.com:9EKMeln_Cf6AETnzNduACdZpGTJ4KvnPDLhFY1S0nuk",
  "verificationMethod": [
    {
      "id": "#puHbzqkQbjN1",
      "controller": "did:ccf:exp-did-ccf-4.confidential-ledger.azure.com:9EKMeln_Cf6AETnzNduACdZpGTJ4KvnPDLhFY1S0nuk",
      "type": "JsonWebKey2020",
      "publicKeyJwk": {
        "crv": "Ed25519",
        "kid": "#puHbzqkQbjN1",
        "kty": "OKP",
        "x": "w327SXx4WN5aRQ3Vb7cH64ZHx8pTrFYLMUqRqmTGc8A"
      }
    },
    {
      "id": "#p4U5jGNxVwia",
      "controller": "did:ccf:exp-did-ccf-4.confidential-ledger.azure.com:9EKMeln_Cf6AETnzNduACdZpGTJ4KvnPDLhFY1S0nuk",
      "type": "JsonWebKey2020",
      "publicKeyJwk": {
        "crv": "Ed25519",
        "kid": "#p4U5jGNxVwia",
        "kty": "OKP",
        "x": "YcE5uHJk07w6lGs7_ym5bU7qmsVOVl_6ZIrTpsvhWTk"
      }
    }
  ],
  "@context": [
    "https://www.w3.org/ns/did/v1",
    "https://w3id.org/security/suites/jws-2020/v1",
    {
      "@base": "did:ccf:exp-did-ccf-4.confidential-ledger.azure.com:9EKMeln_Cf6AETnzNduACdZpGTJ4KvnPDLhFY1S0nuk"
    },
    {
      "@vocab": "https://github.com/microsoft/did-ccf/blob/main/DID_CCF.md#"
    }
  ],
  "authentication": [
    "#puHbzqkQbjN1"
  ],
  "assertionMethod": [
    "#puHbzqkQbjN1"
  ],
  "keyAgreement": [
    "#p4U5jGNxVwia"
  ],
  "service": [
    {
      "id": "#linkeddomain",
      "type": "LinkedDomains",
      "serviceEndpoint": "https://www.vcsatoshi.com/"
    }
  ]
}