[MINUTES] CCG Incubation and Promotion 2025-06-04

CCG Incubation and Promotion Meeting Summary - 2025/06/04

*Topics Covered:*

   -

   *Community Updates:* Discussion deferred to the Verifiable Credential
   Working Group (VCWG) regarding concerns raised about "phone home"
   mechanisms in verifiable credentials, in light of the No Phone Home website
   initiative. The Geneva meeting in early July was also noted as a potential
   venue for further discussion.
   -

   *Verifiable Credential (VC) Barcodes:*
   - Several pull requests were reviewed, including one requiring merge
      conflict resolution.
      - Updates to test vectors reflecting the newly registered Seabore LD
      tag (CB1D) were merged. This involved significant changes due to
delays in
      the ITF registration process. Legacy mode was documented for backward
      compatibility.
   -

   *Seabore LD Compression Table Registry:*
   - A new, unopinionated registry for Seabore LD compression tables was
      presented. This aims to manage the potential scale of custom
tables through
      a first-come, first-served system with automated PR merging and package
      generation for different programming languages. Dynamic loading of
      compression tables at runtime was also discussed.
   -

   *Respec Updates:*
   - The respec-vc specification was updated to use the latest Seabore LD
      version. New binary and QR code tabs were added to generate and display
      compressed, digitally signed credentials.
   -

   *Credential Refresh:*
   - Discussion on credential refresh versus embedding refresh information
      was postponed to a future meeting.

*Key Points:*

   - The group is actively preparing several specifications for handover to
   the VCWG.
   - The delay in Seabore LD tag registration significantly impacted the VC
   barcode specification.
   - A new registry aims to address the scalability challenges of managing
   custom Seabore LD compression tables.
   - Updated tooling, including the JSON-LD playground and respec-vc,
   improves the development and testing of verifiable credentials.
   - The "phone home" discussion will be addressed by the VCWG.
   - The next CCG meeting will be skipped due to travel, resuming the
   following week.

Text:
https://meet.w3c-ccg.org/archives/w3c-ccg-ccg-incubation-and-promotion-2025-06-04.md

Video:
https://meet.w3c-ccg.org/archives/w3c-ccg-ccg-incubation-and-promotion-2025-06-04.mp4
*CCG Incubation and Promotion - 2025/06/04 10:58 EDT - Transcript*
*Attendees*

Benjamin Young, Dmitri Zagidulin, Hiroyuki Sano, John's Notetaker, Kayode
Ezike, Manu Sporny, Parth Bhatt, Phillip Long, Ted Thibodeau Jr, Will
Abramson
*Transcript*

Hiroyuki Sano: Hi my son. Good morning.

Manu Sporny: Hi, Sonosan. How are you?

Hiroyuki Sano: Hi. Thank you. How are you?

Manu Sporny: I'm looking forward to a somewhat relaxing summer. I don't
know. We'll see if that actually happens, but so far so good. Hey, Phil.

Phillip Long: I want…

Phillip Long: what you're drinking.

Manu Sporny: Exactly. Phil. How you doing? Hey, Ted.

Phillip Long: I'm doing well.

Manu Sporny: We will get started in about 30 seconds. Let me pull up the
agenda. Today is going to be a little shorter call. I need to drop about 20
minutes before the top of the hour.

Manu Sporny: All right, let's go ahead and get started. this is the
incubation and work item promotion call for the CCG. we are just going over
a number of work items and slowly working through them to make sure that
they're ready for the verifiable credential working group to pick up. the
agenda today is going to focus on processing pull requests for verifiable
credential barcodes. we will talk about the new seabore LD compression
table registry which is related to the verifiable credential barcode stuff.

Manu Sporny: we will provide some updates that we've made to respspec again
based on the new seabore LD stuff and maybe have a discussion around
credential VCs versus embedding refresh information. I think that's largely
it for the call today. are there any other updates or changes to the
agenda? anything else we need to cover today? If not, we can go ahead and
get started. Again, a reminder, I think we're only going to spend about 35
minutes on the call and then we'll have to leave. So, a little bit of a
shorter call today. okay.

Manu Sporny: let's go ahead and get started then. any community updates of
relevance? Anything else that we need to a community update related. I've
got one item which is that as folks have seen there's a good healthy
discussion on the no phone home website that went up that ACLU and
Electronic Frontier Foundation and Brave Software and a number of other
large organizations Epic signed on for and as well as a number of other
people in the community.

