Applying KERI to General Evidence Problems - Daniel Hardman

KERICONF26 Day 2 · 39:45

0:00 Daniel Hardman | Applying KERI to General Evidence Problems | KERI Conference 2026

0:03 Okidoke. I suppose everybody's pretty

0:04 tired at this point, but I hope that

0:07 I can keep your attention and keep

0:10 you awake through this presentation.

0:13 This is about Dossiers.

0:18 I think that this is actually one of the

0:19 more profound topics that this

0:22 community could be ..,

0:27 thought leaders and world experts on

0:30 there's a lot of untapped potential in

0:32 this and I don't think we realize

0:36 how cool that potential is. So, I hope I

0:39 can convince you and get you guys

0:40 excited about this.

0:42 This topic represents

0:50 kind of the synthesis of a bunch of

0:52 stuff that I've been working on in the

0:54 telco space, but it really is not a

0:57 telco topic.

0:59 I remember when I first heard Sam talk

1:02 about ACDCs circa 2019.

1:07 He came to a Trust over IP working

1:11 group meeting and started talking

1:13 about ACDC theory and Sam mentioned

1:18 This phrase that ACDCs are a

1:21 verifiable data graph and at the time I

1:24 thought oh that's cool and it didn't

1:26 really like impinge on my consciousness

1:28 that deeply but I have since come to

1:32 feel that's actually quite a

1:34 profound statement and there's more to

1:36 it than we give it credit for and we

1:38 could use this to solve some problems

1:40 that people can't solve elsewhere.

1:43 So let me describe the problem as I

1:47 encountered it in telco.

1:51 I came to telco from a background in

1:54 verifiable credentials.

1:56 And in verifiable credentials the

1:58 assumption is that you prove something

2:00 to a verifier and you the party who is

2:03 proving something are having a direct

2:05 interaction with the verifier.

2:08 Right? the verifier sends you a proof

2:09 request or something and the proof

2:12 request arrives at your wallet and

2:14 you get you know it gets your attention

2:17 and you make a decision and then the

2:18 proof flows back the other way. Well,

2:21 guess what? That does not work in telco,

2:25 at least in the use cases I was

2:26 exploring, because for one thing, we

2:30 wanted it to be the case that the party

2:32 that emitted a communication and signed

2:35 something

2:37 Could have that thing that they're

2:39 trying to prove verified all along the

2:42 way.

2:45 Not only that, the party on the other

2:47 side doesn't have a channel to go back

2:49 yet.

2:52 So we needed basically one-way

2:54 multiple-party verification

2:59 and not only that I needed verification

3:03 to be possible

3:04 Completely out of the out of band as

3:07 well like having an auditor or a

3:09 regulator pull a transcript of the

3:12 conversation and verify it a day later a

3:16 year later or whatever to see if we were

3:19 taking the right actions.

3:21 And again that's not really what

3:25 verifiable credentials are built to do.

3:28 This is all setting aside the more

3:30 fundamental problems which are, you

3:32 know, verifiable credentials have

3:34 mutable schemas and all those other

3:36 things. But anyway, if you set all that

3:39 aside, I still couldn't solve the

3:40 problem, right?

3:44 The other thing that became very

3:46 obvious is that we needed a much richer

3:49 evidence model than the typical

3:54 verifiable credential would provide.

3:58 Almost 100% of the verifiable credential

4:02 workflows that you see demoed or

4:04 discussed

4:05 anywhere out in the community are single

4:08 credential workflows:

4:11 "Show me your driver's license" or "show me

4:13 some subset of the driver's license,"

4:15 right? Or "show me your passport" or "show

4:18 me your COVID thing" or whatever. But

4:21 there are all kinds of scenarios in real

4:24 life every day that call for very rich

4:28 collections of evidence.

4:32 I listed a few up here and I put

4:34 them under kind of headings because I

4:36 see these patterns showing up. So,

4:39 there's all kinds of processes in the

4:41 real world that are evidenceoriented

4:43 that deal with applications, right?

4:46 You're going to apply for a grant.

4:48 You're going to apply to go to college.

4:51 You're going to submit a regulatory

4:54 filing. You're going to apply for a

4:57 job. All of these are processes. They're

5:00 typically multi-step processes where a

5:02 large body of evidence has to be

5:04 assembled and submitted.

5:07 That's not the same pattern as this nice

5:10 tidy request response

5:13 Of verifiable credentials.

5:17 There's also research activities that

5:19 happen. you're conducting a scientific

