Minutes for VCWG telecon 30 July 2019

available at:
  https://www.w3.org/2019/07/30-vcwg-minutes.html

also as text below.

Thanks a lot for taking the minutes, Amy and Manu!

Kazuyuki

---

   [1]W3C

      [1] http://www.w3.org/

                               - DRAFT -

                    Verifiable Claims Working Group

30 Jul 2019

   [2]Agenda

      [2] https://lists.w3.org/Archives/Public/public-vc-wg/2019Jul/0019.html

Attendees

   Present
          Oliver_Terbu, Dave_Longley, Joe_Andrieu,
          Dmitri_Zagidulin, Matt_Stone, Amy_Guy, Ken_Ebert,
          Manu_Sporny, Andrei_Sambra, Adrian_Gropper,
          Jonathan_Holt, Dan_Burnett, David_chadwick, Ned_Smith,
          Benjamin_Young, Brent_Zundel, Allen_Brown,
          Dudley_Collinson, Ted_Thibodeau, Yancy_Ribbens,
          Justin_Richer, Sercan_Kum

   Regrets
          Kaz_Ashimura

   Chair
          Matt_Stone

   Scribe
          rhiaro, manu

Contents

     * [3]Topics
         1. [4]2nd Candidate Recommendation Publication
         2. [5]Pull Requests
         3. [6]Issues
         4. [7]Test Suite
         5. [8]General Implementation Topics
         6. [9]Implementation Guide
         7. [10]Use Cases
     * [11]Summary of Action Items
     * [12]Summary of Resolutions
     __________________________________________________________

   <stonematt>
   [13]https://lists.w3.org/Archives/Public/public-vc-wg/2019Jul/0
   019.html

     [13] https://lists.w3.org/Archives/Public/public-vc-wg/2019Jul/0019.html

   <manu> scribenick: manu

2nd Candidate Recommendation Publication

   stonematt: We have something to celebrate this week... we got
   to 2nd CR.
   ... Congratulations everyone, it's published...
   ... There were two caveats... with the JWT section, iss/nbf

   [14]https://www.w3.org/TR/2019/CR-vc-data-model-20190725/

     [14] https://www.w3.org/TR/2019/CR-vc-data-model-20190725/

   stonematt: Nice job on the 2nd CR transition everyone.

   jonathan_holt: Just to clarify, the problem with the issuer in
   the JWT, the problem is with the iss property in the
   presentation?

   stonematt: Just to be clear, we processed that in the call last
   week, but we called it out in the CR transition... rest of JWT
   community hasn't had exposure to it, so we marked it as at
   risk.

   jonathan_holt: Ok, so that just didn't carry over to the JWT
   section?

   <rhiaro> scribe: rhiaro

Pull Requests

   Pull Requests

   stonematt: there is one PR out there related to terms, we've
   had discussion on that
   ... 706

   <stonematt> [15]https://github.com/w3c/vc-data-model/pull/706

     [15] https://github.com/w3c/vc-data-model/pull/706

   JoeAndrieu: I did get the edit in this morning that we had
   talked about to clarify that it's conformant checking the proof
   and checking the status
   ... I incorporated some feedback
   ... the design here is it should be editorial, clarifying
   what's already stated elsewhere
   ... this isn't new stuff

   manu: I think it's editorial and should go in the spec
   ... joe if it went in the spec then it resolves your concern
   about the defnition?

   JoeAndrieu: yeah

   <manu> [16]https://github.com/w3c/vc-data-model/pull/706/files

     [16] https://github.com/w3c/vc-data-model/pull/706/files

   manu: then we just listen for any objections
   ... here are the actual changes, if you could look while we're
   on the call

   stonematt: not closing the queue yet if you're still reading
   ... I would recommend if we get agreement on the call today
   we'll close it with the 7 day close?

   manu: yes, I can put ap roposal in to do that

   TallTed: it remains editorial, i'ts punctuation changes in the
   second sentence
   ... semicolons instead of commas

   manu: yep

   JoeAndrieu: I missed that, I'll get your semicolon version in
   there

   stonematt: any other comments?

   <manu> PROPOSAL: PR #706 addresses issue #705, which is
   non-normative and editorial. Merge after further editorial
   requests are made and close issue #705 after a 7 day close
   period.

   <TallTed> +1

   <stonematt> +1

   <manu> +1

   <ken> +1

   <deiu> +1

   <brent> +1

   <burn> +1

   <Dudley> +1

   <dlongley> +1

   <bigbluehat> +1

   <JoeAndrieu> +1

   <oliver> +1

   <jonathan_holt> +1

   <agropper> +1

   RESOLUTION: PR #706 addresses issue #705, which is
   non-normative and editorial. Merge after further editorial
   requests are made and close issue #705 after a 7 day close
   period.

   manu: once the updates are in the PR I'll merge

   JoeAndrieu: I did the updates with the semicolons

   <manu> [17]https://github.com/w3c/vc-data-model/issues/704

     [17] https://github.com/w3c/vc-data-model/issues/704

