DID Working Group Telco — Minutes

Date: 2020-01-21

See also the Agenda and the IRC Log


Present: Daniel Burnett, Ivan Herman, Chris Winczewski, Kenneth Ebert, Dave Longley, Jonathan Holt, Amy Guy, Justin Richer, Eugeniu Rusu, Brent Zundel, Michael Lodder, Adrian Gropper, Manu Sporny, Orie Steele, Markus Sabadello, Ganesh Annan, Drummond Reed, Pamela Dingle, Oliver Terbu, Joe Andrieu, Kyle Den Hartog, David Ezell, Dmitri Zagidulin, Yancy Ribbens, Tzviya Siegman, Samuel Smith, Kaliya Young, Kim Duffy



Chair: Daniel Burnett

Scribe(s): Chris Winczewski


1. Agenda Review, Introductions, Re-introductions

Daniel Burnett: Introductions, IPLD on agenda, prep for F2F
… no new members

2. Announcements

Daniel Burnett: Announcements

Manu Sporny: DIDAuth using http requests. Some using IETF http signature spec. Consider using here

Manu Sporny: https://lists.w3.org/Archives/Public/public-credentials/2020Jan/0091.html

Manu Sporny: Consider participating as it may benefit us in the DID community

Justin Richer: Add to Manu, http working group looking for help and those interested in implementing

Justin Richer: https://ietf.org/about/note-well/

Daniel Burnett: Read note-well for restrictions

Ivan Herman: the ietf document to read


Ivan Herman: See Jonathan’s slides

Daniel Burnett: Main topic - IPLD with jonathan_holt. 30 minutes

Jonathan Holt: Using IPLD for DID documents
… not IPID or IPFS
… some concerns with JSON-LD as URL’s are mutable resources. Susceptible to DNS MITM. Also needs to call home.

Manu Sporny: I’d like to point out that there are mitigations for all of those concerns w/ JSON-LD :)

Jonathan Holt: linking data through the hash of the content

Dave Longley: I’d like to point out that none of it is specific to JSON-LD either :) … URLs may/may not resolve to mutable resources – that JSON-LD uses URLs is irrelevant wrt that.

Jonathan Holt: distributed = live on the moon with no connection. Distinct from decentralized.
… each ecosystem is its own Merkle DAG
… no central authority
… narrow waste protocol. IPLD tries to fit this structure.
… IPLD identifier is simply the has of the content. Not a location/protocol nor about dereferencing or retrieving a resource

Jonathan Holt: Components - CID, Data Model, Deterministic Serialization Formats, IPLD selectors, IPLD transformations
… this is a self-describing data model
… examples on https://explore.ipld.io
… no “//“ as there is no authority in scheme

Dave Longley: +1 for a URI format (then it just works with everything else)

Jonathan Holt: DID method is did:IPID
… blockchain agnostic, public permissionless “microledger” with “sidetree”
… no need to call home

Manu Sporny: To be clear, the “//” is not an issue… the issue was that there was no URI scheme defined. If there is a URI scheme, we’re all good here. :)

Manu Sporny: Creating a CBOR tag for this doesn’t address the issue, which is that we need a URI scheme… if we have a URI scheme for IP*, we’re good.

Jonathan Holt: can navigate natively in the JSON structure
… context field includes everything needed to locally deconstruct without URL lookup

Orie Steele: We really need to fix these key id issues…. https://github.com/w3c/did-core/issues/131

Samuel Smith: Concept of verifying root of trust. Without phoning home, how is this accomplished in IPLD? Both for integrity of data and control authority.

Jonathan Holt: It is self-certifying because it is signed with the key.

Samuel Smith: disagree

Jonathan Holt: Will talk offline with SamSmith

Drummond Reed: Can you clarify? Are you wanting to have a DID doc that support CBOR?

Jonathan Holt: CBOR is the underlying format for this DID doc

Drummond Reed: Are you willing to submit CBOR format with others?

Jonathan Holt: Yes, clearer after presenting as well. On task list.

Kyle Den Hartog: How are you handling caching?

Chris Winczewski: Orie: huge fan of IPLD, love the technology

Kyle Den Hartog: Kyle’s question related to the document loader. How many changes are required to JSON-LD to support IPLD?
… How does this integrate into the JSON-LD tooling infrastructure?

jonathon holt: Get CBOR and get blocks using “ipfs block get”
… for IPFS but IPLD stands on its own.

Dave Longley: if no one has done it yet, would be great to see an npm module that includes an IPFS document loader that does all this that people can just plug into the tools

Manu Sporny: We need to make sure we understand the depth of the changes required. Expectation is that if there is an URI format then we are good.
… CBOR may not work for current systems but URI would work if it is defined. If there is a URI scheme then there should be minimal work.
… Are you asking for a change in the DID spec?