5:22 study and you want to compile a whole

5:24 bunch of evidence

5:26 and if you'd like to solve the

5:28 problems that we have in the world of

5:30 academic research with a

5:32 nonreproducibility, you'd like that

5:34 evidence that you compile to be

5:36 verifiable, right?

5:38 Investigative journalism,

5:41 Criminal investigations,

5:45 all of these fall into this category

5:47 as well. And notice here, the evidence

5:51 that you're putting in a lot of these

5:53 things accretes over time. It's not just

5:56 evidence that you just have in one

5:59 issuance event and then you're done.

6:03 When you're trying to document

6:06 something, maybe you're trying to prove

6:08 Some things about the reasons why

6:11 your company was valued a particular way

6:13 to regulators or investors, or you're

6:16 trying to capture the results of a

6:17 forensic accounting audit. Or you're

6:21 trying to submit documents for a

6:23 court case,

6:25 A court filing. All of these are

6:28 cases where evidence is quite important

6:30 and verifiability is quite important.

6:32 But the simple trust triangle that we

6:35 talk about in the verifiable credentials

6:37 world is really quite different from

6:40 what the patterns of behavior are.

6:44 Another thing that became really

6:47 clear to me is in realworld hardcore

6:52 ambitious use cases.

6:55 Lifespans of evidence,

6:58 is a big deal.

7:00 It's surprising .., now that

7:03 I've become sensitized to it,

7:05 it's almost shocking to me that this is

7:07 never said, but you'll hear somebody

7:09 analyzing you know can we prove 'xyz'

7:13 with let's lsay with

7:16 certificates or with credentials or

7:20 whatever and they'll go through a whole

7:22 deep analysis about whether it can be

7:24 proved

7:26 and they'll completely omit the fact

7:28 that they've got four different kinds of

7:32 evidence that they're trying to prove

7:33 with. And the evidence has different

7:36 lifespans,

7:37 right? So, one piece of evidence that

7:39 they're building from has a year-long

7:41 lifespan.

7:42 Another piece of evidence has a 20

7:44 minute lifespan.

7:46 And when you combine those two, what's

7:48 the combined lifespan of the thing? 20

7:50 minutes. But nobody ever analyzes it

7:53 that way. And so, they're the very naive

7:55 views about lifespan of evidence.

8:00 And you know, I just kind of

8:02 randomly picked it: Three different

8:05 categories. You could group evidence

8:07 into very different lifespan categories

8:09 than these ones I picked. But the

8:11 point is we need to start thinking about

8:14 the lifespan of evidence a little bit

8:15 more carefully. And if we do, we're

8:18 going to realize that the simple way

8:21 that we've been trying to solve certain

8:22 problems is really quite inadequate.

8:29 Another thing is that the purpose of

8:31 the different constituent pieces of

8:34 evidence that you might assemble in a

8:36 collection could be quite different and

8:38 have very different assumptions.

8:40 You don't see this when you're only

8:42 doing kind of .., it's dismissive

8:47 for me to say "Mickey Mouse"

8:48 demonstrations, but when you're doing

8:51 demonstrations are really quite

8:52 simplistic and you're using one

8:54 credential and you're saying I can

8:55 either show you all of my driver's

8:57 license or part of it, you don't realize

9:00 this, but as soon as you start

9:02 assembling

9:04 Evidence to solve a real world

9:06 problem, you find that the different

9:09 kinds of evidence that you're grouping

9:11 together introduce some interesting

9:13 complexity. So in this particular slide,

9:16 I'm imagining what's the evidence that a

9:19 loan officer has to assemble to get you

9:22 qualified for a mortgage. Okay? And I

9:25 just profiled four

9:27 different kinds. So one piece of

9:29 evidence that a loan officer has to

9:31 assemble is your last three paystubs.

9:34 Right? Now, how those last three pay

9:37 stubs are stubs are verified is pretty

9:40 different from some of the other things

9:41 up here. And how long those paystubs can

9:44 be useful is different from some of the

9:46 other things up here and so forth. So,

9:48 that's the last three paystubs. And the

9:51 purpose of putting it together in this

9:53 collection is, you're trying

9:56 to prove that the person has a certain

9:58 kind of income. And that means (my red

10:00 text there) these have to be three

10:02 consecutive paystubs and they have to be

10:05 recent and you know all these other

10:06 rules apply to that right then how about

10:09 proof of employment that's a whole

10:11 different kind of evidence

10:14 and proof of employment is probably you

10:17 want quite recent proof of

