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

feat(vats): attenuate access to zoe.install, zoe.startInstance #4405

Closed
wants to merge 4 commits into from

Conversation

dckc
Copy link
Member

@dckc dckc commented Jan 27, 2022

This is sort of a simple idea that falls out of the updated bootstrap structure.

refs #4395, #3725

Is there a nicer idiom for overriding selected methods and forwarding the rest?

Security Considerations

home.zoe1 wraps zoe so that install and startInstance always throw.
full home.zoe is only granted in the sim chain.

@dckc
Copy link
Member Author

dckc commented Jan 27, 2022

Is there a nicer idiom for overriding selected methods and forwarding the rest?

Building the attenuated zoe in the zoe vat makes it all much more straightforward.

@dckc dckc self-assigned this Jan 27, 2022
@dckc
Copy link
Member Author

dckc commented Jan 27, 2022

discussion with @warner , @michaelfig suggests:

  • rather than home.zoe1, use a forwarder for home.zoe and update the 1 forwarder later
    • it's not clear to me how to code that up. halp, @michaelfig ?
  • make sure whatever zoe the wallet uses is the limited one

dckc and others added 4 commits January 27, 2022 14:33
home.zoe1 wraps zoe so that install and startInstance always throw.
full home.zoe is only granted in the sim chain.

construct attenuated zoe service in the zoe vat
@michaelfig
Copy link
Member

@dckc, I think that we still need this for MN-1. Can you integrate it with the latest boot core (once it's settled a bit)?

@dtribble
Copy link
Member

dtribble commented Mar 8, 2022

It's worth considering just separating out the instance creation authority into a separate ocap.


const zoeWithoutInstallation = Far('zoe without install/startInstance', {
...zoeService,
install: (..._args) => assert.fail('contract installation prohibited'),
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This indicates to me that they just be removed from the ZoeService.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Then how does any privileged component install a contract?

Copy link
Member Author

@dckc dckc Mar 8, 2022

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

oh... I see your comment above...

I don't have experience expertise to treat Zoe other than a "no user serviceable parts inside" component. So that's outside the scope of this PR.

@erights
Copy link
Member

erights commented Apr 9, 2022

@dckc is this still relevant? I recall a conversation that, IIRC, changed our view of this one.

@dckc
Copy link
Member Author

dckc commented Apr 9, 2022

I think it's still relevant. I'll know better when I look into it more closely.

@dckc
Copy link
Member Author

dckc commented Jul 5, 2022

yeah; we're not likely to take this approach.

@dckc dckc closed this Jul 5, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants