0:00 Samuel Smith | The Future of KERI | KERI Conference 2026
0:02 So I guess I talked too much
0:06 yesterday,
0:08 so I guess I'm gonna be swallowing the
0:11 mic today.
0:12 Anyway, like to thank everybody for
0:15 showing up. Today we're going to
0:18 talk about a little bit about the
0:20 future. So, I did the past yesterday,
0:23 the present. Today's a little bit about
0:24 the future, a little bit about the past.
0:27 And I have a little teaser there: Saving
0:29 the internet. I mean, the reason I
0:32 started doing identity was I wanted to
0:34 save the internet. I wanted to fix the
0:36 broken internet. And I didn't realize I
0:38 had to work on identity to do
0:40 that. And I know other people probably
0:43 knew that better than I did, but I
0:46 didn't realize that. So, one of the
0:48 things that the future of the KERI
0:50 suite is about more and more
0:53 applications that use ACDCs,
0:56 right? And I gave my talk
1:01 last night, talked a little bit about
1:04 what an ACDC is. So I just want to
1:06 review it a little bit. An ACDC is this
1:09 generic
1:11 graph structure for representing data.
1:13 And when we represent data in graphs, we
1:15 get all kinds of useful properties. And
1:18 so we've got a vertex and edges. And we
1:21 can use those to do all sorts of fun
1:23 things. But the most important thing
1:25 that ACDCs provide is perpetually
1:27 verifiable issuances. That's the hard
1:30 problem it solved, that wasn't solved
1:31 before. And now that we have perpetually
1:34 verifiable issuances, we can do all
1:36 sorts of things we couldn't have done
1:37 before.
1:39 Each fragment is separately
1:41 authenticatable.
1:43 So that provides something that a normal
1:45 graph data structure doesn't do. Lots of
1:48 people have graph data structures, but
1:50 the whole data structure source from the
1:52 same source. Where with ACDCs, every
1:55 every node in the graph can have a
1:57 different source. So you can use them
1:59 for a lot of different things that you
2:00 couldn't use a graph data structure for.
2:03 And these are the things that you
2:05 can do with it. Delegable, attenuable,
2:08 aggrable, revocable,
2:10 transferable, authority. And so we have
2:13 some talks today. Phil's going to be
2:15 talking both Phils: Phil [Feairheller] and
2:18 Phil Windley about authorizations. We're
2:21 going to talk about
2:23 some of the things that now
2:25 that we have solved identity, [plus] we solved
2:28 basic issuances, now we can start to do
2:31 more complicated things with ACDCs and
2:33 so I see the future people are going to
2:35 find more and more things to use ACDCs
2:38 for. So the idea is: with ACDCs we
2:43 can have high-fidelity modeling of real
2:46 world authority structures. Can you guys
2:48 hear me? I can't tell. Okay.
2:52 I can't hear myself because normally I
2:54 talk really loud and my whole head
2:56 resonates with my own sound. So it
2:58 sounds like nothing's happening. So,
3:01 one of the things that we can do with
3:03 ACDCs is we can bridge. KERI and
3:07 ACDCs solve the cross trust domain
3:10 transfer problem in an elegant way and
3:13 that's a hard problem to solve.
3:16 Recursive Privilege Escalation Attacks (RPEA)
3:19 are a
3:22 Negative
3:24 consequence
3:26 of using identity systems that don't
3:30 solve the cross trust domain transfer
3:32 problem. Instead, what they do is just
3:35 increase the size of the one trust
3:36 domain because since you can't bridge
3:39 trust domains, make your trust domain
3:41 bigger. And that means now that you can
3:42 do recursive privilege escalation
3:44 attacks. If you keep your trust domains
3:47 small and bridge them properly, then you
3:50 don't have recursive privilege
3:51 escalation attacks. And so with KERI,
3:53 we can solve that problem. So the idea
3:57 is
3:59 that we have two trust domains and we
4:02 use ACDCs
4:04 to move data trust authority between
4:07 those domains. (That was a cool effect,
4:09 right?)
4:11 So perpetual identity leads to
4:14 perpetual issuances means, and I'm going
4:17 to steal Daniel Hardman's phrase,
4:19 lossless trust transfer.
4:21 We don't lose trust when we use carrying
4:24 ACDCs to move trust across trust
4:26 domains.
4:29 So if I have ephemeral identity, then I
4:31 only get ephemeral in issuances. That
4:34 means every time I do trust
4:36 transfer, it's lossy. And that's what
4:39 we're living with right now in the
4:40 internet.
4:42 So now that I can have a lossless conveyor
4:45 of trust, I can also use it to bridge
4:49 ephemeral trust domains and the bridge
4:52 doesn't lose anything. Normally when you
4:55 take cables and connect them together,
4:57 every connection is lossy. And so the
5:00 longer the connections, the less
5:02 signal you get. But if I have really
5:04 high fidelity connections, then I lose
5:06 it in other places. And so this is this
5:09 allows us to take any application that's
5:12 currently using the current stuff,
5:16 and we can bridge it better. So a
5:20 lot of the discussions people have is
5:22 well I want to use ACDC with whatever it
5:25 is
5:27 you know the some existing system. Well,
5:30 it's okay for us to use it to bridge
5:32 those existing systems as long as we
5:34 understand that we don't corrupt the
5:38 ACDCs with lossy stuff, right? And so
5:41 I already mentioned that the whole
5:43 idea is we can remove this is
5:46 like the bane [curse] of current security.
5:49 This thing recursive privilege
5:50 escalation attack vulnerabilities. It's
5:53 it's horrible and we can mitigate
5:56 that.
5:58 So, when we talk
6:00 about end-to-end in the
6:03 the world we talk about edges but we
6:06 also talk about ends and in KERI
6:08 they're pretty much the same thing
6:10 because each AID is its own identity
6:12 provider we're using keys at the edge.
6:15 The edge is where authentication happens.
6:24 There are no third party IdPs, no relying parties,
6:27 no trusted intermediaries.
6:29 So we remove a whole layer of
6:31 infrastructure. It just goes away. Now
6:34 if somebody says you got to have it, you
6:35 got to have a relying party. You got
6:37 to have an OAuth server. Fine, Leave it
6:40 in there. But don't use it to expand its
6:43 trust domain. Go. Well, you want to
6:45 bridge these two trust domains. Don't
6:47 bridge them with more lossy stuff.
6:49 Bridge them with KERI and ACDCs.
6:53 So, in KERI an end-to-end and an edge to
6:57 edge, they mean the same thing, right?
7:01 The middle doesn't matter, the middle
7:03 is just a store and forward network.
7:07 So that leads us to the next thing
7:10 that's going to happen in KERI more
7:12 and more and this is authorization.
7:15 What do I mean by that? Well I got this
7:18 word down here. I love making
7:20 anacronyms. I know somebody
7:22 said that's problem for people to
7:24 understand but you guys
7:26 are the tech people. Edge
7:28 Verifiable Access Control (EVAC). What does
7:31 that mean?
7:33 Well,
7:35 I'm defining authorization
7:38 to access a resource is granted by the
7:41 resource controller. So I'm going to say
7:42 there's some authority that has
7:44 authority over a resource and if some
7:47 other entity wants to get access to that
7:50 resource that authority controller
7:52 grants that access and that access comes
7:55 through an authorization.
7:58 So each authority is itself an edge in
8:01 KERI with respect to other authorities
8:05 resources because it's all edge-to-edge
8:07 end-to-end.
8:10 So each authority can authorize access
8:12 by any other edge to its resources via
8:14 an ACDC. That's the whole point of
8:17 delegable aggrable authority, is that
8:22 you grant authority to somebody and now
8:24 they can access your resources
8:27 because you're the
8:28 authority who can grant that access.
8:30 Each issuer in ACDC graph is potentially
8:33 both a resource authority and an edge.
8:37 Mutually authenticated edge accessor and
8:40 resource authority prevent impersonation
8:42 attacks. A lot of the impersonation
8:45 attacks come because there's a
8:47 a misconfiguration
8:50 of how those two talk with respect
8:54 to each other. You look at how VPNs ..,
8:57 A common VPN problem is that I
9:01 have a VPN and I give an edge access
9:04 through the VPN, but the VPN isn't
9:07 mutually authenticating in a strong way.
9:11 So, the edge thinks that it's talking to
9:13 the VPN, but it's not. It's talking to
9:15 an impersonation of the VPN. So, when it
9:18 grants access, it thinks, "Oh,
9:20 okay, I can now share my other
9:23 credentials to what's ever on the other
9:25 side of the VPN." But I'm not on
9:27 the VPN I thought I was. Because I don't
9:29 have strong mutual authentication. I've
9:31 got a shared secret and that
9:34 means now that I'm going to disclose to
9:36 that other end my credentials to
9:39 get further into the system and I
9:42 rinse and repeat, right? But if we
9:45 have strong mutual authentication at
9:47 every edge, then there is no recursive
9:51 privilege escalation attack.
9:54 So, we basically do
9:59 this with ACDCs. So, I'm going to show
10:01 you how we can use an
10:04 ACDC. This is a proposal.
10:07 I haven't written a white paper on it
10:08 yet. I started writing a white paper on
10:10 it, but I haven't finished published it
10:12 yet of how we can just repurpose ACDCs
10:15 as generic authorizations.
10:18 So if you so there those of you
10:21 who aren't familiar with an ACDC, these
10:24 are the top level fields: version, type, its SAID,
10:27 a UUID, the issuer, the ACDC, the
10:31 registry for the ACDC state, the schema
10:34 section, attribute, edge, and rule section.
10:36 So, there's two registries here:
10:43 There's an Issuance Registry
10:46 and we can now add a Usage Registry and
10:49 the way we manage that is in the
10:51 attribute section. The attribute section
10:54 itself has a SAID, a UUID the issue AID
10:59 and it also can have a registry
11:01 identifier and then a resource map. The
11:04 resource map over here looks like
11:07 object capabilities. You basically have
11:09 a route and then a set of capabilities.
11:12 So it's a list of things like read,
11:13 write, execute, whatever it is. Standard
11:16 standard access control. All we do is we
11:19 just augment ACDCs to have a resource
11:22 list and we can implement any
11:26 sort of authorization
11:28 system. But what we get are some
11:31 properties that are
11:32 difficult to get in other ways, without
11:34 ACDCs.
11:36 So this stuff is actually in the
11:39 spec but I'm pretty sure almost nobody's
11:41 read it. Right here: the
11:46 issuee ID people know about, but in the
11:49 spec we actually have a registry
11:50 identifier defined; but this registry
11:53 identifier is different from that
11:55 registry identifier. This is the issuer
11:57 registry. This is the issuee registry.
12:00 Why does the issuee want a
12:02 registry? [question gets inaudible response]
12:08 That's right. So if the issue wantes to
12:14 know if they .., here's the
12:15 use case: somebody gave me an
12:18 authorization let's say this is my
12:19 authorization
12:26 I want to know if my authorization's been compromised
12:28 now in ACDC if I want to present it
12:31 requires at the very least signing it so
12:34 compromise looks like an a compromise of
12:36 my signing infrastructure now if it's a
12:39 token, compromise looks like somebody
12:42 just steals the token. It's an easy
12:44 compromise. You know, it's much harder
12:46 to steal my private keys. But let's say
12:49 someone has stolen my private keys.
12:52 They can then present
12:55 my authorization someplace and I don't
12:58 know that they've stole my private keys
13:00 unless I require that a verifier check
13:04 that the presentation is anchored in my
13:07 registry. So every time I do a
13:10 presentation I anchor in the registry.
13:12 The verifier checks that the issuer
13:15 issued it by checking the issuer
13:17 registry but checks that the presenter
13:21 actually says "I want ultra security when
13:24 I present. So don't verify the
13:27 presentation unless I anchor the
13:28 presentation." Makes the presentation
13:30 less ephemeral. But it also means now
13:33 that if I have really
13:36 strong security over presentations and
13:39 if somebody steals my private keys as a
13:42 as a presenter,
13:44 I know that they stole them because they
13:46 the only way that they can gain
13:48 access is to anchor it in my registry
13:52 that I control. And so that
13:55 allows me to detect compromise
13:59 of my credentials.
14:07 So here's showing what I just
14:09 said. Here's the issuance registry,
14:10 with a presentation. The issuee just
14:14 signs the presentation. The verifier
14:17 checks, it checks its observer, checks the
14:21 registrar, controlled by the issuer says
14:23 "okay it's good. The ACDC is fine."
14:28 This is what it looks like over here in
14:30 terms of the Key Event Log of
14:34 the issuer and then the
14:37 registry.
14:43 But then we have the registrars
14:45 and the observers.
14:46 But if I'm doing a usage registry, what
14:48 does it look like? Well, the
14:51 presentation itself gets anchored in a
14:54 in a registry that's controlled by
14:56 the issuee. So this one is
14:59 controlled .., this registrar is the issuee's
15:02 registrar and now the verifier checks
15:06 here. So the verifier would have to
15:08 check two registries; has to check the
15:10 issuers's registry and the presenter's
15:13 registry.
15:15 But that makes it so
15:19 that both the issuer and the user
15:21 can detect if either one has been
15:23 compromised and the verifier knows it.
15:26 So that's what it looks like here.
15:35 So basically any presentation gets anchored
15:40 in the issuee's
15:43 registry
15:45 and you can see the state of the
15:47 presentation and you can share one
15:49 registry for all your presentations
15:50 because it's one controller of the
15:53 registry.
16:04 So this is this is a another
16:06 difficult problem in authorizations
16:09 and that's when you have delegation
16:13 and we didn't solve this problem from
16:16 the vLEI
16:18 in this explicit way, but this is
16:20 in the spec
16:22 It solves the problem of
16:26 chained authorizations in a
16:28 delegation chain where the delegate
16:32 issues an authorization and then the
16:35 delegate's authority to issue the
16:37 authorization gets revoked. So the
16:40 question is:
16:42 What happens when a delegate's
16:46 authority or a delegatee's authority to
16:49 issue authorization is revoked. What is
16:52 the status as any authorizations or
16:54 entitlements that it issued before its
16:56 authority was revoked? Are they revoked?
17:03 Well, that would be really bad,
17:05 in some cases,
17:08 Let's say I'm a company and I
17:10 issue a purchase order. My purchases
17:12 agent while he works for me issues a
17:14 purchase order. Purchase order has a
17:16 90-day expiration on it. It's valid for
17:19 90 days, right?
17:21 And then I fire the guy because he
17:23 wasn't showing up for work, right? Do I
17:26 have to go through every purchase order
17:29 that he signed off on
17:31 and reissue it? Well, if it's on paper,
17:37 everybody assumes that it's still valid,
17:39 right? But if it's electronic, if it's
17:42 digital of an ACDC and it's got in a
17:44 revocation registry, I could revoke all
17:47 of them and then reissue them. But maybe
17:50 I'm okay with what he issued. I The
17:52 reason he got fired wasn't because he
17:54 was misuing purchase orders. He got
17:56 fired because he violated HR or
17:58 something, right? So everything that he
18:01 did officially is still good. But he
18:03 doesn't work for me anymore. But if I
18:05 revoke his authority, I break the chain
18:09 of authority. And if I don't have any
18:11 other mechanism, then I am forced to
18:13 reissue everything that he did.
18:16 So that's a hard problem of
18:18 delegation. And we don't solve these
18:20 these problems in general in
18:21 decentralized identity. If I have a
18:23 database, I can solve any problem. If I
18:25 have a centralized database,
18:27 all of these problems are
18:28 easy. It's just software. But if it's a
18:31 distributed decentralized [database], I have to
18:34 solve it cryptographically. I have to
18:36 figure out how I'm going to do it in a
18:37 decentralized way. So how do we
18:40 do that?
18:42 Well, here's a way that we can do that.
18:48 (I just I said that:
18:50 When the chain is broken.)
18:51 This is how we do it. With
18:54 something called a Bound Blinded
18:57 ACDC Register.
19:01 What did I put there? "Reco"?
19:05 That should have been
19:07 <i>Reversion</i>.
19:11 I misspelled that.
19:13 This is how it works.
19:16 We have this situation here. We have an
19:20 issuee AID.
19:22 The issuee is
19:26 the issuer of another ACDC. So we have
19:30 a chained set of ACDCs. There's an
19:32 edge pointing back from the delegated
19:36 one back to the delegating one. Okay. So
19:38 that's the setup. So now we have
19:43 the issuer uses this bound blinded state
19:46 registry
19:48 and the thing that it adds is the
19:50 sequence number and the SAID
19:53 of the key state of the issuee who is
19:57 also the issuer. Right? The guy
20:00 in the middle is both an issuer and an
20:02 issue. He's an issuee of his delegator
20:05 and he gets to issue stuff himself.
20:07 Right. So it's a delegated chain but
20:10 what we're doing is we're binding ..,
20:12 we're binding the key state of
20:16 the issuee at the time
20:20 we give him authority.
20:23 So right here, we issue to him
20:26 authority and we bind his key state.
20:29 And then when we revoke his authority we
20:32 also bind his key state. What that says:
20:35 between two and five
20:38 He has the authority to issue things
20:42 and here's his registry. He can issue
20:44 things in his registry. So in this list
20:47 right here, he can do things
20:51 to this other thing and they all
20:53 work. But number six
20:58 here, he doesn't have authority anymore.
21:02 So even though he's got an update event,
21:04 that update event, the bottom one's not
21:07 not verifiable because he doesn't have
21:09 authority to change that. So we have
21:11 a problem.
21:13 So, the only way that this works is if the
21:20 issuances over here
21:23 are all time expired.
21:29 [Sam sorts out the tools for presenting]
21:42 So, what happens is that the type
21:48 of ACDC that he can issue here have to
21:52 have some sort of timeout because they
21:55 themselves can't be revocable because we
21:57 have an ambiguity about what we do about
21:59 it when we revoke his authority. But as
22:01 long as it times out or something then
22:03 it'll just self-revoke.
22:05 So how do we solve that problem? That's
22:07 the harder problem. So this
22:10 is not in the spec. This is actually a
22:12 proposal for the spec. We add
22:16 another event.
22:20 So the way
22:23 we can solve it .., it's not written up
22:27 in the spec but this is an easy
22:28 modification of the spec, is that because
22:31 there's an edge right here
22:34 that points back to the issuing
22:36 authority
22:38 we can do a reversion of authority. So
22:41 let me give the example. Let's say
22:44 that I'm a lieutenant of a
22:47 company and I take one of the
22:50 members of the company and I give him an
22:52 order and I say you're going to go over
22:54 there, right? And he goes over there,
22:59 right? He has authority to do it. I told
23:01 him to do something. Let's say that I
23:06 I resend that order. He can't
23:09 do that anymore.
23:11 What do I do at that point?
23:15 The authority to do that still rests in me,
23:17 the lieutenant. I can go
23:22 over there and do it or I can
23:25 authorize whatever it is myself.
23:28 So, the authority always reverts to me
23:31 as the higher authority. So what we do
23:34 is that when a subordinate or a
23:37 delegate loses authority because we've
23:40 revoked it, any outstanding issuances
23:44 that were validly issued that we want to
23:47 dynamically revoke the revocation now
23:50 becomes the responsibility of the
23:52 delegator. It just reverts back to the
23:54 delegator. And because we have an edge,
23:56 we know who the delegator is. And so all
23:58 we have to do is make a policy change
24:00 that says in this case
24:04 where I revoked ..,
24:09 his authority
24:11 right here.
24:13 So you see this one
24:17 over here is issued, I can't revoke
24:19 because he's been revoked over here in
24:22 number five. But guess who can revoke
24:24 it? See the line that comes back here?
24:28 He can revoke it. And a verifier
24:31 just needs to know that's
24:34 the policy.
24:36 It just looks it up and says, "Oh, okay.
24:39 The approximate delegate doesn't
24:41 have authority because it's his
24:43 authority has been revoked. The chain's
24:45 broken." But any subsequent actions on
24:48 that ACDC are still the responsibility
24:51 of the delegator. And so the delegator
24:53 can revoke it. So now we can have
24:55 dynamically revocable credentials and
24:58 break the chain and still dynamically
25:00 revoke them. Yeah.
25:10 Well, well, since there's always edges, you can the reversion of authority
25:13 can go all the way up to the top of the
25:14 chain. You can break the
25:17 leak as many times you want and you just
25:19 keep you just rinse and repeat all you
25:22 just ascend the chain. So now you have
25:24 an elegant solution
25:26 for dynamically revocable delegated
25:30 credentials all the way down. You can
25:33 break the chain any number of times and
25:35 still control those credentials
25:37 dynamically.
25:39 So we have solved a really hard problem
25:43 that in ephemeral authorizations isn't a
25:47 problem because no authorizations last
25:49 long enough that you care. But if I'm
25:52 doing perpetually issued authorizations
25:55 that last indefinitely unless they're
25:58 revoked and I'm doing a chain, I need to
26:00 solve that problem.
26:04 So that's the solution.
26:07 You revert the authority to the delegator when the
26:11 delegates authority is revoked and that
26:14 allows you to continue to control
26:16 those issuances.
26:18 Now we can do it even better. This
26:21 requires something not in the spec.
26:24 So this is a proposal to add in the spec
26:26 and that's just adding one additional
26:29 one additional update. It's called a
26:32 transfer event. So if we look over here ..,
26:46 Oh, number three.
26:48 Number three is transfer event. So
26:50 we have an inception event and a
26:52 transfer event. Those are analogous to
26:55 an inception event and a rotation event
26:58 in a Key Event Log. So in a transaction
27:00 event log, we now have meta control
27:04 events. We always had the
27:06 inception event which establishes the
27:09 who's the authority over the
27:11 registry. Now we have a transfer event
27:14 that says 'we can
27:16 transfer authority to a different
27:20 AID.' So that allows us to do an
27:24 authority transfer. So it's not just
27:26 reversion. We have a reversion of
27:28 control. The reversion allows us to
27:31 issue a transfer event. Now we have a
27:33 new delegatee, that now is a control
27:36 of all those credentials that are
27:38 controlled by that registry. So we could
27:40 do a seamless transfer all the way down
27:42 at every level. And all we have to do is
27:44 add one event. And the main thing in
27:46 this event is just that it's got
27:49 It's got the issuer. It's got
27:52 the new issuer AID, not the
27:55 issuer back here. The issuer at
27:57 the end.
28:01 Yeah. – [inaudible question]
28:11 Well, the cryptographic context is that every event
28:14 in all of these registries is anchored
28:17 to somebody's Key Event Log.
28:20 So that's perpetually verifiable
28:23 because all of the security
28:26 mechanisms that protect the key event
28:27 log protect everything anchored to the
28:29 Key Event Log.
28:31 – Right? So post transfer you want to
28:34 minimize the number of nodes you have to
28:38 recurse through in order to get your
28:39 verifications to work.
28:41 Well, you're not minimizing them,
28:43 you're not changing the number because
28:45 you have a chain. So you always
28:48 have to verify the whole chain. Yeah.
28:50 So,
28:50 so you didn't increase the length of the
28:51 chain, you just switched a branch in the
28:54 chain.
28:55 – Right. So, there's a dead branch in the
28:57 chain because the employee got fired.
28:58 Right. – And I don't want to
29:00 maintain his logs forever.
29:02 Well,
29:02 his K logs, right?
29:04 No, you don't have to maintain his key
29:06 event logs, you know. Well, yeah, you do
29:09 have to maintain his Key Event Logs for
29:12 as long as those issuances are valid
29:14 because that's the only way you can
29:15 verify the original issuance.
29:17 That was my question.
29:18 Yeah. So, you wouldn't do it
29:21 for you, you wouldn't do it for
29:23 something that was ..,
29:29 This would allow something
29:31 that's longer lived ..,
29:33 Let's say an employee issues a
29:35 purchase order that you want to be
29:37 dynamic revocable, but you're
29:40 not going to have it sit out there for
29:42 more than a year, right? So, you could
29:44 transfer to a new employee. It still
29:46 lasts a year, but you could still revoke
29:48 it if you found out there was something
29:49 wrong with it. If you're the
29:53 state of Are we out of time? Oh, you're
29:55 just asking questions. Okay. Let me
29:58 let me Yeah, go ahead. I guess
30:01 – I was just curious because you
30:02 nailed it with key rotation can already
30:04 transfer control. So, is
30:07 this analogous to a sort of [key rotation]
30:10 Well, the difference here is that
30:13 key rotation is
30:17 heavy weight transfer because you're
30:20 talking about control of the AIDs.
30:23 – Yep.
30:23 Right. And so in the case of an employee
30:26 leaving, you would at very least have to
30:28 have a multi-sig
30:30 so that multiple employees controlled
30:32 the AID and one of them rotated out.
30:35 This allows you to avoid any of those
30:37 issues
30:38 – because you're doing it on the registry
30:39 level.
30:39 You're doing on the registry level
30:40 instead of the KEL level. So, it's a
30:42 much lighter weight, easier to manage
30:45 situation for doing things at scale.
30:49 – What I'm wondering though is that it
30:50 could this be a point of failure if
30:52 someone were to key compromise and then
30:55 Transfer a registry toward a
30:57 malicious controller out.
30:58 Well, anytime you compromise keys,
31:01 you can do something malicious, right?
31:03 But you can't do it without being
31:04 detected, right?
31:05 Which means you recover from it,
31:08 – Right.
31:08 So that's the point.
31:11 – Okay. I'm just trying to understand if
31:12 it opens up potentially any like
31:14 vulnerabilities.
31:16 Not any new ones.
31:18 – Okay, good.
31:21 This now
31:26 means that we can maintain control over
31:30 issuances, out at the edge of our graph,
31:34 authorizations,
31:35 and they can survive for long periods of
31:38 time and we have dynamic control over
31:40 them and we can change control over them
31:42 dynamically.
31:44 Not all issuances benefit from that.
31:47 There's some you don't want to do that for.
31:49 But in the cases where you have
31:51 really long-lived things, like
31:54 guardianship. This is an
31:56 example of guardianship. You have a
31:59 child who has parents that are
32:02 guardians of the [child, red.] and they get
32:03 divorced. Who's the new guardian?
32:07 Do you want to reissue the birth
32:09 certificate to the child or do you want
32:12 to transfer control of the birth
32:13 certificate to the new guardian? You
32:16 want to transfer control. You don't want
32:18 to reissue the birth certificate
32:22 and lots of authority structures in
32:24 corporations
32:25 that have to do with things like 'who has
32:28 control over the domain name registrar
32:31 for the company?'
32:34 Do you want to reissue all your domain
32:36 names every time that person moves? Or
32:41 do you want to have some mechanism that
32:42 you can transfer control?
32:46 And do you want that mechanism to be a
32:49 multisig group, where you have a group of
32:51 IT people that all have
32:54 a threshold control? You could do it
32:56 that way or you could do it this way. In
33:00 some cases, this is going to be more
33:01 scalable because it's not
33:04 requiring tight coordination for key
33:07 management.
33:13 This would be in version 1.1 of the
33:16 ACDC spec. My proposal would be to add
33:20 another event [transfer event]. So basically we're
33:23 just adding one event so we can do
33:25 control transfer on a registry. And I
33:28 didn't think of it a year ago when I
33:30 wrote up the registry, but as I was
33:32 thinking about this problem some more, I
33:34 said, "No, no, we probably should
33:35 add that one." And I actually changed it
33:37 three or four times because I kept
33:38 trying to decide what I needed. And I
33:40 realized that the
33:43 only thing it needs to have is the
33:44 issuers' AID. Everything else is the
33:46 same as the inception event.
33:49 It just declares a new issuer.
33:54 So it's the event type is the only thing
33:55 that changes. Any
33:58 other questions before I move on?
34:02 Yeah.
34:04 – Does vLEI authority fit into this somehow?
34:07 Yeah, right now vLEI don't solve
34:10 these problems. So with the vLEI, what
34:13 you have right now is
34:16 a grace period. When you're issuing the QVI
34:21 loses its authority, all of the vLEIs they
34:24 issue are still valid for a grace
34:27 period. Karla [mcKenna] wants to answer.
34:31 Go ahead, Karla. Oh, get the mic..
34:36 – Yes. And I knew that this was coming
34:37 Because Kevin told me that you were
34:39 working on it. And so we have been
34:42 looking at a way in order to be able
34:45 not to have to go back to the legal
34:47 entities.
34:49 [Case:] Your QVI is leaving the system,
34:55 you're going to have to hire a new QVI
34:56 and recreate everything that you
34:59 have. And so this way we can transfer
35:02 control to GLEIF and then as the legal
35:05 entities hire their new QVIs we can
35:08 transfer control again to the new.
35:10 That's what happens: GLEIF now becomes
35:12 the authority, not the QVI,
35:15 and then you don't have to make the
35:17 transfer control be forever. It can just
35:21 now be a dynamic time period to give you
35:24 a grace period to find a new QVI and
35:26 reissue. But now the grace
35:29 period now is dynamic instead of fixed,
35:32 right? Right now it's fixed to what? 90
35:34 days. Yeah.
35:35 – Okay. Sam, I'm gonna give you a
35:36 practical example: I work for a civil
35:39 engineering firm. I have my engineer
35:41 stamp. I've stamped the bridge as being
35:44 ready to build or meeting the spec. I leave
35:47 the company. What is the company going
35:49 to do? I'm trying to see that how that
35:52 hierarchy would work, especially
35:53 considering that in the traditional
35:55 world, we just file those blueprints and
35:56 that engineer stamp is always on there
35:58 and we consider it valid.
36:00 Well, right now the engineering stamp
36:03 isn't dynamically revocable.
36:05 There's no mechanism to do that. So,
36:07 this only applies to engineering stamps
36:10 that you already need to dynamically
36:12 revoke.
36:14 So because it's very
36:17 difficult to do dynamic revocation
36:19 almost no real world issuances have
36:22 dynamic revocation. But because now
36:25 we're doing this stuff cryptographically,
36:27 all of a sudden all sorts of use cases
36:28 where we want them to be dynamic
36:30 revocable but we never thought it
36:32 possible so we didn't and we just lived
36:34 with it now become good applications. So
36:37 we're talking about using ACDCs in new
36:39 ways. You can refactor
36:43 multiple licensing regimes to have
36:48 dynamically revokable licenses and it's
36:51 practically workable.
36:58 So there should be some business opportunities there.
37:06 – So the basic idea of this transfer registry
37:10 that you create with that you're
37:12 delegating or changing transferring
37:15 control over a set of identifiers to a
37:17 new identifier. So it creates a
37:19 registry.
37:19 No, you're changing control of the
37:21 registry.
37:22 One identifier, the registry's
37:25 identifier. That's what you're changing
37:27 control of.
37:27 Yeah, I misspoke there. That's right.
37:29 Okay. So just the registry that you
37:31 might have already issued many
37:32 credentials from and so is essentially ..,
37:34 Or one credential that has state changes
37:38 and you don't want to reissue
37:40 that credential. You want the credential
37:42 to continue to have viability. You just
37:44 want to change who has the authority to
37:46 change the state of the credential.
37:48 That's all you're doing.
37:49 – Got it.
37:49 And you're doing that .., I want
37:51 to point out something out here. See
37:53 this event right here, the transfer
37:55 event. See it has two arrows going to
37:57 it. That because a validator first has
38:00 to verify that the reverting
38:02 authority approved it, and has to verify
38:06 that the new authority approved it.
38:10 And then once that happens, then they
38:13 they don't care because it's just the
38:14 new authority.
38:19 All right. Any other questions? All
38:24 right we'll go to the next one.
38:28 – Do you need [to have]
38:32 reversion in place in order to have a
38:33 properly functional transfer registry
38:35 Of this type? ( – yes) There's another type
38:37 of transfer registry that we haven't
38:39 defined yet that I have an
38:42 outstanding issue on KERIpy [for], that's
38:45 different from this. – Okay.
38:46 This is reversion for a hierarchy of
38:49 authorizations and delegation,
38:52 not a replacement for asset transfer.
38:55 Ned [Smith] is going to give a talk on secure
38:57 asset transfer later today.
39:00 – Can I ask one clarifying question? Yes.
39:03 Previously earlier in this talk, I
39:07 thought there was another methodology
39:08 where it was like 2 through 4 was valid.
39:10 So that's a different style, where
39:13 it's a different style of dealing with
39:15 the same problem? No, its the same thing,
39:17 It's the same thing. It's just this says
39:20 once you're invalid, what do you do with
39:23 the ACDC of the controlling authority?
39:27 If nobody's in charge of it? So you can
39:30 revert back to the delegator and
39:33 now the delegator is in control.
39:36 But that now imposes a burden on the
39:38 delegator to have to make a controller
39:40 from that point on.
39:41 – Right. I just thought I understood
39:42 previously like to answer his question
39:45 about that
39:50 use case where you could potentially
39:53 just keep
39:55 a certain subset of the
39:58 issuances of the credentials
39:59 previously.
40:00 Yeah, that works as long as the
40:02 delegated credentials expire on their
40:04 own. If they're dynamically revocable
40:08 and you break the chain, you can't
40:10 revoke them after you broken the chain.
40:12 So, it works for conventional
40:15 issuances that time out. If I have a
40:18 food handlers permit that times out in a
40:20 year, I can fire the employee that
40:23 issued it and it's still valid, but
40:24 it'll expire in a year. But if I have
40:26 something that I want to be able to
40:28 revoke any point in time, then I can't
40:31 break the chain and still I have
40:33 to define what that means. So,
40:35 I could say "it means X,"
40:37 right? But we want to make it so that we
40:40 can actually verify and enforce it
40:43 cryptographically.
40:45 (I sound like somebody that doesn't
40:47 have a voice. All right.)
40:51 So I'm going to move on because
40:52 we're going to run out of time. I have a
40:54 couple more slides. So, the other thing
40:56 we can do is that EVAC can
41:00 also mean edge verifiable agentic control.
41:03 Now, here's the thing.
41:05 An agent
41:06 is an authorized
41:09 delegate
41:11 of a natural person, a legal
41:14 entity, right? An agent can be another
41:17 natural personal legal entity. It can be
41:19 a piece of software. It can be an AI.
41:22 The term agent means .., nothing in
41:25 anything, that I showed you before, is any
41:28 different if it's a person or an AI
41:31 that's in the delegation chain. It all
41:33 works the same. So now if you're worried
41:35 about whether your agentic AI has
41:38 permission to do X, you can
41:41 cryptographically verify that it had
41:42 permission to do X and you can revoke
41:44 its permission to do X and any verifier
41:46 can verify that. It doesn't matter.
41:50 You just give the agent an AID, a
41:52 delegated AID,
41:54 right? So that's the original meaning of
41:56 the word agent. So when see people say
41:58 agentic AI, they're just software agents
42:01 that are a little bit smarter than
42:03 software agents used to be, right? The
42:06 ACDC mechanisms are exactly the same.
42:08 They don't change. So if I want to do
42:10 EVAC, I do evac.
42:14 So you may want to have
42:16 regulations require attributes in your
42:19 chain that says 'this agent is a person
42:23 versus an AI,' you might want to disclose
42:26 that. But as far as verifying their
42:28 authority and what they do with it,
42:31 ACDCs accommodated without any
42:33 changes. Yeah. – One of the other
42:35 problems with delegation is controlling
42:37 the recursion of delegation. And so
42:41 there's a bunch of, you know, weird
42:43 stuff in X.509 for how to do that. I'm
42:45 just wondering what mechanisms exist
42:47 here to manage the
42:50 the degree of delegation that a
42:52 delegate ..,
42:53 What do you mean by
42:54 recursion? Like how many levels ..,
42:55 – A delegate can delegate to another
42:57 delegate.
42:58 Oh yeah. So in KERI
43:01 When you have ACDCs
43:04 they're edge operators and so you can
43:07 have an edge operator that says 'do not
43:09 delegate' or you can have a configuration
43:12 for a delegated AID that says 'do not
43:14 delegate.' You can say how many layers
43:17 down you can have delegation. Right? But
43:19 I'm familiar with that.
43:21 Do you have a whole policy engine
43:23 for how far you delegate? Well, actually
43:25 you can have a whole policy engine with
43:27 ACDCs because we have edge operators. So
43:30 you can you can make it as complicated
43:32 as you want or as simple as you want.
43:36 ACDCs don't care,
43:39 it's up to the user application.
43:41 The cryptographic verifiability is:
43:44 "I have an edge. The edge has properties."
43:46 The properties can define whether that
43:48 edge allows further delegation or not.
43:52 Does that make sense? Did you guys
43:54 understand?
43:56 Yeah. Okay.
43:58 All right.
44:00 Safety. So, I'm going to change topics.
44:01 I have a couple of questions. All right.
44:03 Back here. – I guess it's the same
44:06 with natural people and
44:09 organizations to natural people.
44:11 How would you enforce if possible
44:14 attenuation such that
44:17 subsequent delegates or delegatees do not
44:20 acquire more power than the ..,
44:23 There's two governance mechanisms
44:25 that we use in ACDCs for that. One is
44:28 called an ecosystem governance framework
44:32 okay so for the vLEI there are
44:36 200 pages of documents that say 'this is
44:39 what you can do with these ACDCs.'
44:41 They define the delegation, what you can
44:44 delegate, how much you can delegate, how
44:46 many layers of delegation, what the
44:47 ACDCs are, who does that, .., right?
44:50 That doesn't have to be encoded into the
44:54 ACDCs themselves because the schema
44:57 for the ACDC which is an immutable
45:00 schema is defined to be the schema and
45:04 then you look up the ecosystem
45:05 governance framework for that schema and
45:07 you go "Oh, this is how I use these guys
45:10 In real world you're
45:13 probably going to have quite fixed
45:15 well-rigidly defined ecosystem
45:18 governance frameworks because that's how
45:20 the real world works. We don't go
45:22 around and say, "Hey I want to be
45:26 a real estate agent." 'Agent,' right? Hear
45:30 the word 'agent.' What are the rules for
45:32 real estate agents? How can they
45:34 operate? What things can - and can't
45:37 they do? Well, there's a whole body of
45:39 regulation about it. We don't have to ..,
45:42 we just have to say "Well,
45:46 we're going to make it so they can
45:47 verify that they're an agent. We can
45:49 reference all the regulations that apply
45:51 to them as an agent." Now, we've modeled
45:54 the real world authority that already
45:56 exists, but we just made it so that they
45:59 can do the verification
46:01 quickly and securely without
46:04 impersonation or fraud. We don't have
46:06 to build all of that rulemaking
46:10 stuff if we don't have to.
46:13 There's no reason to do that. But if we
46:16 want to add
46:18 some of that [rulemaking, red.] because it's practical,
46:21 then we can encode it in the edge logic
46:24 with edge operators. But
46:26 we want to minimize that.
46:28 What tends to happen is people try
46:30 to model all of the stuff in the world,
46:33 real world in data, and then they get
46:36 data that is ambiguous. They
46:40 get ontologies
46:42 that are broken.
46:45 Yes. Yeah. – We've been toying with
46:48 with this delegation structure a bit
46:51 more from an application perspective,
46:52 right? An agentic AI is not one thing.
46:55 It's a spectrum, right? So in other
46:56 words, there are rule based on the lower
46:58 end and you have loose guidelines and we
47:01 want to see if the agent that
47:05 is taking control and delegating to
47:07 further agents did it right in the
47:09 context of those guidelines. Right. So
47:12 it is a loosely defined structure?
47:14 Yeah. (Microphone replacement)
48:21 Trying to build other
48:24 systems, you're welcome to do that. I'm
48:26 just saying that we can't solve the
48:28 problem that ACDC solves right now.
48:31 Whatever you're doing isn't solving that
48:32 problem because if you're
48:34 not using ACDCs to
48:36 solve it and you're not doing this, then
48:38 I know what you're not able to do. But
48:40 you can certainly do other things. Does
48:42 that make sense? I'm not prescribing for
48:44 you how you want to solve Agentic AI.
48:46 I'm just saying that if you want to
48:48 solve the act of modelling the authority
48:51 chain in a cryptographically verifiable
48:54 way and the elements of that chain
48:57 happen to be agents, it doesn't change
49:00 it doesn't change the mechanism. The
49:02 mechanism works just as well either way,
49:04 right? Yeah. (A question; waiting for the mic to arrive)
49:15 – The guardrail is that you want least privilege
49:18 built into the system so that
49:20 there isn't an opportunity for a
49:22 delegate to introduce more privilege
49:24 than what was delegated to him
49:26 originally.
49:27 And is the enforcement
49:29 mechanism on the shoulders of the
49:31 verifier (Yes!) or there's something intrinsic
49:33 in the structure that prevents that? No,
49:36 because the only person
49:38 that enforces it is the verifier.
49:40 Otherwise, what you're going to have to
49:41 have is a policy engine that the
49:44 verifier asks to enforce it for them.
49:47 Right. So, you've just moved the
49:49 enforcement someplace else, but it's but
49:51 it's still .. [the verifier's responsibility, red.]
49:53 – That's the part that I think a lot
49:55 of the industry will have difficulty
49:57 accepting.
49:58 Yeah, I'm I'm sure they will. And
50:00 Phil [Windley, red.], I think you're going to talk about
50:01 some of that, right? Or he's writing a
50:03 book on it. So, I'm talking to
50:06 you, Phil Windley.
50:12 I don't think he heard me. Hey, Phil. Phil.
50:13 Oh, he asked a question and I said,
50:16 "You're writing a book on Authorization
50:18 Policy for Agentic .."
50:23 Okay. All right. Later.
50:24 It's all right. I
50:25 – Sorry. What was the question? I
50:26 apologize.
50:27 Well, I just explained how
50:29 we could use ACDCs to do delegate
50:32 authority, and Ned [Smith] asked, "Well, least
50:35 privilege for the delegatee to
50:38 be able to do stuff. How do you enforce
50:39 that? And I said, right now
50:42 in a decentralized system, the
50:44 verifier can enforce it or you could
50:47 have a policy engine that the verifier
50:49 refers to, that enforces it,
50:51 but that's [your option, red.]
50:54 – Yeah so basically I think there are
50:57 two big avenues of how you would do this
51:00 with delegation. One is delegation as
51:03 data. The other one is delegation as
51:06 policy where you essentially write new
51:08 policies for the delegation
51:11 instead of relying on a broad set of
51:13 policies. in delegation as data ACDCs
51:17 especially with what you've described
51:19 today are really nice because you
51:23 can put all of the delegation in the
51:26 ACDC the credential and then, as
51:30 you've pointed out, you can keep that
51:32 from expanding, you can revoke it, you can
51:35 revoke the whole chain when necessary,
51:38 I think that's the
51:40 broad approach, right, as you write
51:42 policies that interpret the data in the
51:44 delegation credential.
51:46 Yeah. And to Ned's point, that's not how
51:48 most people do it now. So they may not
51:50 like it,
51:52 which is a valid point.
51:55 So I'm going to change topics for the
51:58 last five minutes.
52:00 The internet is a dangerous place.
52:04 What we want, what I would like, I hope
52:07 some of you want this, is a digital refuge
52:16 An online shelter,
52:19 an internet sanctuary,
52:22 a surveillance asylum.
52:25 Well, we're protected from all of these
52:27 things when we go online. When we use
52:29 the internet, we want to be able to use
52:31 the internet and be safe
52:40 If we think about those ..,
52:45 "Safe" is to require accountability of the participants.
52:54 If they're not accountable, it won't be
52:55 safe.
52:57 If you can act in any way you
53:00 want and there's no
53:01 repercussions, there's no consequences,
53:04 it's going to incentivize bad behavior.
53:06 And that's what the internet is. That's
53:08 what the internet is, it isn't a safe place because
53:10 there's no accountability on the
53:12 internet. It never came with it
53:14 in the first place. And everybody
53:16 assumed that well people will just act
53:18 the way they normally do. I have a
53:19 really good example of this. My
53:22 daughter who you all saw sing, right?
53:24 Yeah. She has a pretty substantial
53:26 internet presence, lots of followers,
53:29 and there's a lot of trolls that will go
53:31 onto her
53:33 Instagram or TikTok [and do]
53:37 all kinds of really horrible things.
53:40 Well, you know what my wife likes to do,
53:41 who you all met, is when they're do
53:44 really horrible things and they say
53:45 stuff like that occasionally, she will
53:48 go research them and they're always
53:50 using some, you know, alias. They think
53:53 they have anonymity. She'll go figure
53:55 out who they are and then she'll go ask
53:58 them, "Why did you say this about my
54:00 daughter?"
54:01 And they will SCRAMble for the hills.
54:05 It's just like, "Wait a minute. You know
54:06 who I am? You know that I said this
54:08 vulgar thing and sometimes they're just
54:11 average people in your neighborhood who
54:14 act like they don't do this. Well, why
54:15 do they do it on the internet? Because
54:17 they can get away with it. And
54:20 what she always likes to say to them is,
54:22 "So, if you met my daughter in person,
54:24 would you say that to her in person?"
54:26 When they go, "Of course not." Well,
54:27 then why do you say it online? And the
54:29 difference is there's no accountability
54:31 online. So, if you want safety, you have
54:33 to have accountability. Here's the other
54:35 thing that people don't don't believe me
54:37 when I say this. Privacy requires
54:39 accountability. People think privacy
54:41 requires being able to hide. You can't
54:44 have privacy if without accountability.
54:46 Here's why. Second parties to repeated
54:49 interactions can correlate the first
54:50 parties. If I interact with you, even
54:54 though we're both anonymous, the
54:55 interaction themselves is enough to
54:57 correlate.
55:04 So guess what? I can't interact and have privacy.
55:07 I can't.
55:09 So any interaction system that does not
55:12 enable first parties to hold second
55:14 parties accountable is fundamentally
55:16 incompatible with privacy.
55:18 You can't get there unless you start
55:20 with accountability.
55:22 And you don't get privacy by
55:24 hiding, you get privacy by interacting
55:27 with
55:33 digital refuges
55:34 Surveillance asylums where the
55:37 participants
55:39 hold each other accountable and you can
55:41 trust that they'll act in the way you
55:42 want and everybody else is excluded.
55:45 That's the whole point. If I want to
55:47 interact with him or her, right, and I
55:51 can hold him accountable, then I have a
55:53 trusted interaction. If I can't hold
55:55 them accountable, I can't trust it. But
55:58 what I want to do is I want to have that
55:59 interaction and not have anybody else
56:02 surveil it.
56:04 And that's what we really
56:06 want. We want contextualized
56:09 confidentiality with accountability. And
56:11 how do we do that? Well, there's a
56:14 protocol called the Trust Spanning
56:15 Protocol that, combined with the KERI
56:17 Suite, allows us to create and control
56:20 safe relationships where interactions
56:22 protected from surveillance by third
56:24 parties and second parties are held
56:26 accountable for any information shared
56:28 with or by them.
56:31 My breakout talk today will be
56:36 talking about the TSP protocol
56:39 and how we can do that.
56:43 Keep going.
56:43 We only got a minute.
56:49 Okay.
56:49 You can have some of my time.
56:51 All right.
56:54 Okay. So when I do this analysis, I
56:58 always use this model.
56:59 They say "All models are wrong,
57:01 but some models are useful." I find this
57:03 a very useful model. Any
57:06 interaction on the internet involves the
57:08 first party and second party.
57:11 I can encrypt the communications between
57:14 the first party and the second party
57:17 so that the content isn't observable by
57:19 any other party.
57:21 But if I'm using the internet, what I
57:24 can't protect is the metadata of the
57:27 fact that I sent data over the internet.
57:29 It has to be routable.
57:32 Routing tables are public. Routing
57:35 information is subpoenable.
57:37 All of that metadata is not protected.
57:40 The Supreme Court even said so. Right?
57:43 Reasonable expectation of privacy is
57:45 limited to content,
57:49 not non-content metadata. Non-content
57:53 metadata is how you get from first party
57:55 to second party. If I
58:00 can correlate out from the metadata who
58:04 the first party and second party are,
58:06 I've already defeated privacy in
58:08 general. There's no privacy on the
58:10 internet ever. Never has been, never
58:13 will be. If you use that definition,
58:16 right? But what I can do is I have
58:19 privacy where I can make it so that
58:22 I that they don't know who the first
58:24 party and the second party are because
58:26 the first party and second party they
58:28 see aren't the first party and second
58:29 party that matter.
58:31 And so the basic idea is: I don't use
58:35 clandestine means to get privacy. I use
58:38 covert means
58:40 and covert means you have a cover
58:43 identity that basically
58:46 provides a layer of protection to some
58:49 activity that you're doing that isn't
58:51 observable. Clandestine just means
58:53 you're not observable. But any
58:57 information that's broadcast, is
58:59 eventually observable. So clandestine
59:02 can only be used for ephemeral
59:03 applications. And I spent 20 years and
59:06 20, you know, millions of dollars of
59:10 federal money building clandestine
59:15 surveillance mechanisms
59:19 and at some point we said, "Oh, we
59:23 got to make them covert because we
59:25 need Persistent Lliteral
59:30 Surveillance;" that was the name of the
59:31 program. And when we went from ephemeral
59:34 to persistent surveillance, we had to
59:37 change our concept of operations.
59:40 And that's what I'm saying is we have to
59:41 change that. So this is the model. And
59:44 then and to get from first party, second
59:45 party, I have to have intermediaries.
59:47 The intermediaries
59:49 can surveil stuff that a third party
59:51 can't. Your ISP is an intermediary.
59:55 So given that model, these are the
59:58 two principles that we use. One is
1:00:01 end-to-end verifiability which tells me that
1:00:03 I know who the parties are. The parties
1:00:06 know each other.
1:00:09 If I have KERI then I get ambient
1:00:11 verifiability any day anywhere anytime
1:00:14 by anybody of who it came from. So I
1:00:16 can hold the source accountable
1:00:19 right; non-repudiation.
1:00:23 Now the dual of that, is what I
1:00:25 call 'Only At End Viewability'. I need to
1:00:28 be able to send information to somebody
1:00:31 and have reasonable confidence that
1:00:33 they're the only ones that got it.
1:00:36 Because the only way I can hold the
1:00:37 second party accountable is if I know
1:00:40 they're the leaker of data.
1:00:42 Because if I send encrypted data to a
1:00:45 second party that they can decrypt, they
1:00:47 have the data. I no longer have any
1:00:50 ability to restrict where that data
1:00:52 goes. There's no technological means
1:00:54 that allows me to protect that
1:00:56 data once the second party has it. I
1:00:58 have to trust the second party. So I
1:01:00 have no privacy of any information I
1:01:02 share with the second party if the
1:01:04 second party can share it with somebody
1:01:05 else. So there's no longer technology
1:01:08 here. It's all legal, regulatory, and
1:01:11 economic.
1:01:13 So if any information that I interact
1:01:16 with or share in the internet once it
1:01:18 gets to the second party the second
1:01:19 party wants to collude with anybody they
1:01:21 want to then I have no privacy.
1:01:24 The only privacy only comes if I can
1:01:26 trust the second party to respect
1:01:29 the terms and conditions, which is
1:01:31 called confidentiality, of the
1:01:33 information I give them. So what I need
1:01:36 is a mechanism for sending information
1:01:39 from here to there
1:01:41 that is asymmetric. So I need to use
1:01:43 hybrid public key encryption so that I
1:01:45 have asymmetric encryption and I send it
1:01:48 to one end. I don't use group
1:01:50 encryption. I don't do shared
1:01:53 secret encryption. I use hybrid
1:01:57 public key which is technically shared
1:01:59 secret encryption but the
1:02:01 key on my end is ephemeral. So I have a
1:02:04 reasonable confidence that only the
1:02:06 targeted one got it and I can in
1:02:08 include information in it that makes it
1:02:10 unique to that end which they can get
1:02:12 rid of if they if they're smart but it
1:02:14 makes it really hard for them. So I said
1:02:16 reasonable confidence. What that means
1:02:18 is that I have this property of End Only
1:02:20 Viewability. The end that I intend to is
1:02:23 the only one that can view it. So
1:02:25 there's "one data, one where, one time, by
1:02:27 one body," and that means that it's
1:02:30 undeniable. Now they can deny it.
1:02:33 Plausible deniability.
1:02:35 I can't prove, may not be able to prove
1:02:38 it, but I know. And guess what I do when
1:02:41 I know? I break the interaction. I
1:02:44 exclude them from my interaction
1:02:46 profile. I stop talking to them. I stop
1:02:48 sharing data with them because I can't
1:02:49 trust them. So the whole point is: I need
1:02:52 to be able to control who I talk to and
1:02:55 who talks to me. And I need to do it in
1:02:57 a mechanism that allows me to decide
1:02:59 that and to control the
1:03:02 boundaries of that. And that's the way I
1:03:03 do it. And so the TSP protocol
1:03:06 lets you decide with whom they interact,
1:03:10 what they share and why. And so you have
1:03:13 control over your internet presence and
1:03:15 your context when you do this. And we
1:03:18 use relationships graphs. And this
1:03:20 is actually
1:03:23 into my talk for this afternoon. So,
1:03:25 I'll stop there.
1:03:27 Great. Thank you.