10:21 employment maybe a different recency

10:23 standard than you have to meet with the

10:25 paystubs

10:27 and the kind of credential you're

10:29 using to prove this is quite different

10:31 as well and it has a different issuer,

10:35 right?

10:37 How about the credit report? Yet

10:40 another issuer,

10:42 yet another standard, yet another

10:44 governance, and so forth. If you're really

10:48 trying to solve a serious use case

10:51 with rich evidence,

10:54 what you have to model about that

10:56 evidence and prove about that

10:59 evidence to achieve what Sam said years

11:02 ago about, you know, a verifiable data

11:04 graph is really quite sophisticated.

11:06 It's not as simple as "Oh, show

11:08 somebody a credential" and you're done.

11:14 You also kind of need to know what's

11:16 the purpose of the collection of the

11:18 evidence you're putting together. You're

11:20 not just stuffing evidence in a drawer

11:21 somewhere so you can call upon it. In

11:24 the case of the loan, going back to

11:26 that, all of these pieces of evidence

11:28 that I was talking about are going

11:31 to be evaluated at funding.

11:34 That's the time of the

11:36 evaluation or the verification. Now,

11:39 actually, in the case of a mortgage,

11:41 they're pre-evaluated once or twice

11:43 before that and re-evaluated at funding.

11:46 After funding, they don't get evaluated

11:48 anymore. So, you have to kind of know

11:50 when you're building up a collection of

11:51 evidence what you're building it up for

11:53 and when you plan to have it be

11:56 verified.

11:58 Ideally, you want to be able to verify

11:59 it forever, but in the context of the

12:02 event that was important. So,

12:03 you're never going to ask the question,

12:05 would I give somebody this loan today, a

12:08 year after they got their mortgage, but

12:10 you might go back a year after they got

12:12 their mortgage, and say, were they

12:14 qualified for this loan when they got

12:15 it, which is a different question.

12:22 As we wrestled with issues like

12:26 this, and I used the mortgage example

12:28 here just so that you wouldn't think I'm

12:29 only thinking about telco, but you know,

12:32 again, it was telco that was forcing me

12:34 to think about this. People were asking,

12:36 well, how can I prove and then fill in

12:39 the blank with a bunch of telco related

12:41 questions and I was grappling with all

12:43 of these issues. And this is where I

12:44 kind of ended up. And I feel like I

12:46 kind of came back to "Oh, KERI has a

12:49 superpower that I wasn't giving enough

12:51 credit to before."

12:53 So first of all, we started

12:56 calling this construct of a bunch of

12:58 evidence that you've assembled a

13:00 Dossier, for lack of a better word, seem

13:03 to resonate with people. I could have

13:05 called it a file, but that's so generic

13:06 that I just picked dossier.

13:10 You notice that I'm using these

13:12 icons here to represent the fact that

13:14 it's a collection of different evidence

13:16 types

13:19 and you have some kind of a process

13:21 that feeds all this evidence in

13:24 and then you go through this curation

13:27 process.

13:30 You basically get the evidence to the

13:32 point where you like it. This is like

13:34 going to the loan officer and

13:37 saying, "Okay, I've got all my documents

13:39 in. Now you can evaluate and decide

13:41 whether to give me a loan." Right?

13:44 Now you actually might have more than

13:45 one of those points. You might evaluate

13:47 it one time or seven times. Or you

13:50 could evaluate it for a very long time

13:52 to come. But you need to know what your

13:55 plans are about that.

13:59 The idea here is that this dossier is

14:03 intended to be shown to somebody but not

14:07 presented in the sense of a

14:10 verifiable presentation.

14:13 You don't have to prove

14:15 that you are the issuee of everything in

14:19 the dossier.

14:21 Let's say it's an

14:23 investigative journalism dossier.

14:26 you're not proving

14:28 entitlements with this thing

14:29 but you have to prove that all

14:32 of these interviews that happened with

14:34 certain sources really took place or

14:36 whatever. So, it's not the simple model

14:39 that you get with verifiable credentials

14:40 where you're saying here's the thing and

14:42 I'm proving it for myself on behalf of

14:44 myself and I'm entitled to something.

14:51 Once you have a dossier, this

14:54 is the other thing that I became very

14:57 comfortable with in the telco context.

15:00 The world's telco systems are built

15:03 to move very small amounts of

15:07 metadata.

15:09 So let's take the case of SMS. When you

15:12 send an SMS message, in theory, you're

15:14 sending 140 characters or less.

