# [e-lang] probably cluelessly beating a dead horse

Raoul Duke raould at gmail.com
Sat Feb 23 03:02:23 EST 2008

```hi,

Re: GrantMatcher. I figure most likely I am assuming something I
can't; don't really actually grok the problem; or this reduces to
something which everybody already knows / has described and i just
wasn't paying sufficient attention; etc. :-}

But, is it possible to have a capability be split in half? If so, I
was thinking you could have:

* GM lets c be the capability to send all money at once, "Give me both
the \$10 from Alice and the \$10 from Bob random1 random2 random3
random4"
* GM makes (c1, c2) = split-in-half(c) so c1 is necessary but not
sufficient, likewise c2, ("Give both \$10 Alice the from random1
random3", "me the from and \$10 Bob random2 random4")
* (c1, s1, u1, b1) be (capability, sealer, unsealer, box) where b1 = s1(c1)
* (c2, s2, u2, b2) where b2 = s2(c2)

* GM passes to Alice-to-KEQD (u1, b1) and she passes (u1, b1) to KEQD
* GM passes to Bob-to-KEQD (u2, b2), and he nefariously passes (u2', b2) to KEQD
* KEQD calls c2 = u2'(b2) by which Bob gets c2 but can't use it for
anything since it is gibberish on its own
* KEQD calls c1 = u1(b1) which Bob has no hand in what so ever
* KEQD calls c = join-back-together(c1, c2)
* KEQD now has c to get full \$20 from GM, "Give me both the \$10 from
Alice and the \$10 from Bob random1 random2 random3 random4"
* GM can use standard string equality rather than EQ (um, gosh, come
to think of it, do I grok what we mean by EQ? I was assuming EQ ==
pointer comparison) to test the string against what it knows to be the
real capability string

?
```