Manu Sporny: we had a discussion briefly on the VC API call yesterday on
where what should we do should we do anything about that as everyone knows
verifiable credentials don't have the same kind of phone home mechanism
that MDL has built into it on purpose that was definitely something that we
didn't want to do however there are also things that could be viewed as
phone home such as retrieving any resource that's listed in a verifiable
credential.

Manu Sporny: a picture and a common image a logo could all be used as
tracking vectors you are contacting the issuer or someone that's working
with the issuer when you do that same thing for status list things like
that and so there was a question on should we say anything about it based
on the conversation I think most of the folks on that call felt that the
right place to have that discussion is on the CCG mailing list and the
verifiable credential working group. we have raised an issue on the VC data
model to have that discussion when that group comes back online after the
summer. and also made a decision that the VC API group probably doesn't
have anything to say or doesn't need to say anything there. It'll be
handled by I think the same kind of question could be raised in this group.
00:05:00

Manu Sporny: I don't know if anyone has an opinion, but I think the general
thought is we will defer to BCWG. So would anyone object to that path like
we're just going to let the VCWG handle that discussion? I don't know if
any of the specs that we're working on are really impacted by that. And
then Phil in please vocalize Phil because the minutes doesn't Yeah.

Phillip Long: No, I'll be happy. objections for I think it's appropriate
for the VC workg group to do that. their public comments about this.

Manu Sporny: I appreciate that. and a reminder to everyone that whatever we
type into the chat is not saved and so that stuff gets lost. great. thanks
Phil.

Manu Sporny: Any other comments on Mhm.

Phillip Long: The only other thing I don't know whether to what extent it
pertains at all to this, but there is the Geneva meeting coming up at the
beginning of July where a whole bunch of this stuff is all being I mean the
agenda is far too packed from the look of it but there's Ira is going to be
making statements about where their progress and things like that. So
that's just a mess.

Manu Sporny: Right. Yeah. And I think second day is an unconference and I
expect it to Yeah.

Manu Sporny: But I expect, this to come up during the unconference,
sessions. All That sounds good. Any other community updates? Anything else
that we should be aware of? All so we're going to look at some pull
requests for VC barcodes and the new Cabore LD compression table registry
and respspec next.

Phillip Long: Yeah, I do too.

Manu Sporny: As a reminder to everyone, we are tracking everything that
we're incubating on this issue 250 in the CCG community. we have said, VC
barcodes and core LD and render method are pretty much ready to be handed
over to VCWG and we continue to work on these other specifications.
although I think as of last week should probably move confidence method
over as well. let me check. I don't think yeah, this one was ready. So, Why
don't I just go ahead and make that edit here while we're here? confidence
method is ready to go. quantum safe crypto suites, we made some good
progress on that last week in the, data integrity group.

Manu Sporny: VC API we're making good progress triaging and pull requests
continue to go in there. VPR we need to triage. but that's after we do the
triage and get the loweffort PRs in. That should be ready to go. I haven't
heard from David and Isaac on the verifiable issuers and verifiers stuff.
but that needs a little more work before we move that forward. I have yet
to request support for the VC wireless thing. It's two weeks delayed. Just
haven't been able to get to it. And we'll talk a bit about credential
refresh today. but we are making, progress on these things at a decent
clip. I think by the time BCWG comes back to life, we'll have a number of
specs ready to go for them. So that's good. Okay.

Manu Sporny: So, today we're going to look at some poll requests for VC
barcodes. I think the majority of these, there's one here. So, Ted, I
looked at your PR and was, getting ready to pull it in, but, there are all
kinds of merge conflicts. and apologies.

Manu Sporny: It's been almost a year since you put this and there's quite a
decent bit of stuff that I don't want to lose, but would require you to
resolve.

Ted Thibodeau Jr: Yeah, that happens if you just tag it for result complex.
I'll figure out whether it makes sense to do that or create a new PR.

Manu Sporny: Thank Sorry, I know that's extra work for you. but not all
conflicts here or slide to raise PR. Okay. Thanks Ted.
00:10:00

Manu Sporny: appreciate you taking a look at all right, so that's one of
The other PR is an update to the test vectors that Wes did and these are
largely so just to give some background on what's been happening. a year
ago we put in a request for our Seabour LD tags to be registered at ITF.
they had to ping the designated expert I think upwards of 36 times over the
course of the year to get them to respond. We were not getting a response.

Manu Sporny: and then as software goes these systems got built and deployed
and all that kind of stuff and then they had to reassign get a new set of
designated experts and when the new folks were put in place they were
basically like we don't think you should have this tag range that you're
requesting which threw us into a whole bunch of negotiations with them and
resulted in them basically rejecting the tag range that we wanted. what we
then had to do was pick a single f** and do it in a way that was backwards
compatible with the stuff that had already gone out to production and
created a whole bunch of headache for everyone. But we have done that and
they have now finally I believe approved the tag that we registered.