15:16 Nowadays, phones will send stuff over

15:19 RCS instead of SMS. And so you can

15:21 exceed that limit. But the original S

15:24 SNPP protocol wanted to move 140

15:27 character or less things. And now

15:31 imagine that you were trying to move the

15:34 equivalent of let's say a verifiable

15:36 credential or even an ACDC in the

15:39 headers of that.

15:44 You have headers that are like five

15:46 times as big as the message itself.

15:48 That's not very effective.

15:51 What we can do though, is we can

15:54 derive, and this is part of KERI's

15:56 superpower, we can derive from a

15:58 dossier. If it's really a verifiable

15:59 data graph, that means it has a SAID.

16:04 Which means, I can just send the SAID in

16:06 this really light form and somebody on

16:10 the other side who understands that it's

16:12 a SAID can say, "Oh, I bet there's a

16:14 whole bunch of data behind that." And go

16:16 fetch it and it works.

16:20 And we can make that a little bit more

16:21 convenient by turning the set into a

16:23 OOBI.

16:27 Basically now I can take something

16:29 and here I wrote 'token,' this is a word

16:32 that I don't like a lot, I kind of

16:34 roll my eyes when people talk about

16:35 security and tokens. But in some

16:39 contexts that's the way security is

16:40 enforced. So in the case of

16:44 voice calls, for example, every VOIP

16:47 system in the world carries a JWT

16:50 with every .., well it can, it's built to

16:53 carry a JWT with every SIP invite. So

16:57 when you pull out your phone and you

17:00 dial a phone number and you hit the

17:02 dial button, your phone is causing a SIP

17:05 invite, which is a small message to

17:07 flow over the world, the

17:10 internet. And typically it uses

17:15 the real internet for parts of the

17:17 transmission and then it flows over

17:19 specialized telco circuits for other

17:22 parts of the conversation. But anyway,

17:26 somehow your SIP invite ends up on the

17:28 other side and that's when the phone

17:29 starts ringing is because the SIP invite

17:31 arrived at the other location.

17:34 That SIP invite looks very much like an

17:36 HTTP request and it has headers. The SIP

17:40 protocol and the HTTP protocol are

17:42 kissing cousins. They look so similar.

17:45 They even to the point where 400 range

17:47 errors in SIP are 400 range errors in

17:49 HTTP and everything

17:51 - Intentionally?

17:52 Yeah, they very deliberately copied

17:54 HTTP when they built SIP. So all that

17:58 you're doing really with that

18:01 infrastructure, if you want to decorate

18:03 your call with evidence, is you're

18:06 putting a header ..,

18:09 and think of it like an HTTP header,

18:11 It's almost identical. It says identity

18:13 colon space and then a bunch of stuff

18:16 that's B64 encoded. And that B64

18:19 encoding is

18:25 that B64 encoding is the JWT that

18:28 I'm talking about.

18:30 And that JWT can have a field in it, a

18:33 claim that is the URL to your evidence.

18:38 That's basically all we're doing.

18:41 But this same technique can be applied

18:44 well outside of telco.

18:47 And that's why I'm interested in this.

18:48 So you can derive any number of tokens

18:50 that keep referring back to the same

18:52 piece of evidence. And that's what we're

18:54 doing over and over again when you make

18:56 phone calls. If you're Microsoft and

18:58 you're making outbound calls,

19:01 every outbound call that you make

19:03 carries a hyperlink back to the same

19:04 evidence, but a new signature, right?

19:08 There's a new signature on the JWT,

19:10 but the evidence behind it, the stable

19:13 evidence doesn't change.

19:17 So what does a dossier actually

19:21 look like? For those of you who

19:23 are ACDC people, this is a

19:26 trivially simplified version of an

19:28 ACDC, I have JSON and in it I have

19:33 a field called A and a field called E.

19:37 You know what those mean, attributes and

19:39 edges. All that a dossier is really

19:43 is a particular kind of ACDC or maybe I

19:47 should say a flavor of ACDC

19:49 where the A fields are used to carry

19:54 curation metadata like who built and

19:57 assembled this thing when was it

20:00 assembled under what governance rules

20:02 was it assembled what are the

20:03 assumptions about how it's going to be

20:04 used that kind of stuff but none of the

20:07 credential content

20:10 is in the A field.

20:12 All of the credentials are then in

20:14 edges.

20:16 So, you're just saying

20:18 "I assembled .., I'm applying for a

20:20 loan. Here's my mortgage

20:22 qualification packet." That's all up

