[E-Lang] Possession as Metaphor (was: Pet Extensions and such (was: what is good about E?))
Ken Kahn
kenkahn@toontalk.com
Thu, 2 Aug 2001 19:39:13 -0700
MarkM wrote:
> Yes. Jonathan Shapiro uses exactly this example to explain capabilities
at
> http://www.eros-os.org/essays/capintro.html#defn . I like it.
>
Thanks for the link. I was a bit surprised to read:
"Capabilities can be delegated. If you give your car key to me, you are
trusting me not to hand it to somebody else. If you don't want [sic] trust
me, you shouldn't hand me the key."
I would have thought you are trusting me to only hand the key to someone
that can be trusted at least much as I can be trusted with your car keys.
E.g. the valet may give the keys to another valet.
>
> The problem is indeed one of mapping the metaphor. The Toontalk lock/keys
> system you describe, as well as SPKI, are actually more key-like than
> capability-like. Toontalk and SPKI are being truer to this
> metaphor-for-capability systems than capabilities themselves are.
>
Well, ToonTalk birds are the true capabilities and differ from keys as you
described (except see below). The proposed ToonTalk keys are really a
special metaphor for some capabilities that debuggers need. A ToonTalk key
lets you inspect and alter a process. By default every process running
locally is inspectable (unlocked) and the proposed change would give you the
ability to lock things.
> What's the difference between capabilities and keys? Keys separate
> designation and authority. Houses and cars that you can't enter are still
> part of your world. In a key system, when you want to enter a house, you
> have to make two choices: "Of all the houses I might want to enter, which
> one do I wish to enter now (and where is it)?" and "Of these various keys
I
> have, which one should I use to enter the house?" The user logically
should
> only need to make one choice. In your key ring system, and SPKI's ambient
> authority, you select the house you want, and if you possess the needed
> authority, it will automatically be found and provided.
>
> In a capability system, to a potential user of the house, the key *is* the
> house. You interact with the house by interacting with the key, or with
> objects derived from interacting with the key. There are not two things
> being brought together. Whereas in a physical key system there are:
> designation (which house) and authority (keys).
>
> So, if both schemes reduce the user's burden to one choice, is there a
> difference? Yes, a huge one, and I think it's the basis for Alan's
concern
> about E-Speak2.2's POLA violating key rings. If the provision of
authority
> is automated, by selection from a large pool, then deputies can be
confused
> into, for example, using their own authority to take actions that they
> "thought" were being authorized by keys handed to them by their clients.
>
This difference applies as well to ToonTalk birds and the proposed keys. But
I don't think it is correct to say that a bird *is* or designates anything
else. A bird is a capability for communicating on some channel where some
service or services are presumed to be listening, but it isn't the thing it
communicates with. The receiving end of a communication channel and an
object need not be one-to-one (though I guess they are in E and actors).
Best,
-ken