Manu Sporny: this is why we are not fond of reg at least I am not fond of
these types of registries because the decisions made tend to be debatably
arbitrary. okay so what we had to do then is we had to change all the
CoreLD algorithms and pick a different header for the Cabor the tag is now
CB1D for Seabore LD which is nice. and we have a bunch of other stuff that
happened. But as a result, we had to regenerate every single one of the
test vectors in the specification and add a bunch of text on legacy mode
and things like that. We don't expect anyone's going to have to implement
legacy mode.

Manu Sporny: but because things leaked out into production because we've
been delayed in getting into the standards process we felt it necessary to
document stuff. So these are just PDF 417 barcodes the things that go on
the back of driver's licenses mostly in the US that now contain the new
updated Seabore LD stuff. Same thing for the employment authorization
document and the demonstrations. and then the test vectors if you'll see
the CB1D this D9 tag in Seabore LD says this is a tagged Seabore object
meaning The type is Seabore LD.

Manu Sporny: so CB1D Core LD is the header. And so basically if you see
this in the front of a binary string, there's a very high likelihood that
it's a Core LD payload. And then there's some other header information that
goes in here that we describe. and so all of the test vectors, had to be
updated there. and then we added a section on version and how you process
it and that sort of thing. So that's all this thing is it just updates the
test vectors for the latest Seabore LD implementation which we really hope
is the final one before we put it into the working group.

Manu Sporny: and of course this is done in a way so that if we have to
change everything in the future we can do that. It just becomes painful to
the implementers. okay. I think that's largely it for this PR. I don't know
if we really need any reviews on the PR. it's just a pretty editorial
manual update to it. would there be any objections on merging this on the
call? Does anyone here want to take a deeper look at this before we do the
merge?
00:15:00

Manu Sporny: Okay, I'm going to take that as a no objections and then I
will just go ahead and merge this so that the spec will reflect the latest
implementation and the latest things that have been registered at INA. I
think it's up. I don't remember if yeah, so there's our tag value 51,997
which is the CPLD one. so that's registered which is nice. only took a year
and a half.

Manu Sporny: All right. I think that's it for VC barcodes. does anyone have
any other comments or business that they'd like to discuss with the barcode
spec? Benjamin, I don't know if it's worth noting the updates you've done
to the JSONLDD playground. I know I'm putting you on the spot, but I don't
know if you want to share the Seaborld support. Yep. And you might be
muted, Benjamin.

Benjamin Young: I was and saying all kinds of great things. so let me Happy
to do this. we just merged the playground next or whatever we're calling
it. this morning and we'll start linking to it. We haven't displaced the
old playground yet to be clear. the new one needs a couple more practical
features like the codes, the query parameters and fragment identifiers for
passing in u things from the open and playground buttons on specifications.
That's not implemented on this new one yet. So once that is done, that
should be the last remaining feature.

Benjamin Young: but it's merged into main now and we'll link to it and
happy to drop this link if folks want to kick the tires. Please do. And
file issues. so you wanted to see the Seabor LD stuff. So over here there's
a little robot guy that shows the default compression ratio and the hex
value of the seabboard LVD using just the base compression setup. There's
no type table or any additional mapping done in this case to optimize the
compression.

Benjamin Young: But with this playground foundation in place, we can
continue to work that direction where there'll be more handles in the
Probably something similar like what you see on compacted where you have a
side pane where you can do more stuff. will likely enable something like
that when you click on the seabboard LD tab and you can, update those
things to get higher compression and watch your compression change. So
that's what it does currently. guideline. Oops,…

Manu Sporny: Yeah, that's great. Wonderful work, Benjamin. I wanted to
might as well click on the YAML LD thing. That was a nice surprise, at
least to me. yep.

Benjamin Young: there we go.

Manu Sporny: Which is, nice to see. I mean, it's nice and clean and the
nice thing is it's kind of like you I don't want to say you get it for
free, but I mean, it's kind of a, fairly easy translation and demonstrates
kind of the power of hey, look, we're using, one kind of technology and we
can put it into all these other serialization formats and YAML's nicer to
look at and Seabore LD is super compact, but she even gives

Manu Sporny: gives us the capability of even having the possibility of
cramming this stuff down into a QR code or a driver's license. and then the
signature stuff is the same across all of them. we don't have to keep
reinventing the signature mechanism or the selective disclosure mechanism
to go between all these different great job Benjamin on updating the
playground with these new features.