20:25 here. And then every individual piece of

20:28 evidence that I submitted is down in the

20:30 edges.

20:34 The edges just point to another ACDC.

20:36 That's right. The edges just point to

20:38 another ACDC.

20:40 And this is where we get verifiable data

20:42 graphs. Yeah.

20:48 There's a lot of different kinds of

20:53 evidence that you might want to put in a

20:55 verifiable data graph. The obvious

20:58 one is credentials. All of us think

21:00 about credentials a lot. But in fact,

21:03 the more I have worked on this, the more

21:05 I think these other ones on the left

21:07 side of this slide may be more

21:09 compelling in some ways. I want to put

21:12 A signed PDF in my evidence. I want

21:16 to put an MP3 file in my evidence

21:18 because I'm a journalist and I

21:19 interviewed somebody. I want to put

21:22 a movie in there because I captured some

21:24 video. I want to put an AutoCAD

21:27 drawing in there. I mean anything you

21:29 can imagine we can embed

21:33 In an ACDC simply by using the

21:37 attachment mechanism

21:40 and that's quite important. Some of

21:42 these might be so big that we don't

21:44 actually want to put them in an ACDC.

21:47 We just want to put a hash. So like a

21:50 genome, your full DNA. I don't think

21:53 you'd want to put a 40 gigabyte genome

21:55 inside of an ACDC, but you could

21:57 certainly put a hash of your 40 gigabyte

22:00 genome inside the ACDC along with a URL

22:03 of where to find it or something like

22:05 that.

22:07 Anyway, so these two techniques,

22:10 embedding and wrapping are what I'm

22:12 contrasting on this slide. The idea with

22:14 embedding is you have data that's not

22:16 credential oriented, but it's still data

22:19 that's important.

22:21 Scientific readings you know, all

22:23 these other examples I went through. So,

22:25 you want your assembly of evidence to

22:27 reference it.

22:30 Let's suppose you're an NTSB crash

22:32 scene investigator and a plane crashed

22:35 and now you're trying to

22:37 take photographs of all these different

22:38 parts of the plane and how the wreckage

22:41 was spread out and all this other stuff.

22:43 you would be embedding JPEGs

22:47 or hashes of JPEGs in your dossier when

22:50 you're filing your accident report.

22:55 Wrapping is relevant when the thing

22:59 that you want to put in your verifiable

23:02 data graph is another form of verifiable

23:04 data, but it's what I would call foreign

23:08 to the ACDC world. So if you have an

23:12 X.509 certificate and you want to put it

23:14 in your verifiable data graph or if you

23:18 have a W3C verifiable credential and you

23:20 want to put it in your data graph, you

23:22 can do that. The tech now you can do it

23:25 by doing an embedding but I don't think

23:27 that's a good idea and I'll explain why

23:28 in a second. So what I would recommend

23:30 is this wrapping. What you're

23:32 essentially doing is you're verifying

23:33 the evidence with its native stack

23:37 and then you're issuing a new ACDC that

23:39 says on such and such a date I so and so

23:43 verified this credential and it was

23:46 legit on that date and you're making an

23:49 explicit claim one way or the other

23:51 about whether you take any

23:52 responsibility for revocation status.

23:55 You can say, "I explicitly disclaim any

23:57 responsibility for telling you ..,

24:00 in the ACDC land, I'm not going to

24:02 reflect the revocation status. So all

24:04 I'm telling you is it was valid on this

24:06 date." The end. Or you could say, "No,

24:09 I'm a really super fancy service and

24:11 this kind of evidence is really

24:12 important and I will just [tell you],

24:15 within one day of latency, I'll tell you

24:17 if the other thing gets revoked, I'll

24:19 revoke the ACDC wrapper." That's

24:22 kind of up to the person, but the

24:23 wrapping is the name of the technique

24:25 that I'm talking about. And I could

24:28 imagine doing this because it builds a

24:30 very nice bridge. You can stick an ISO

24:32 mobile driver's license in this. You can

24:34 stick a verifiable credential W3C

24:39 generation 1 or generation 2. You can

24:42 stick in a nonredit presentation in

24:43 that, whatever you want.

24:51 I anticipated that at this

24:54 conference there might be some people

24:55 here who know a lot more about

24:58 verifiable presentations than I do and

25:01 that they might be asking, well, isn't

25:02 this the same thing as a verifiable

25:04 presentation

25:07 In

25:09 VC land?

25:11 And the answer is it does have some

25:14 similarities. That top line of this