Issues

   <JoeAndrieu> put the "and" in

   <manu> [18]https://github.com/w3c/vc-data-model/issues/704

     [18] https://github.com/w3c/vc-data-model/issues/704

   manu: Ted, what are your thoughts? ken brent and markus have
   weighed in. Do you still want to do what we said last week or
   have any of the other commnets changed the way you want to
   approach this issue

   TallTed: everybody is okay with a warning, I'll live with a
   warning
   ... I think it needs to be pretty blatant and be clear that
   nothing that follows should be copied and pasted because it's
   gonna be bad

   manu: I'm happy to take a shot at it but do you want to do the
   PR? better chance we get it right if you write it

   TallTed: I'll not get to it quickly, faster as a reviewer

   manu: I'll put in a PR

   TallTed: shouldn't take many back and forth, thanks

   manu: I believe that is it
   ... those are the only two open issues, and all the PRs

   <burn> All non-deferred issues:
   [19]https://github.com/w3c/vc-data-model/issues?utf8=%E2%9C%93&
   q=is%3Aissue+is%3Aopen+-label%3A%22defer%22

     [19] https://github.com/w3c/vc-data-model/issues?utf8=✓&q=is:issue+is:open+-label:"defer"

   <manu> scribe: manu

Test Suite

   <burn> [20]https://github.com/w3c/vc-test-suite/issues

     [20] https://github.com/w3c/vc-test-suite/issues

   dmitriz: We have one PR that came in last week relating to JWT
   issue...

   <dmitriz> [21]https://github.com/w3c/vc-test-suite/pull/87

     [21] https://github.com/w3c/vc-test-suite/pull/87

   dmitriz: Just wanted to double check w/ Brent and Oliver...
   noticed back and forth conversation, looks ready to commit from
   my side... ready to be pulled in?

   brent: Looks good to me.

   dmitriz: Ok, I will merge it.
   ... This does mean that, just as a heads up, the next time
   libraries run the tests, other tests that haven't run yet will
   show up as untested. This is a new test that has been added,
   since other libs haven't run it, it'll show up as another test.
   ... Since this is a new test, old tests will not pass.

   oliver: How do you identify these tests?

   dmitriz: Based on the description.

   oliver: Did you merge the PR already?
   ... I made two changes to the other descriptions...

   dmitriz: Here's the infrastructure problem, given that we don't
   have new reports coming in, you can feel free to undo the
   change and we'll get that pulled in shortly.
   ... Most test suites, including node.js mocha, have no way to
   uniquely identify tests other than description. No way to
   assign unique identifier.

   oliver: I've communicated with others about the new tests.
   ... I don't mind not changing the description...

   dmitriz: Since the JWT section only affects the libraries that
   support it, and the rest can mark the section unsupported.

   <rhiaro> scribe: rhiaro

   <Zakim> manu, you wanted to ask everyone to rerun the test
   suite.

   manu: we know who all the implementers are we can tell them to
   rerun the test suite. We could just wipe out the old tests and
   say you won't show up if you don't, so we stop getting this bad
   data in the report
   ... it's not like we're asking a lot

   <DavidC> We have rerun the test suite and it all works now

   <TallTed> +1

   dmitriz: that would be fantastic

   <oliver_> +1

   <ken> +1

   <inserted> scribe: manu

   stonematt: Yes, let's do that, clean it up so the final test
   report looks good.

   dmitriz: So, Oliver, this PR is what you want the final
   descriptions to be.... right?

   oliver: Yes

   dmitriz: Andrei brings up a good point, when everyone reruns
   the tests, please in the comments of the PR, include a link to
   your implementation.
   ... The only way we identify the implementations, is by id of
   test report, we want to provide link to repo.

   oliver: What if people have private repos?

   dmitriz: Then note that it's private.

   stonematt: Does that mean it's just private?

   dmitriz: We were encouraging everyone to rerun the test suite
   anyway...

   andrei: It shouldn't be mandatory for people to submit, they
   should include it in email/report... we have an idea of which
   repos are implementing.

   <Zakim> manu, you wanted to request something post-WG of the
   test suite... and sections.

   <rhiaro> scribe: rhiaro

   manu: +1 to andrei, this has more to do with proper messaging
   around implementations. It would be good to have a link to each
   implementation
   ... we are missing metadata for the implementations

   <deiu> +1 to adding more metadata for implementations

   manu: eg. what language are they in, where is the repo, who is
   the maintainer, these sorts of reports typically contain all
   that information. Probably the right way to do it is to in the
   actual json test report have that metadata in there so we can
   automatically pull it
   ... it's really a you can't submit a test report or running the
   report fails because the metadata is not in there. dmitri it's
   up to you on how to collect it, let's try to automate it vs put
   in an email

   <oliver_> +1 automated

   manu: The second thing that typically happens, post wg, which
   is important for the ecosystem after this stuff is out there.
   We should have an automated test runner that runs against the
   test suite. The implementation report gets wrong after a short
   while, and stays wrong. We require the maintainers to provide
   updated test reports but eventually they get tired of rerunning
   them and stop posting new ones
   ... THe suggestion is to try and automate this through travis
   so we have a travis build process that checks out the source,
   builds it, and runs it against the tests uite for every
   implementation
   ... so over time when people do a serach for VC libraries
   through a search engine they should get a page that says here
   are all the implementaitons and here is how they're doing today
   based on the test suite so people can make the appropriate
   judgement on what's passing
   ... this is a decent bit of effort but it's not insurmountable.
   It's really something we should do to make sure the ecosystem
   stays healthy, so we don't have to ask people to keep rerunning
   things
   ... Two feature requests, one minor - make submitting the
   metadata part of the json file. Major - lets' find a way to
   configure travis so it reruns the test suite against the
   implementations. It's up to the implementers to provide the
   travis build script, if they don't then they won't be listed

   burn: I want to remind people this is not rquired in order for
   us to copmlete the process

   <manu> burn: Remind people that this is not required for us to
   complete the process... however, Manu is correct that this is
   very beneficial to the community.

   burn: its' a very beneficial thing to the community. If anyone
   has any concerns now is the time to raise it

   <scribe> scribe: manu

   burn: If people have concerns, they should raise them now. Manu
   is strongly encouraging us to consider this, but it's not
   required per the W3C Process.

   stonematt: Our implementation is a feature embedded in the
   product, not library for consumption, how do we participate in
   this in a reasonable way.

   dmitriz: I can make a suggestion about that.
   ... I think your case falls under the rubric of "the test suite
   is there to help you" rather than to inform features marked as
   at risk.
   ... If you are not intending people to choose your library

   stonematt: We want to be a part of the community that supports,
   but that's part of a broader capability, not a library for
   people to pick off of the shelf and go and implement.

   <burn> This is supposed to be testing the spec, not a
   certification test for implementations.

   dmitriz: The collection of metadata, and then automate test
   suite... yes, can start working on that. Step 0, while we're
   building that, just drop in a link to your repo in the PR for
   the test report submission. Then we'll automate it.

   dmitriz asks a question.

   burn: I think if no one objects, this is a good thing to do.
   This is not a requirement, but please do it, that's great.

   stonematt: Given the way we're planning to go to market with
   this, want to be on that list.

   jonathan_holt: The challenge is, it's a burden for people to
   know Travis, it's an added burden.
   ... I guess people that want to keep it private, repo exists,
   hash or verifiable credential, dogfood, it's out there, test
   suite ran against it, not divulging all details.

   <Zakim> manu, you wanted to suggest something that addresses
   that.

   <rhiaro> scribe: rhiaro

   manu: there's a way to address matt and jonathan's issues...
   matt's issue.. maybe it's possible for us to put a date, the
   last time the thing was run, or make it so that you could have
   an automated process where you do run it locally and upload it
   ... so basically there is a way matt for you to run this stuff
   internally and continuously update that you are conformant
   based on how the test suite changes. internally you're gonna
   want to do that anyway. Whatever the latest test suite is
   you're gonna want to make sure you're tracking
   ... so perhaps what we're talking about is an area where you
   can upload the latest thing and based on the latest thing it
   will generate the test report. i think that takes care of your
   concern wher eyou're knocked off the list because you don't
   have a public repo. Something to consider when putting this
   together.
   ... The other thing, which jonathan said, it's an added burden.
   I think people would help put it together. We'll do it for the
   js implementation. We'll do a travis automation thing. The only
   thing that ends up changing there is the build process for your
   library and what you run to generate the output file. It is
   probaly 3-4 lines that change in the infrastructure to do it
   will just be there, DB will build the infrastructure, the only
   thing that
   ... other people would have to do is change the 3 lines that
   build their software and run the test suite
   ... My hope is that addresses matt's and jonnycrunch's concerns

   stonematt: I think that makes sense generally
   ... as a point of understanding I'm assuming that if we go down
   a path like this and the test suite continues to evolve oever
   time to represent current thinking and evolution, that may be
   coming out of the CG, we'll have a test suite for data model
   1.0 and that's sort of indellible, and then there's test suite
   for 1.x and that would be part of this reference for the point
   of compliance where you are in the chain
   ... most recent test suite passed in the report?

   <manu> stonematt: I think that makes sense, generally. As a
   point of understanding, I expect that if we go down a path like
   this, and test suite evolved over time, that may be coming out
   of the CG, because the WG status is whatever it is, we will
   have a test suite for data model 1.0, and that's indelible, and
   then there is a test suite for 1.x to whatever, and that's a
   reference for point of compliance for where you are in the
   chain..

   manu: in general I think that's how it would work. Keep in mind
   that sometimes after you put out a REC people find corner cases
   and it's appropriate to still put those corner cases in the 1.0
   test suite because it shows you people implemented things
   differently even though the spec said to do it in a single way
   ... the tests ensure that the 1.0 implementations do the right
   thing for the corner cases. It's mroe continuous than that. The
   spec is definitely frozen but the test suite not necessarily
   because we find things after it goes out

   <scribe> scribe: manu

   stonematt: Ok, let's go through issues.

   [22]https://github.com/w3c/vc-test-suite/issues

     [22] https://github.com/w3c/vc-test-suite/issues

   dmitriz: We have six issues, add features/keys/legends and
   links to repos, those are in progress.
   ... The other three issues have to do with the context
   hosting...
   ... Those are in process?

   stonematt: Are all three of those the same thing? Waiting on
   W3C to do something?
   ... dmitri, are you going to have time to deal w/ top 3 in your
   domain?

   dmitriz: Yes

   stonematt: Next topic is general implementation topics

