Agoric / documentation

User documentation
https://agoric.com/documentation/
Apache License 2.0
15 stars 39 forks source link

zoe contract legibility, invitation legibility properties #746

Open dckc opened 1 year ago

dckc commented 1 year ago

An important feature of our system is that contract participants can know what code is going to run before they accept an invitation. Code goes on chain in source form, not compiled. Installations are first-class objects that appear in Zoe invitations.

I asked @erights if we had written up the motivation for this, and it turns out we have: invitation legibility for higher order smart contracts, aka "the Fred problem" was written up in the 2003 Digital Path paper, with Alice selling her position in a covered call to Fred. In particular, see Figure 3.7 Layered games.

image

The contract host was introduced a bit earlier in the paper, around Fig 3.5. Parties to the contract rely on it to be sure they are playing the same game, i.e. executing the same code.

image

Zoe is an evolution of the contrct host. Note that Zoe serves as one contract host for many contracts. Note the seats in the figure correspond to seats in the Zoe API.

The 2013 Dr. SES paper updates the work for use with ubiquitous technology, i.e. JavaScript. It shows the contract host in Fig. 3., but it doesn't discuss higher order smart contracts.

image

cc @Tyrosine22 @Chris-Hibbert

dckc commented 1 year ago

governance adds a tricky wrinkle:

dckc commented 1 year ago

Agoric’s Composable Smart Contract Framework Reaches Mainnet-1 Milestone has some good discussion too.