25:15 table, both of these are

25:19 cryptographically verifiable containers

25:21 of evidence.

25:24 But there are some profound differences

25:26 too. And these differences lead to a

25:29 very different set of addressable use

25:31 cases.

25:33 Without belaboring the point too

25:36 much, I'll simply say that

25:42 the life cycle is really

25:46 crucial here. A verifiable presentation

25:48 is intended to be verified when it's

25:50 generated and then it's thrown away.

25:52 It's ephemeral.

25:55 A dossier is not right. You don't throw

25:57 it away. Yes, you make a decision about

26:00 whether to fund the loan for the

26:02 mortgage on a particular date, but I

26:05 guarantee every one of you that has a

26:06 mortgage your loan officer has a

26:08 file somewhere in their back room or

26:10 whatever that has all the data that you

26:12 ever submitted and they can look it up

26:14 whenever they want because that's

26:16 important data to keep on file.

26:19 And the same thing would be true if

26:20 we're talking about investigative

26:22 journalism. If we're talking about crash

26:24 scene investigations or if we're talking

26:27 in my case about the reputation of

26:30 Microsoft and proof that it can use the

26:32 world's telco infrastructure in a

26:34 particular way, it needs to be on file

26:36 and kept.

26:42 The other line that I want to just call

26:45 out here is the bottom one.

26:47 Really the meaning of these is a little

26:49 bit different.

26:50 In the case of a dossier, what you're

26:53 saying as the person who assembles

26:55 the dossier is here's a bunch of data

26:58 that I put together that I'm signing

27:01 over it, but I'm not necessarily

27:03 asserting that everything in this data

27:05 is something I believe. Like if I'm an

27:08 investigative journalist, I could well

27:10 have interviewed a bunch of people who

27:11 lied to me on camera or while I

27:14 was taking notes. And I want to document

27:17 that they lied to me. And I'm not

27:18 necessarily asserting that they told me

27:20 the truth just because I signed over it.

27:22 I'm asserting when I sign that I was

27:26 the collector of this body of

27:28 evidence and collectively it represents

27:30 some purpose that's described in the

27:32 metadata about that dossier.

27:35 Right? So maybe I'm assembling all of

27:38 the evidence from somebody who lied

27:40 to me because I want to, you know, take

27:42 him to court later. So it could be

27:45 full of lies. Everything that I put in

27:46 the dossier on purpose.

27:49 The again the metadata of the dossier

27:51 tells you the purpose. Whereas a

27:54 verifiable presentation is always about

27:57 proving enough to get me the

27:58 entitlement.

28:04 I feel like I'm just talking and

28:06 talking. Everybody's listening quietly.

28:08 I want to shake the room up and do

28:10 something, but I don't know what to do.

28:11 Anybody have any questions? Richard.

28:14 - When we talk about a verifiable

28:16 presentation, the protocol includes the

28:18 ability to make claims across the

28:21 different credentials ination.

28:23 Does the dossier I don't know if it's

28:25 going to be a protocol. We haven't got

28:26 to that part of the conversation, but

28:28 does it include the ability to say this

28:30 name on this one is supposed to

28:32 reference name on that one?

28:34 But it doesn't do that because of

28:35 the dossier. It does that because that's

28:37 a native feature of ACDCs. When you

28:39 declare an edge in an ACDC, you can say

28:42 this edge must be related to that edge

28:45 in the following way. There's an

28:46 operator that you can declare the

28:48 dossier spec by the way to kind of

28:52 prefigure your question about protocols.

28:55 A dossier is not really a protocol, but

28:57 it is a data format. It's a

29:00 specialized form of ACDC and there's

29:02 enough kind of extra rules that we

29:05 want to attach to a dossier I think that

29:07 It needs a spec. So we're writing

29:10 a spec about it. And the spec right now

29:14 introduces a couple of new operators

29:17 to enrich what edges can say about

29:22 one another and things like that. Sam, I

29:24 saw your hand go up.

29:26 Oh, Phil.

29:27 Yeah, two questions. This is one I think

29:28 is an obvious yes, but can a dossier

29:30 point to another dossier?

29:31 Yeah, for sure.

29:32 And then I thought the use of an OOBI in

29:35 the SIP header was an elegant way to

29:40 AID itself. Have we considered doing

29:42 that in edges either in the dossier or

29:45 in the ACDCs?

29:46 I have not thought about that.

29:49 But as soon as you said it, I was

29:50 like, wow, why didn't I think of that?