jonathon holt: Confusion around retrieving info from a central authority. DID doc should have native support for CBOR. IPLD stands on its own, and can be resolved directly.

Samuel Smith: are Jonny’s slides posted someplace

Daniel Burnett: SamSmith, the link is in the minutes

Manu Sporny: I’m hearing that this may need to be taken up in the DID Resolution specification (not the DID Core spec).

Orie Steele: AFAIK these cids need to be prefixed to be URIs… ipld:<cid>... to work with todays tooling in the same way that did documents are used today… we could check every identifier for “bafy” and not prefix it, but I don’t like that…

jonathon holt: IPNF key used to sign DID doc. This sets the self sovereign authority.

Samuel Smith: The term self-certifying is describing a similar concept to “stands on its on” it means verifiable without resort to other authority

Michael Lodder: this is why I think we need an abstract data model

Michael Lodder: +1 to Johnny

Justin Richer: cbor is a superset of JSON. Translation should be trivial in this constrained workspace.

Manu Sporny: We do have an abstract data model currently, but the spec probably isn’t very clear about that :)

Manu Sporny: URI schemes do not require an authority

Ivan Herman: +1 to manu

Daniel Burnett: agreed, mike-lodder. We need a proper abstract data model. JSON may not be the best language for that.

Dave Longley: +1 to burn

Samuel Smith: +1 did need authority. Its the root of trust

Michael Lodder: +1 to burn, I’d support anything else that we can use for an abstract data model

Manu Sporny: You don’t need the “//“ or an authority. There is a misunderstanding that this is a new concern.

Daniel Burnett: +1 manu. The URL scheme defines the rest of the string. HTTP defines an authority section using //, but that is not a requirement for all URL schemes.

Drummond Reed: +1 to a proper abstract data model, in whatever notation we decide is best

Dave Longley: also, the argument that we should ensure we don’t define anything that conflicts with JSON so that it will work in both CBOR and JSON (as CBOR is a superset) can also be used to say we shouldn’t define anything that conflicts with JSON-LD (as JSON is a superset) … so it works with all three.

Samuel Smith: Integrity by itself is not a sufficient root-of-trust. Non-repudiability provides a root-of-trust via consistent attribution not just integrity

Manu Sporny: Is there a miscommunication between URI schemes and “//authority?”

Daniel Burnett: manu, queue …

jonathon holt: On point for creating “IPFS:” not “IPFS://“
… IPLD is ephemeral. Narrow waste protocol.

Joe Andrieu: Many URI schemes include a hierarchical element for a naming authority so that governance of the name space defined by the remainder of the URI is delegated to that authority (which may, in turn, delegate it further).

Orie Steele: ipld (is a namespace, and is an authority)

Dave Longley: notes that this shouldn’t be a “debate”, there’s a definition for a URI, it’s a fact.

Joe Andrieu: IRC3986 reference. DID authority for this will be IPFS. Not concerned with “//“

jonathon holt: Agree

Samuel Smith: But for decentralized web we want the IPID to be the authority

Samuel Smith: not IPFS

Orie Steele: +1 to manu, no need to change anything as long as CIDs are prefixed.

Dave Longley: +1

Ivan Herman: +1 to manu

Daniel Burnett: good point, Joe. Many URI schemes delegate further namespace management to an authority, and the DID scheme does so

Manu Sporny: Believes we don’t need to change the DID spec after this discussion. Is this corred?

jonathon holt: IPFS is an application that sits on top of IPLD

Drummond Reed: Note that the link to Jonathan’s deck goes (in my current browser, Chrome, anyway) to a static page. Is that the intention?

Orie Steele: names are hard…

jonathon holt: really about how to serialize cbor so that tags are semantically interoperable

Manu Sporny: We have made progress but concerned about lingering miscommunication for CBOR
… how do we map this into current methods
… can we use a JSON-LD implementation of CBOR to avoid writing a translator
… could write a CBOR-LD but resources to do this are sparse.

jonathon holt: Should we all be using CBOR natively? How do we make this human readable?

Samuel Smith: Is not CBOR described by CDDL which is Human readable?

Michael Lodder: SamSmith, I think when they say Human readable, they also mean the data content

Daniel Burnett: I am about to freeze the queue

Samuel Smith: @mike so we need to have human readable versions of the data values

Orie Steele: Recommendation to not discuss IPFS as it is too high level for this group. Real topic is how to make linked data models interoperable.
… Full interop if IPLD: is used
… CBOR is not the interop layer. IPLD is the interop layer.

jonathon holt: Paper submitted to RWOT. Feedback requested.

Manu Sporny: Yes, +1 thanks Jonathan :)

Drummond Reed: Jonathan, this was very excellent. Thanks!

Justin Richer: +1 thanks

Ivan Herman: no call next week.