General Implementation Topics

   <Zakim> manu, you wanted to mention vc tool.

   <rhiaro> scribenick: rhiaro

   manu: we are currently working on a general tool to issue and
   verify VCs, just a commandline tool, we are planning to support
   3 different keying public/private key architectures, ed25519,
   the bitcoin/ethereum curve, the nsa backdoor curve... we should
   be able to have that out there by next week. meant primarily to
   be really simple, pick it up and use it within 5 minutes issue
   your first VC and verify your first VC, using a whole bunch..
   should work
   ... for sovrin, ethereum, btcr, veres1
   ... that will help people ensure there's some other
   implementation they can check against
   ... we are looking for comments on other useful things that
   tooling could do
   ... it doesn't support dids, it will in the future
   ... for right now the way it works is you generate a
   public/private key pair locally, publish the key to your github
   account as a gist
   ... then you can use that private key to issue a VC and we have
   an examples directory that has 2 credentials like now that
   w'ell expend to 50 in time. You can copypaste that, send it to
   someone, they can verify the credential
   ... we only support linked data proofs
   ... it's an open discussion whether or not we support jwt based
   proofs. We'd rather tnot but if a number of people want them we
   can look into it
   ... the backing implementation si vc-js, it's a fully
   conforming implementation
   ... just a heads up, hopefully that's helpful. We'd love PRs to
   upgrade it, modify it
   ... We don't know when we're putting DID support in there,
   sometime in the next couple of months

   <Zakim> brent, you wanted to give aries a shout out

   <manu> scribenick: manu

   oliver: What if we did an implementation of JWTs?

   manu: We'd pull that in, let me put you in touch with the
   developers so that they can tell you where to put the PR.

   <Zakim> jonathan_holt, you wanted to ask about decision logic
   for JWT vs LD-sig

   <brent> aries link:
   [23]https://www.hyperledger.org/projects/aries

     [23] https://www.hyperledger.org/projects/aries

   brent: Hyperledger Aries is also doing implementations, has
   strong community support, that work is ongoing...

   jonathan_holt: I'm trying to figure out decision logic via JWTs
   and LDP... how do I do that?

   dmitriz: I suggest looking at the type... can you clarify the
   question.

   jonathan_holt: The VC is valid JSON, to dig into content in
   JSON, to differentiate JWT vs. LDP... MIME Types might have
   been helpful.

   dmitriz: In that case, I'd suggest looking at the type... JWT
   documents require ...

   oliver: At which point do you want to make the decision? When
   you receive it, or when you decode the base64 blob?

   jonathan_holt: If it's base64, I'm assuming it's base64.

   oliver: A JWT must have 'vc' or 'vp' attribute.
   ... The header might contain a type field...
   ... Checking the 'vp' property is one way, we can chat about
   this during next chat.

   <Zakim> manu, you wanted to "content sniffing"

   <rhiaro> scribenick: rhiaro

   manu: we don't have mime types we can depend on yet, w're
   talking about content sniffing. You can't always trust the mime
   type. You have to back off to doing content sniffing. If you
   get a giant base64 encoded blob it's almost certainly not
   json-ld
   ... but to be safe you need to run a whole bunch of other
   things to make sure that you're correct
   ... for example I dont' think the top level jwt has an
   @context, json-ld must have an @context. You can sniff for
   @context, sniff for vc or vp existing, and if your eally want
   to be sure sniff for other things in a jwt like iss, jti,
   things of that nature. If you see those things and no @context
   you know it's a jwt

   <oliver_> +1 @context sniffing

   manu: this is something we shoould put into the implementation
   guidence
   ... let's make sure we put this in the implementation guidence
   ... how do you tell a vc that's encoded as a jwt vs one that's
   ldproofs or json-ld
   ... in general you should be safe by just sniffing for
   @context. Ifthat doesn't exist search for vc and vp, and if
   those do exist it's almost certainly a VC encoded as JWT

   jonathan_holt: context is still required isn't it?

   oliver_: but the context in a jwt is not at the top level, it's
   inside the vc or vp attribute

   <manu> oliver: @context is not at the top in a JWT...

   oliver_: base64 encoded header . payload . signature should be
   enough to distinguish between ldproofs and jwt specific ones
   ... the compact serialisation is really specific to jwt

   <manu> oliver: You could just detect compact serialization.

   manu: 99.99999% of the time I think that's true, I'm concerned
   about people encoding ... base64 does not include the .
   character.. so I'd be concerned about if someoen invented their
   own encoding mechanism and used . for separaters and based64
   encoded a bunch of information with .s and it wasn't a jwt,
   then the library would misunderstand that
   ... that's the only thing that's giving me heartburn, that
   would happen in the worst case, the lib passes all the test
   suites and everything then it's in production and it chokes on
   some data. It feels like a potential attack vector
   ... I'd rather operate on the base64 decoded data. Once you're
   out of base64 land there is some semantics and structure to the
   data you're expecting so at that point check @context, check
   the types, there are long series of checks you can od at that
   point. There more checks you do the more sure you can be it's a
   jwt or a jsonld document
   ... I'd suggest not doing the base64 detection thing but
   decoding then operating whatever checks on the decoded
   information

   jonathan_holt: cool, that's what I'm doing, on course

   <manu> jonathan_holt: Ok, cool, that's what I'm doing...
   thanks.