29:52 That's a really great idea. I love that.

29:54 What was your idea first?

29:57 Edges are actually a block. You can

30:01 add as many properties in an edge as you

30:04 want. So it's just a matter of saying

30:06 you're going to add an UI to an edge.

30:09 Okay.

30:10 Cool.

30:11 This is an example of the kind of thing

30:13 that the dossier spec needs to say is

30:15 here's a really useful way to, you know,

30:17 make this more powerful. Yeah.

30:29 Since your voice is quiet, why don't you use the [mic]?

30:31 Anyway,

30:32 no, but he's only recording his

30:34 thing.

30:35 Yeah, for the camera.

30:37 The gent speaking to his name.

30:39 Yeah, I got

30:41 I got to talk. I'll be No, don't pick up

30:43 my sound.

30:44 Okay, pick me up.

30:47 It wasn't that I said verifiable data

30:49 graph

30:51 20 years ago or 2020 or whatever it

30:54 was just came out of nowhere. It is

30:58 comes out of the theory of automated

31:00 reasoning. Automated reasoning you build

31:06 verifiable data graphs with aggregation

31:09 operators. The only difference is

31:12 that you're trying to do often live

31:15 control of something where you're saying

31:18 I've got 50 sensors, I've got

31:23 data process, I got a database, I got a

31:25 map, I got all of this stuff and I have

31:27 to make a live decision with the best

31:30 available data to me at the time that I

31:32 do it. And all the data is aggregated

31:35 differently. So you have a whole family

31:36 of aggregation operators and you just

31:38 have connections between all of your

31:40 sensors and you know sensors

31:43 aggregate to aggregate and

31:45 then and it just looks like this big

31:47 complex graph and all I had to do was

31:49 say "Well, if I want to make a

31:51 trust decision that's no different than

31:54 any other automated reasoning." So we

31:56 should be able to map ACDCs directly to

31:59 how you actually do the processing.

32:02 You shouldn't be building some

32:03 artificial thing that is

32:06 divorced from the actual way you make

32:08 you make decisions. And so ACDCs

32:11 model how you actually make

32:13 automated decisions.

32:15 And that resonates for me because of

32:18 that earlier slide that I was

32:20 showing about how to make a decision for

32:21 a mortgage. You're actually .., this

32:24 is the real way that the real world

32:25 works, right? You're assembling a bunch

32:27 of evidence and evaluating it and .., yeah.

32:31 Go ahead. – So very different approach to

32:34 all of this. But from the legal

32:36 standpoint, we're now starting to move

32:39 to modeling where the fair

32:44 information practices are actually going

32:46 to be mandated. Your original

32:50 definitions

32:52 solved a number of problems because the

32:54 the data collected is the minimal

32:58 data necessary to fulfill the purpose.

33:00 it is a specific purpose that even

33:04 though the information may be kept in

33:06 the dossier, it isn't ending up in some

33:09 giant data lake that then can be used

33:12 for other purposes later on. And I

33:15 think the other piece of this

33:18 that's really elegant is that if you

33:24 have, in government, social

33:27 programs that require three or four

33:29 agencies to interact right now they

33:33 claim they need a data lake.

33:36 So this allows you to decentralize

33:39 that none of them is in effect the

33:42 steward. they are just the steward of

33:44 the particular piece of it that they

33:46 need to integrate for the programmatic

33:49 utilization.

33:50 I love it. And this actually segways

33:54 directly to what I was going to say

33:55 next. Traditional verifiable

34:00 credentials and in fact most ACDC use

34:02 cases that we think about assume a

34:06 single issuer,

34:08 right? But one of the things we're

34:10 introducing in the dossier spec is the

34:13 idea of joint issuance.

34:16 And the idea here is not that you

34:20 have joint issuers all using a single

34:22 multi-IG even. You just have joint

34:24 issuers. They're all individual parties

34:27 representing themselves with different

34:29 AIDs.

34:30 But in the ACDC, in the dossier,

34:33 you can say this dossier takes effect as

34:36 soon as I have five of the following 18

34:40 people who've signed.

34:43 And it's just a completely asynchronous

34:45 thing. And I put a picture of the

34:47 signing of the Declaration of

34:48 Independence up here because you had a

34:50 bunch of people in a room. But actually,

34:51 in some ways, that picture is bad

34:53 because it suggests everybody got

34:54 together right at the same time. In

34:57 fact, what we're suggesting here is you

34:59 don't have to do that.

35:00 You can have one party sign and

