Comment

Comment by csense

It sounds like you understand enough about DID's to start incorporating them into an actual product. You'll have a bunch of users, and you want to give each of your users a DID.

Congratulations! I certainly wasn't able to get that level of understanding from the document.

In Section 1.1, it says the DID "did:example:123456789abcdefghijk" resolves to a DID document.

Would you then be running some software with all your users' DID's on some server identified by a subdomain, for example identity.dns.xyz? And then the DID for one of your users, let's call her Alice, would be "did:identity.dns.xyz:123456789abcdefghijk"?

And then if I run a totally different company, and Alice wants to use my website, instead of registering a separate account with my website, she can instead type "did:identity.dns.xyz:123456789abcdefghijk" into my website? Does my site's software then contact identity.dns.xyz to ask it something? Or is all the information my site needs to do its thing contained in the DID itself?

Is "123456789abcdefghijk" the hash of some document that's returned to my website by the identity.dns.xyz server? Or is Alice running some identity management browser extension that knows to present a document whose hash is "123456789abcdefghijk" to my website? Or instead of being the hash of a document, is "123456789abcdefghijk" the hash of a public key which signs something {returned by the identity.dns.xyz server | presented by Alice's software}? Or is "123456789abcdefghijk" just a string your webserver happened to generate to identify Alice uniquely that came from /dev/urandom or a PRIMARY KEY column in your database that has no cryptographic meaning?

If Alice's DID document is cryptographically linked to her DID, how does she update it? If the DID is the hash of the document, does that mean Alice gets a new DID whenever she edits her profile on dns.xyz?

What if Alice updates her dns.xyz profile because she accidentally pasted an Ethereum private key into a forum post, then generated a new address that wasn't compromised? How does my website know that the user presenting Alice's DID document is Alice sending her most up-to-date DID document, rather than Eve sending an outdated DID document with the compromised Ethereum address that once belonged to Alice, in an attempt to get my website to interact or send stuff to the compromised Ethereum address?

Is a DID like a generalized Bitcoin address, a generalized IPNS name, a generalized email address, or something else entirely?

parent csense 5 years ago

Discussion

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton