A local built-in DID method name for public key lookup

The "What is a DID? Was: Call for Focal DID Use Cases" taking place on this
list evoked an idea.

We should define a DID method name called *"local"* or *"self"* where the
*specific-idstring* is a secp256k1 public key.

Then require all DID libraries to have a built-in handler for this method's
read operation.  That would turn a DID like this:

*did:self:12345678*


To a DID Document like this:

*{*
*  "@context": ["https://w3id.org/did/v1 <https://w3id.org/did/v1>",
"https://w3id.org/security/v1 <https://w3id.org/security/v1>"],*
*  "id": "did:self:12345678",*
*  "publicKey": [{*
*    "id": "did:self:12345678#keys-1",*
*    "type": "Secp256k1VerificationKey2018",*
*    "owner": "did:self:12345678",*
*    "publicKeyHex": "0102030405060708"*
*  }]*
*}*


This way, individuals can use DIDs that are TRULY self-sovereign, albeit
limited, to just the public key lookup without any way to update it.
It would also simply testing of SSI implementations in much the same way
"127.0.0.1" "localhost", simplifies IP network testing.

I know that several DID implementors (uPort/lifeID) are already supporting
a way to have DIDs start their life off-chain which was a seed thought for
this idea.

Thoughts?

   -chrisb

Received on Wednesday, 6 June 2018 15:31:25 UTC