35:04 then a week later in a different place

35:06 under different circumstances you can

35:08 have another party sign and another

35:09 party and so forth. Sam,

35:11 – I just want to clarify you're using sign

35:14 as a euphemism for actually

35:18 anchoring into the registry that is

35:21 of stuff like that but it's the same

35:24 thing. You're anchoring the same

35:26 thing with the different AID, but

35:29 everything else is the same. And so it's

35:31 a joint issue because everybody issued

35:33 the same facts.

35:37 Yes.

35:39 In order to verify, we would need

35:42 the verifier to do a little bit of

35:44 work that it doesn't currently do,

35:46 right? It's going to have to go look up

35:47 signatures in five different places or

35:49 something. Unless this bottom line an

35:52 optional finalizer can say, "Look, I've

35:54 already done all of that work. Here's a

35:57 a thing in my KEL that just lists

35:59 everybody that already signed and you

36:00 can go verify it." So, that would

36:02 be a nice thing. But I really like this

36:04 model. I think that joint issuance is

36:06 going to create a lot of useful

36:09 flexibility for us. You can also have

36:11 models, by the way, that aren't M ofN

36:13 models. You can just say this is a

36:15 petition and as soon as we get a

36:17 thousand signatures on it, whatever.

36:20 There's no N in it, right? It's just

36:23 this is the threshold is M, you know. So

36:26 anyway, there's some really neat things

36:28 about that and I can see how there's

36:30 certain legal behaviors that

36:33 this facilitates very nicely.

36:36 Now I wanted to say something else.

36:39 This is another way that some of the

36:41 superpowers of ACDCs come into play

36:44 in the telco use case that I had. I had

36:47 a case where I wanted parties all along

36:50 a chain to be able to verify but the

36:52 amount of data that they needed to see

36:54 varied.

36:56 Okay. A regulator needs to see more

37:00 and an intermediary on a transmission

37:02 chain needs to see less.

37:05 And the beauty of it is I can have a

37:07 dossier that is sparse for one

37:09 audience and full for another and it's

37:11 the same dossier and they can both refer

37:13 to it the same way

37:16 which means you have the option of

37:18 assembling this dossier but having many

37:20 different variations on the verifiable

37:22 data graph that expose lots or little

37:26 amounts of what's needed.

37:29 So in telco when you have the rule

37:31 about lawful intercept for example law

37:34 enforcement agencies require that

37:36 they be able to see certain things about

37:39 Your communications. Anywhere

37:41 where there's a jurisdiction like that I

37:43 can solve that problem with a nice rich

37:45 dossier view and anywhere where I can

37:48 show less I will do it.

37:52 So are you using selective disclosure to

37:54 mean the category of controlled

37:56 disclosure or just the specifically

38:00 selective disclosure as opposed to any

38:02 of the other variations of disclosure?

38:05 Well, the original title of this slide

38:07 When I wrote it a month ago, it said

38:09 graduated disclosure.

38:11 And then I thought, oh, I could play

38:14 around with this. Oh, I could stick it,

38:15 you know, I could take contractually

38:17 protected disclosure. There's all these

38:18 variations on it. I don't know which

38:21 is the exact frame that you want to

38:24 use in a particular context. The point

38:27 though is that I can suppress data or I

38:30 can show data using variations

38:34 that all have the same root hash and

38:37 I don't know what you would call that

38:40 control this thing is called partial

38:43 disclosure but essentially it is

38:45 creating a nonbinary Merkle tree of the

38:49 data so that the fully compact is

38:52 essentially the root and then he's just

38:54 tracing it out, but the hashes

38:56 along the way are generated. So you

38:59 can do a proof of conclusion the same

39:01 way you would a Merkle tree just by

39:04 walking down and then expanding it

39:06 at that point saying, "Oh, here's what

39:07 it is." So, it's a non-binary

39:12 hash graph that you can do some sort of

39:15 booster.

39:16 So, if I had to use a different

39:18 word, I'd call it contextual display.

39:20 Okay.

39:22 That's a good one.

39:24 Okay. I'm basically done with my

39:26 presentation at this point. This is

39:29 this is where you can get more

39:31 information. The spec is currently at

39:33 version 0.6.

39:35 We'd love to have people contribute or

39:37 if you don't feel like contributing

39:38 because you're way too busy like me.

39:41 I get it. But at least keep track of it.

39:43 I'd love to have some people just

39:46 show up and fix a typo so that I can at

39:48 least put more names on the spec besides

39:50 me.