You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
#399 reminds me of something I had never previously explained. There's a lack of expressiveness of our current higher-order contract notion via invites that we should eventually repair. I'll tell the story as a variation of our normal Alice-Bob-Fred coveredCall example.
In the normal example, Alice writes a call by making an atomic offer, say for 100 shares of Q for 300Ag, where Alice's 100Q are placed in escrow, overing the call. Because Alice's offer is atomic, Bob is invited only to exercise the full call or none of it. Likewise, Bob can only sell all or none to Fred, unless Bob goes to the trouble of making yet another derivative contract. (The fact that Bob can, means that we don't currently have any ultimate lack of expressiveness. But we need something less awkward.)
Say instead, that Alice's offer is expressed as a multiple -- 100 time 1Q for 3Ag each. The same 100Q are placed into escrow. The multiples representation is just a clever way to express divisibility with quantization and without roundoff hazard. Multiply rather than divide.
Bob could still be invited to participate in this contract as a whole. However, what if invites could have the kind of fungibility suggest at #399 ? Then, the invite given to Bob could be a fungible quantity of 100 identical invites, each to a corresponding division of Alice's escrowed Q. Bob could sell a portion of this to Fred.
Given that contracts are stateful programs, it is tricky to figure out how to divide the behavior of an arbitrary stateful program into independent slices that can operate on disjoint quantities. I have some thoughts on this, but it's a long way from a working plan. Generalizing invites this way will take some research.
The text was updated successfully, but these errors were encountered:
#399 reminds me of something I had never previously explained. There's a lack of expressiveness of our current higher-order contract notion via invites that we should eventually repair. I'll tell the story as a variation of our normal Alice-Bob-Fred coveredCall example.
In the normal example, Alice writes a call by making an atomic offer, say for 100 shares of Q for 300Ag, where Alice's 100Q are placed in escrow, overing the call. Because Alice's offer is atomic, Bob is invited only to exercise the full call or none of it. Likewise, Bob can only sell all or none to Fred, unless Bob goes to the trouble of making yet another derivative contract. (The fact that Bob can, means that we don't currently have any ultimate lack of expressiveness. But we need something less awkward.)
Say instead, that Alice's offer is expressed as a multiple -- 100 time 1Q for 3Ag each. The same 100Q are placed into escrow. The multiples representation is just a clever way to express divisibility with quantization and without roundoff hazard. Multiply rather than divide.
Bob could still be invited to participate in this contract as a whole. However, what if invites could have the kind of fungibility suggest at #399 ? Then, the invite given to Bob could be a fungible quantity of 100 identical invites, each to a corresponding division of Alice's escrowed Q. Bob could sell a portion of this to Fred.
Given that contracts are stateful programs, it is tricky to figure out how to divide the behavior of an arbitrary stateful program into independent slices that can operate on disjoint quantities. I have some thoughts on this, but it's a long way from a working plan. Generalizing invites this way will take some research.
The text was updated successfully, but these errors were encountered: