Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

zoe contract legibility, invitation legibility properties #746

Open
dckc opened this issue Jan 5, 2023 · 2 comments
Open

zoe contract legibility, invitation legibility properties #746

dckc opened this issue Jan 5, 2023 · 2 comments
Labels
vaults_triage DO NOT USE

Comments

@dckc
Copy link
Member

dckc commented Jan 5, 2023

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
Copy link
Member Author

dckc commented Jan 5, 2023

governance adds a tricky wrinkle:

@dckc
Copy link
Member Author

dckc commented Jan 5, 2023

@Tyrosine22 Tyrosine22 self-assigned this Jan 10, 2023
@ivanlei ivanlei added the vaults_triage DO NOT USE label Feb 6, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
vaults_triage DO NOT USE
Projects
None yet
Development

No branches or pull requests

3 participants