-
Notifications
You must be signed in to change notification settings - Fork 107
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
[AIP-12][Discussion] Multisig Accounts v2 #50
Comments
This is pretty comprehensive. Only have a couple of thoughts; first is that
Second is that a member should be able to remove themselves, possibly without the MS voting, which could cause balance/threshold issues. Third is that membership itself might want to be a thing that is defined by a check or query (the implementation of this might get a bit into the weeds, so possibly architecturally this is more... a validation before somebody is added to the Rationale: in other ecos there is a desire to gate membership by token ownership, NFT ownership or other voting criteria, such as stake at block height x. It should be noted that in most of these cases there's a disconnect between the concept of membership and voting power which achieves this goal, but it's something worth considering. Excited about this though! We do a lot of multisig/DAO deployments of smart contracts elsewhere and it's really important for community driven projects. |
Thanks a lot for the feedback! @the-frey
For now, without interface, users would have to build a custom module on top of multisig account that enforces these rules. It'd lead to non-trivial duplication of vote (around approve/reject logic) but will have to do for now until we have interface. Do you have any other thoughts/feedback/suggestions? |
aip-12
title: Multisig Accounts v2
author: movekevin
discussions-to:
Status: Draft
last-call-end-date (*optional:
type: Standard (Framework)
created:
updated:
Summary
This AIP proposes a new multisig account standard that is primarily governed by transparent data structures and functions in a smart contract (multisig_account) with more ease of use and powerful features than the current multied25519-auth-key-based accounts. There’s also a strong direction for this to involve as part of a more general account abstraction in Aptos with more types of accounts and functionalities for users to manage their accounts.
This is not meant to be a full-fledged multisig wallet product but instead just the primitive construct and potentially SDK support to enable the community to build more powerful multisig products.
Motivation
Multisig accounts are important in crypto and are used:
Currently, Aptos supports multied25519 auth keys, which allows for multisig transactions:
There are several problems with this current multisig setup that make it hard to use:
Proposal
We can create a more user-friendly multisig account standard that the ecosystem can build on top of. This consists of two main components:
Data structures and multisig_account module
New transaction type to execute multisig account transactions
End-to-end flow
Reference Implementation
(WIP)
aptos-labs/aptos-core#5894
Risks and Drawbacks
The primary risk is smart contract risk where there can be bugs or vulnerabilities in either the smart contract code (multisig_account module) or API and VM execution. This can be mitigated with thorough security audit and testing.
Future Potential
An immediate extension to this proposal is to add script support for a multisig tx. This would allow defining more complex atomic multisig txs.
In the longer term:
The proposal as-is would not allow on-chain execution of multisig transactions - other modules can only create transactions and allow owners to approve/reject. Execution would require sending a dedicated transaction of the multisig transaction type. However, in the future, this can be made easier with dynamic dispatch support in Move. This would allow on chain execution and also off-chain execution via the standard user transaction type (instead of the special multisig transaction type). Dynamic dispatch could also allow adding more modular components to the multisig account model to enable custom transaction authentication, etc.
Another direction multisig account can enable is more generic account abstraction models where on-chain authentication can be customized to allow account A to execute a transaction as account B if allowed via modules/functionalities defined by account B. This would enable more powerful off-chain systems such as games to abstract away transaction and authentication flow without the users needing intimate understanding of how they work.
Suggested implementation timeline
Targeted code complete (including security audit) and testnet release: February 2023.
The text was updated successfully, but these errors were encountered: