New paper: "Distributed Electronic Rights in JavaScript"

Sam Tobin-Hochstadt samth at
Mon Jan 14 15:18:48 PST 2013

On Mon, Jan 14, 2013 at 6:05 PM, Mark S. Miller <erights at> wrote:
> A fair point. By "contracts" in that first word, we refer to
> real-world contracts. For software "contracts", we initially had a
> footnote trying to explain the relationship between the "smart
> contracts" we're talking about and the type-like "contracts" that this
> literature refers to. Perhaps unwisely, I removed it because I thought
> it created more confusion than it cleared up. By introducing "the
> exchange of rights" in that same first sentence I hope we make it
> clear that we're talking about a different kind of contract, one
> closer to the real world notion.

I disagree, in two senses.  First, behavioral software contracts in
the sense of Meyer have a close analogy to real-world contracts, in
particular contracts for the exchange of goods.  For example, a spot
contract is just an agreement to exchange some good meeting some
specified description for another (usually one is money).  Second, I
believe that your escrow contracts are closely related to software
contracts, in the sense that we could formulate them as software
contracts in a sufficiently-expressive contract system, where the
contract/runtime system itself plays the role of trusted host.


> I'll see if I can find the footnote I deleted, at least for the record
> here on es-discuss ;).
> On Mon, Jan 14, 2013 at 2:57 PM, Sam Tobin-Hochstadt <samth at> wrote:
>> On Mon, Jan 14, 2013 at 5:46 PM, Mark S. Miller <erights at> wrote:
>>> At
>>> Paper for invited talk at ESOP2013
>>> Final already submitted, but comments of course appreciated anyway.
>> Given that the first word of your abstract is "Contracts", it's
>> surprising to me that you don't reference any of the quite extensive
>> literature on software contracts, starting with Bertrand Meyer in the
>> 80s, and continuing with Findler and Felleisen's work on higher-order
>> contracts over the past 10+ years, which has even been implemented for
>> JS by Tim Disney using proxies [1].
>> Sam
>> [1]
> --
>     Cheers,
>     --MarkM

More information about the es-discuss mailing list