DID Working Group Telco — Minutes
Date: 2020-01-21
See also the Agenda and the IRC Log
Attendees
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
Regrets:
Guests:
Chair: Daniel Burnett
Scribe(s): Chris Winczewski
Content:
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
3. IPLD
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.