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

Account abstraction/unification #3

Closed
1 task
lrettig opened this issue Feb 11, 2021 · 5 comments
Closed
1 task

Account abstraction/unification #3

lrettig opened this issue Feb 11, 2021 · 5 comments
Assignees
Labels

Comments

@lrettig
Copy link
Member

lrettig commented Feb 11, 2021

https://community.spacemesh.io/t/account-abstraction/151

spacemeshos/SMIPS#49

See also #64

To do:

@lrettig
Copy link
Member Author

lrettig commented Feb 18, 2021

We discussed this on the R&D call yesterday. We have rough consensus that it makes sense to move forward and turn this into a spec. I'll work on a SMIP. The main concerns were from Iddo, who's rightfully worried about: 1. the cost of spinning up SVM just to verify transactions (and the DoS risk), 2. multisigs with daily spending limits being drained through tx fees, and 3. implications on future validator role design. There are also outstanding questions re: how this impacts tx receipts, whether the default() method is allowed to touch state at all, and how we want to "unwrap" or "decompress" transaction data flowing into this method - natively, in Wasm/SVM, or some hybrid.

@avive
Copy link

avive commented Feb 18, 2021

  1. It s my understanding form your notes in the forum that for 0.3 all txs will have the default() that can be implemented w/o spinning up the vm so the concern for svm spinning is only for future custom verifications - right? We also talked about precompiles in the research discussion.
  2. I think that what we said is that this should be a vault setup param which sets the trust level between the parties. So this should be turned off by default for new vaults and only creators of new vaults can enable at spawn time it if they trust each other not to abuse via spending. For 0.3 we don't even need to implement this for vaults at all. Meaning, all spawned vaults will not allow custom verification.

So generally I think that what we want is a design that is forward-compatible to enable this feature (custom default()) in the future w/o changing the transaction syntax and signature procedure and for 0.3 only pre-compiled verification should be supported. This is the only way I see how this big feature can be designed and implemented in matter of weeks and not months.

@lrettig lrettig self-assigned this Feb 18, 2021
@lrettig lrettig added this to the 0.2 Feature Completion milestone Feb 18, 2021
@lrettig
Copy link
Member Author

lrettig commented Feb 19, 2021

Re: 1., we still need to work this part out. It depends partly on design, partly on implementation. Ideally the design would involve spinning up the VM - otherwise, the entire idea of AA and a default() method is kidna pointless - but there are various possible optimizations, such as reusing a "warmed" VM instance, or bypassing the VM altogether for the first version.

This is intended to be a placeholder issue, @avive can we take further discussion to the research forum?

@moshababo moshababo modified the milestones: 0.2 Release, 0.3 Release Mar 1, 2021
@lrettig lrettig changed the title Account abstraction Account unification (account abstraction) Jun 29, 2021
@moshababo moshababo removed this from the 0.3 Release milestone Jun 30, 2021
@lrettig lrettig mentioned this issue Oct 2, 2021
20 tasks
@noamnelke noamnelke changed the title Account unification (account abstraction) Account abstraction Feb 21, 2022
@lrettig lrettig changed the title Account abstraction Account abstraction/unification Jun 23, 2022
@lrettig
Copy link
Member Author

lrettig commented Oct 17, 2023

design is complete and this has been implemented. will revisit as part of ongoing VM design work.

@lrettig lrettig closed this as completed Oct 17, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
Status: Spec available (on-going review)
Status: WIP SMIP (comment)
Development

No branches or pull requests

3 participants