Benjamin Young: Thanks. couple things we're headed towards are YAML LD and
Seabore LD being input formats which will then I think sort of seal the
deal about what you were saying monu sort of one system able to move around
in the same sort of data space. And then the other feature is getting more
examples. These ones are antique. They're eight years old or something.
00:20:00

Benjamin Young: So we'll probably have collections of examples pulling in
VCs and activity streams and things like that for different communities web
of things that are using JSONLD. So promote the wider family and then also
give them much easier way to play with their stuff in the JLD playground.

Manu Sporny: I'm wondering, as everyone can tell, Benjamin and I haven't
been able to talk about this yet, so might as well on an open call. I'm
wondering VC playground would be a nice place to pull some…

Manu Sporny: because we already have example credentials in there. were you
thinking of that being one of the places we pull stuff in from?

Benjamin Young: So there's the VC examples repo that sits separate from The
playground consumes So, the JSONLDD playground would do the same load all
or some of those examples from that same repo and then we'd have the
different communities like activity streams and whoever create similar sort
of repos of publish your examples and sort of provide a manifest that
points to the examples with descriptions or whatever and then we'll just
pull them either into this at production time or dynamic

Benjamin Young:

Benjamin Young: dynamically probably we'll do it at publication time and
then re republish the playground when new examples are released because
this whole thing now is a static site generated website so there's no
database or anything running behind it to be hacked no PHP or

Manu Sporny: Great. Thank you for showing us kind of the update there.
super exciting stuff. and of course, as everyone knows, the whole reason
we're doing this is to provide better tooling for the ecosystem. It, make
it easier to create these objects and see what they look like in different
modes and things of that nature. okay. let's see what was next on our
agenda. Seorld compression table registry. So this kind of goes on top of
what Benjamin was talking about providing better tooling. So one of the
things when we compress these barcode things the way you get maximum
compression is you use a compression table.

Manu Sporny: So there's basic seabboard LD compression which it will do its
best but it doesn't know how to compress did web URL or a verification
method URL but you can feed it a compression table with well-known values
and then it will use those well-known values to compress everything even
further. one again just to remind everyone that one of the things we're
trying to get to is we're trying to get every single key value pair in
here. We're trying to maximize reducing all those down to one bite or two
bite values at most, right? and we can do that with compression tables.
that's the whole thing that allows this use case to happen here is the
semantic compression that we're doing with the compression tables.

Manu Sporny: the downside is that the application has to know about the
compression table and so if everybody in the world is using different
compression tables there can be I think 18 quadrillion compression tables
is the current limit that we have. enough compression tables for everyone
to create their hundreds of thousands of compression tables per human being
on the planet. probably more and the question is how do you discover those
compression tables? How do you pull them in? that kind of stuff that then
you have this big decentralized, problem. and of course, a registry is one
way to solve that. But this registry is an unopinionated registry. It's
just like first serve and you pick a number that you want and then you get
your own compression table that you can create based on that.

Manu Sporny: So let's see so this is the compression table for the
verifiable credential barcodes example specification right it's 100 that's
the ID number and then we say you in the context if you see the credentials
v2 URL compress it down to this number and if you see the VC barcodes URL
in the context compress it down to this number and so on so forth or if you
see a property that has a type of cryptosweet string. So if something's
digitally signed and you see this text so again it's just text compress it
down to the value of one or…
00:25:00

Ted Thibodeau Jr: Just pointing the things on the screen. We're not seeing
them.

Manu Sporny: two. So you're not seeing these. I I totally failed to share.
Okay sorry I was pointing at all kinds of things.

Manu Sporny: going back this is the thing we're trying to compress down
into single bite values and then you can use a compression table to do it.
There's this thing called the seabore LD registry. so this thing exists
I'll provide the link there and then in the tables directory you see this
is the compression table for the verifiable credential barcodes
specification you've got some header information like what kind of domain
does the compression table it's just kind of like use case domain who's the
contact and this

Manu Sporny: can also put GitHub handles in here. We're going to automate
it so that it's first serve. You register it, you've got a list of owners,
and if this same GitHub handle is updating this compression table. It's an
appendon table. then the dream and we're very close to it is that the PR is
lint checked and merged. The end of story. So we don't even have to have
maintainers for the vast majority of PRs that'll go against the registry.
the mode is the seabore LD processor mode. All we have is default for now.
you say whether this is a provisional regist or not. Provisional
registrations may be deleted in the future. They may go away to just let
everyone know how stable it is. And then there are compression tables for
context.