Implementation Guide

   <manu> scribenick: manu

   <stonematt> [24]https://github.com/w3c/vc-imp-guide

     [24] https://github.com/w3c/vc-imp-guide

   <deiu> [25]https://github.com/w3c/vc-imp-guide/pulls

     [25] https://github.com/w3c/vc-imp-guide/pulls

   <deiu> [26]https://github.com/w3c/vc-imp-guide/pull/21

     [26] https://github.com/w3c/vc-imp-guide/pull/21

   deiu: Short section on test suite and implementation report,
   links to those resources.
   ... approved by ted/brent, let's merge right now, any
   objections?

   manu: +1 to merge

   deiu: Merging.

   <deiu> [27]https://github.com/w3c/vc-imp-guide/pull/17

     [27] https://github.com/w3c/vc-imp-guide/pull/17

   deiu: We have PR #17, JSON Schema for VC...
   ... I don't have an opinion on this...
   ... I'll review...

   <deiu> [28]https://github.com/w3c/vc-imp-guide/pull/18

     [28] https://github.com/w3c/vc-imp-guide/pull/18

   jonathan_holt: Work in progress... will work on it.

   deiu: If you're happy with the changes, we can merge.
   ... We only need two reviewers... can we ask DavidC to take a
   look at it?

   <deiu> [29]https://github.com/w3c/vc-imp-guide/pull/19

     [29] https://github.com/w3c/vc-imp-guide/pull/19

   <DavidC> Sorry I cannot connect voice today (as I am using my
   mobile phone)

   <DavidC> which one do you want me to review 19 or 18

   <rhiaro> scribenick: rhiaro

   manu: what may be coming is a set of counter arguements. Each
   group should make the arguement for the proof mechanism in the
   way they want, and another section which potentially (may be a
   terrible idea) goes through the counter arguements for the
   other section. Then we have all the argeuemetnsf or and against
   documented. The way it is done now is it muddies who is arguing
   for what
   ... I do'nt think it's a big deal, just a matter of keeping the
   sections separate and keeping the arguements separate so people
   can revise and make things more accurate
   ... I think we'll go back and forth a couple of times over a
   month and come to a resolution

   <manu> scribenick: manu

   stonematt: Andrei, just for the group, that was our decision in
   Barcelona, have different sections, our expectation is that
   they're standalone sections.

   <brent> +1

   <deiu> [30]https://github.com/w3c/vc-imp-guide/issues

     [30] https://github.com/w3c/vc-imp-guide/issues

   andrei: We have a few issues I'd like to discuss... nothing has
   changed since last time we brought this up... dlongley is
   assigned to a bunch of issues... I guess, as long as we don't
   see PRs, there isn't a lot to discuss.
   ... We'll just wait for PRs to be opened.

   dlongley: Some time might clear up next week to get to them,
   just status report, all these people are really busy.

   andrei: Yes, understandable, and that's it.

