Maybe, but you can also argue that revocation are just aspects of the
first two (dynamic & attenuation), it's just the south pole of
attenuation.
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CANpA1Z1dv8tM2NkP%2BDY7xSSmRcvD_7CsDYnxrru7Bi__pSnxmQ%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CACTLOFrvUOG2hRk5yLkhCVfL0gzo0mhM0fS-1_0A%2B3Y3QbbGhA%40mail.gmail.com.
The argument is that if an example of attenuation is taking say a
read-write reference,
and attenuating it into a read-only reference, revocation can be
considered a similar act
of attenuation turning a read-only reference into a null reference.
Rather than just weakening, it weakens the capability into non-existence.
The rest of the differences can be explained by the explanation that
it is a dynamic
form of attenuation. The typical delegation use of attenuation where
you give someone a weaker
capability than you yourself hold is typically a static attenuation.
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CACTLOFq7Ssm202Q_70VETG08Q82VK9F6ooFQA_Q4HFiuv%2B4OKA%40mail.gmail.com.
I would argue that revocation can be sharing, particularly when you include
the section 11.5.3 "Implications for revocation" in MarkM's thesis, because in
a distributed system reliable revocation is difficult where Alice may
intermittently be out of
contact, the revocation may be a mechanism of sharing like a dead
man's switch that
revokes itself upon Alice's disappearance. This dead mans switch is a
mechanism of both
sharing and non-sharing.
If a capability is an integer and you attenuate it to revoke it, and it’s still the same integer, then you’ve effectively revoked your own access. Oops! Might be useful if you fork()? But really, it’s a different capability. Capabilities tie resource plus operations. AFAIC, attenuation creates a new capability, and you can still revoke (not share) the old capability if you wish.
We're probably using a different definition of attenuation, I've
always just considered it the dictionary definition
"the reduction of the force, effect, or value of something.", and not
involved any implications like creation of a new capability.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CACTLOFpQvysB2Xfyv2%2BP_m%3D8xu6_%3DvqtKkf-QuF9Tss-vJCecQ%40mail.gmail.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CACTLOFpQvysB2Xfyv2%2BP_m%3D8xu6_%3DvqtKkf-QuF9Tss-vJCecQ%40mail.gmail.com.
Part of my point here is that these don't need attenuating a granted
capability, the dynamic attenuation is built into the granted
capability at grant time in these specific cases.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CACTLOFoe_XSVYCSivVBR9w3ja_3XHLoUQ-TmTcandn8G-NgB7g%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CANpA1Z3drkeSphCxKxMjKRJ47AyfWcxr3FmTsHFSjV-f6zdwMg%40mail.gmail.com.
I’ll haven’t run into that term sock puppet before, but I’ve thought of that situation, I think we discussed keeping the delegation chain in a table.
I don't feel like there is a need for an explicit revocation
mechanism, because you can flip it inside out, where the dead mans
switch requires constant prodding to be kept from being revoked. Alice
must invoke that something say every hour to keep the capability she
granted Bob to Carol from being auto-revoked.
The problem with "explicit revocation mechanisms" is when Alice wants
to revoke but her network connection to the capability she wishes to
revoke fails. She has no way to invoke the explicit revocation
mechanism. Flipping things inside out you just build the revocation
into the normal message passing, this can be completely static like
the clock based examples, or based on the normal message passing
mechanism, and specify the policy for revocation inside the
capability. Relying on mechanisms like clocks, timeouts, and
notifications of disconnection to handle the revocation at the time
when a normal message invocation from bob is received.
If Alice wants to revoke without going offline she just invokes the
disable message to flip the 'enabled' boolean manually.
This is kind of why I feel it is hard to describe a good explicit
revocation mechanism which is also policy neutral.
At least in Mark's thesis the solution described seems to be not
having an explicit revocation mechanism, but leveraging the existing
invocation mechanism, and making revocation an arbitrary message the
same as any other.
That means that each capability has to carry it's own preordained
policy for revocation though, so the system won't assign the wrong
policy.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CACTLOFpaYz6Zfhiv9d%2BSvAP-N30E89%2B_aBtUYhMoq5vj7qDEHQ%40mail.gmail.com.
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CACTLOFot3z2Ce4ouRL0AgHeQYYO%2BxL-2XSRd1tWFpm_TZLh3yw%40mail.gmail.com.
I'm running out the door, but this part of Mark's thesis is exploring
a limitation of the caretaker pattern, so is using a different
mechanism.
My point is largely that in the example he gives the choices
surrounding revocation must be decided when you delegate.
Another (silly) question is with an explicit revocation mechanism can
you guarantee that an unrevokable capability is unrevokable?
In this case where revocation is built in to each capabilities logic,
by default you would presume they support unrevokable capabilities.
But the whole point I was making is it
isn't clear to me whether or not Marc Stiegler didn't include
revocation, because he thought it was already derivable from his 6
properties without adding it as a 7th property.
I feel like the first
two dynamism and attenuation get you there. In which case adding it as
a 7th property doesn't really change anything fundamentally because
the model already implied revocation. Having revocation derivable
within the system also still isn't exactly the same as saying all
things have a built in mechanism for their revocation.
wondering if you have mixed my position with John's statement thatI would not put it like "Isn't a separate aspect of sharing", I'm halfthe word separate is just doing the heavy lifting."Oh, and revocation is probably not “sharing” by definition." or if
So it doesn't really matter if you add it or not if revocation isalready derivable from the properties on the list.
But my larger point is that the ability to derive a multitude ofapplication specific revocation mechanismsis not the same as being given a single revocation mechanism. Aproblem which it is very much not clear thatthere is even a one size fits all revocation mechanism. My concern isthat by giving people a revocation mechanismrather than being forced to derive one you give them the means toavoid thinking about it deeply because it is already taken care of.
So, there are two issues here. Whether it belongs on the list I'mhappy to drop, we both agree it *is* on the list by different means.
I'm working with folks on the Distributed Identity Foundation's Trusted AI Agent Working Group's Delegated Authority Task Force. (Whew! That's a mouthful.)I've produced a document spelling out the requirements, which includes Stiegler's 7 aspects of sharing. (He said 6, but he forgot about revocation.) Unfortunately, the document is not ready for public release yet.
I'd like to add a list of technology options. Clearly, zcap-ld is in the list. I'm not sure about something like the way Agoric has adapted E.
Please send me your candidates for inclusion. I've already got zcap-ld, SPKI, Zebra Copy, UCAN, Macaroons, and waterken.--------------
Alan Karp
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CANpA1Z1gYFjFzJgi9-TCZaNiz2ariEi-qjjQ5%2BqQmB06zoVZmA%40mail.gmail.com.
On Tue, Feb 24, 2026 at 5:54 PM Alan Karp <alan...@gmail.com> wrote:
>
> I'm working with folks on the Distributed Identity Foundation's Trusted AI Agent Working Group's Delegated Authority Task Force. (Whew! That's a mouthful.)
>
> I've produced a document spelling out the requirements, which includes Stiegler's 7 aspects of sharing. (He said 6, but he forgot about revocation.) Unfortunately, the document is not ready for public release yet.
>
Maybe, but you can also argue that revocation are just aspects of the
first two (dynamic & attenuation), it's just the south pole of
attenuation.
> I'd like to add a list of technology options. Clearly, zcap-ld is in the list. I'm not sure about something like the way Agoric has adapted E. Please send me your candidates for inclusion. I've already got zcap-ld, SPKI, Zebra Copy, UCAN, Macaroons, and waterken.
>
> --------------
> Alan Karp
--
You received this message because you are subscribed to the Google Groups "friam" group.
To unsubscribe from this group and stop receiving emails from it, send an email to friam+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/friam/CACTLOFrvUOG2hRk5yLkhCVfL0gzo0mhM0fS-1_0A%2B3Y3QbbGhA%40mail.gmail.com.
On Feb 25, 2026, at 3:47 PM, Mark S. Miller <eri...@gmail.com> wrote:[+Kris]On Tue, Feb 24, 2026 at 9:54 AM Alan Karp <alan...@gmail.com> wrote:I'd like to add a list of technology options. Clearly, zcap-ld is in the list. I'm not sure about something like the way Agoric has adapted E.You mean Endo http://endojs.org , which is a full E-like distributed persistent* ocap system built on top of Hardened JS as the local ocap language (like local-E) and ocapn as the distributed secure cryptocaps object-invocation protocol. This is like E's CapTP except that ocapn is language independent. This of course fully supports Stiegler's 7 aspects, just as E does.Kris (cc'ed) both believe in UI affordances for transitive revocation in our UI (the Familiar). But his emphasis is on full transitive revocation, which arguably has a simpler more intuitive UI. My emphasis remains on transitive selective revocation, like SCoopFS and Horton. I expect we'll get Kris' wish soon and my wish much later.
On Thu, Feb 26, 2026 at 1:13 AM Chris Hibbert <hib...@mydruthers.com> wrote:
>
> This doesn't seem to have been delivered, so I'm resending.
>
> On 2/25/26 12:03 PM, Matt Rice wrote:
>
> I'm saying two things.
>
> First, Marc's original 6 things:
> Sharing →Dynamic ∧ Attenuated ∧ Chained ∧ Cross domain ∧ Recomposable
> ∧ Accountable
>
> Second, the original 6 things implies revocation.
> Dynamic ∧ Attenuated → Revocation
>
> Thus:
> Sharing → Revocation
>
>
> This seems like an overgeneralization to me. I've used several OCap based systems in which attenuation was trivial, and revocation took some work, and was done in different ways in different subsystems (if at all).
>
> Attenuation can mean only that I get read-write access to some object, and I can trivially wrap that and pass on read-only access to my clients.
>
> If I want to add revocability, I have to write a different wrapper, and manage an API allowing someone to wrap an OCap, and return two facets to their clients so they can keep the management facet, and pass on the revocable facet. The stricter the type system, the more likely it is that I'll have to coordinate with the provider of the original OCap in order to make my wrapped version compatible when it should be and recognizably incompatible to clients who needed the fully-powered version.
>
> Revocability is implied by our standard tooling for sharing, but if it's not built in to the programming library, it's a hassle to provide.
>
I certainly agree with this, and am not arguing against any of this,
I'm just arguing that tooling provided revocation is easy to
underspecify with too simple of an implementation for all purposes.
Thus advocating for implementing it in the standard tooling probably
needs to be done with care and
taking into consideration the various corner cases and pitfalls of
distributed faults. I don't doubt that people of this audience could
build a good system-wide revocation mechanism. I doubt that people
from a general audience could if given a vague description of
revocation, and thus advocating for a system wide revocation mechanism
to such an audience has risks...
If anything my argument is that all the complexity of the application
derived revocation mechanisms doesn't just disappear by making it
system wide, but may alter it or in some cases introduce complexities
like the need for irrevocability.
> Chris
> --
> When telephones, airlines, radio and TV, and trucks were
> deregulated in the 1970s, we found that all the stories about
> consumer and social harm, safety, or “market failures” were wrong,
> but regulatory stifling of innovation and competition was very
> real. -- John Cochrane (aka Grumpy Economist)
> https://www.grumpy-economist.com/p/ai-society-and-democracy-just-relax
>
> Chris Hibbert
> hib...@mydruthers.com
> Blog: http://www.pancrit.org
> http://mydruthers.com
>
>
>
>
>
> --
> You received this message because you are subscribed to the Google Groups "friam" group.
> To unsubscribe from this group and stop receiving emails from it, send an email to friam+un...@googlegroups.com.
> To view this discussion visit https://groups.google.com/d/msgid/friam/a54b77a5-4f90-4190-9676-652de57d6a48n%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "friam" group.
To unsubscribe from this group and stop receiving emails from it, send an email to friam+un...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/friam/CACTLOFqMdDKjrv5R7UZmLF%3DRFTJccskzxPU7uivAbgV0OWh_zQ%40mail.gmail.com.
On Tue, Feb 24, 2026 at 5:54 PM Alan Karp <alan...@gmail.com> wrote:
>
> I'm working with folks on the Distributed Identity Foundation's Trusted AI Agent Working Group's Delegated Authority Task Force. (Whew! That's a mouthful.)
>
> I've produced a document spelling out the requirements, which includes Stiegler's 7 aspects of sharing. (He said 6, but he forgot about revocation.) Unfortunately, the document is not ready for public release yet.
>
Maybe, but you can also argue that revocation are just aspects of the
first two (dynamic & attenuation), it's just the south pole of
attenuation.Yes. I like to say that revocation is temporal attenuation. Revocable Carol provides Bob all the authority of Carol until Alice decides to shut it off.
--
You received this message because you are subscribed to the Google Groups "cap-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cap-talk+u...@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CACTLOFpozSRjgiwzWYEaNUpL_T6V5Co5-VAYHDc9k3TDwEoaig%40mail.gmail.com.
I think that is one of (at least two) ways to look at revocation, basicly the caretaker way. A second (incompatible) perspective I've used in the past was:
* Revocation turns an entity into a namespace.
The differenence lies in how re-delegation is perceived. If Alan delegates something to me and I delegate it to you and Alan then revokes his delegation to me, you will lose access too in the caretaker way of thinking about delegation.
But in the entity-to-namespace way of thinking, revoking my access would turn Alan's view of me into a Rob namespace where my delegation to you would live for Allan to decide upon.
There are two topics here.For one, I don't know that you can always prove that a delegation of a capability can't be revoked. In an ocap program, you can use EQ to test the reference you've been given against that of the desired endpoint, but only if you know it. I guess you could add a "not revocable" caveat to a certificate capability, but how do you know the caveat will be enforced?
To view this discussion visit https://groups.google.com/d/msgid/cap-talk/CANpA1Z08-H_b3OQrCn7DvL3mB3XAGH7en_wuUFvka1csUMpncw%40mail.gmail.com.