Manu Sporny: They're compression tables for data types and they're also
compression tables for URLs. So if we look at California DMV for their
physical identification documents these are the compression tables for the
URLs that are going to be used specifically verification methods and method
status list URLs. So this thing the seabboard LD registry whenever you add
a new entry it compiles the registry contents. So that's this thing here
and then it gives you the registry entry number the description of the
entry and then who's in charge of the entry and then you can click on each
entry to look at the contents of that entry.

Manu Sporny: the other thing that we're doing here tables I think there's
an index file that contains absolutely everything. And the next step for
the seabore LD registry is to automatically build library packages for
different programming languages. So we will autogenerate an npm package
that you can npm install beside your seabore processor that will
automatically have all of the tables that you want in there. so this is
kind of the solution for how are we going to manage this thing at scale
with tens of thousands of different development teams wanting their own
custom compression tables.

Manu Sporny: there will be a registry if they want to their compression
table to be known globally and be globally interoperable they just add it
here and then software packages build as a result of that. so that's the
current plan for kind of autob building everything from this registry. we
have the spec autogeneration stuff working now. we do not have all the npm
python packages building automatically rust what have you building
automatically but we are capable of doing that sometime soon and the other
thing and this don't want to do this in production but you can also
dynamically load the compression tables off of this URL so that your
compressor and decompressor always have the latest compression tables
00:30:00

Manu Sporny: So you can do that at runtime. okay all that to say that we
have core LD registry the other update is that we have also updated respec
VC to the latest version of seabore LD. so now in any specification at W3C
or any specification that uses respspec there's an extension to do
verifiable credential things. we were largely using to generate examples.
So you can have an example here that's got comments that are marked up.

Manu Sporny: You can sign it with ECDSA and EDDDSA and the selective
disclosure suite and BBS. So you can do all those signatures. Now there are
two extra tabs here. Binary which will take your initial credential. It'll
do a digital signature on it and then it will compress it to Seabore LD. So
we can see that this is the Seabore LD payload. it'll tell you how much
compression was achieved. So, this one's not much, 40% compression, but it
gets, a 760 byt payload down to about 460 bytes. it will show you the
payload that was input and then it will show you seabor diagnostic mode,
the types of compression it was able to achieve. So, this is using the
default compression which doesn't have compression tables for the context
URLs.

Manu Sporny: it doesn't have compression tables for the issuer URL or the
type so those things don't get automatically compressed but the keywords do
so this at context gets compressed down into a single bite value this is
issuer this is type and so on and so forth you can map all these things
back and forth so there's the seabore diagnostic mode and then

Manu Sporny: We can also show what the QR code for that looks like. So this
is the entire alumni of credential with a digital signature on it
compressed to core LD and then expressed as a R code here. so this is the
contents of the QR code. So VC1 says it's a verifiable credential QR code
format it's multibbase enco R means it's base 45 encoded because of weird
thing weirdities with QR codes and how they work. Base 45 is fairly optimal
for encoding binary into the QR code. And so this entire thing is the
Seabore LD payload compressed as encoded in base 45.

Manu Sporny: and then if you scan this, this is again one of the tooling
things that we're hoping to do, is add a scanner to the playground. So if
you scan this, it'll input it in as, Seabore LD. It'll decode it and you'll
get back to the original JSON LD signed object. so that's The QR code and
binary tabs are new feature. and you can add that to any VC example. I
think we have one specifically down here. This is driver's license encoded
seabore LD. This one gets really good 50% compression. which is, down here.
but again, this is the default compression. We can actually do a bit better
than what's being done by default here.

Manu Sporny: and then the driver's license as a digitally signed QR code. I
think that's largely it for the respect updates. the final thing is kind of
a discussion around credential refresh versus embedding refresh
information. I'll note we only have about 4 minutes left before we needed
to drop. So, I think what we'll do is push that discussion off to the week
after we won't have a meeting next week. I'm traveling won't be able to run
the meeting. So all the CCG meetings that I run or cancel for next week.
and we'll meet again the following week. okay, I think that's largely it
for the call today.

Manu Sporny: anything else folks want to announce anything new happening?
anything we should be aware of happening next week or the week after? If
not, then that's our call for today. thanks everyone. have a wonderful rest
of your week and as I mentioned, no call next week, but we'll start up the
following week and start that discussion off with credential refresh and
see what other things came up on our incubation items. All right, that's it
everyone. thank you. Have a great day. and we'll talk again soon. Bye.
Meeting ended after 00:35:48 👋

*This editable transcript was computer generated and might contain errors.
People can also change the text after it was created.*

Received on Wednesday, 4 June 2025 22:03:17 UTC