Use Cases

   stonematt: Anything we want to say here, Joe?

   <DavidC> I will review
   [31]https://github.com/w3c/vc-imp-guide/pull/18 and give you my
   comments. Will take a few days though. My first task is to
   write a VC profile for mobile driving licenses

     [31] https://github.com/w3c/vc-imp-guide/pull/18

   JoeAndrieu: Obviously, we're winding down the work here...
   there is a delicate balance between add new stuff and just wrap
   it up, please get your comments in so we can get them
   incorporated in most effective way.

   <DavidC> Mobile driving licenses profile will suggest JWT as
   the ISO draft already uses JWT

   ken: Ned and I have put together some use cases for IoT type
   devices, they need to be modified to fit style/direction for
   use case document, would like to see 1-2 examples that meets w/
   community approval. We can get that in some time this week.

   JoeAndrieu: Ok, we will look for that.

   stonematt: DavidC, are you going to provide input on Use Cases?

   <DavidC> I was not proposing to provide any input on use cases

   burn: Please work on implementation guide!

   stonematt: Thanks everyone!

Summary of Action Items

Summary of Resolutions

    1. [32]PR #706 addresses issue #705, which is non-normative
       and editorial. Merge after further editorial requests are
       made and close issue #705 after a 7 day close period.

   [End of minutes]
     __________________________________________________________


    Minutes formatted by David Booth's [33]scribe.perl version
    1.152 ([34]CVS log)
    $Date: 2019/08/05 18:18:45 $

     [33] http://dev.w3.org/cvsweb/~checkout~/2002/scribe/scribedoc.htm
     [34] http://dev.w3.org/cvsweb/2002/scribe/

Received on Monday, 5 August 2019 18:20:30 UTC