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

Implement user interface for multi-signature governance #60

Open
Tracked by #48
jstolarek opened this issue Jul 9, 2024 · 0 comments
Open
Tracked by #48

Implement user interface for multi-signature governance #60

jstolarek opened this issue Jul 9, 2024 · 0 comments
Labels
governance The governance mechanism UI/UX CLI interface and user experience

Comments

@jstolarek
Copy link
Contributor

jstolarek commented Jul 9, 2024

The first stage of implementation of updatable governance was to implement it under the hood in a way that is invisible to the user. This was done in input-output-hk/trustless-sidechain#832.

In order to have this feature fully functional we need to implement a proper user interface for it. In the current implementation, when a command is invoked via a CLI we have transactions constructed, balanced, signed and submitted in one go. With multi-sig governance this will have to change for transactions that require governance approval. Since multiple signatures are now required on certain transactions, we can no longer sign and submit the immediately. Instead, we should print such transactions in serialized form as a response from our endpoints. The user is then responsible for distributing this serialized transaction to governance members. Governance members are then expected to sign the transactions and send the signatures back to the creator of the transaction. Once sufficient number of signatures has been received, they need to be accumulated into one transaction, which must then be submitted.

We need to explore how to perform distributed signing of transactions and then accumulate signatures. This should be possible with cardano-cli transaction witness and cardano-cli transaction sign commands.See input-output-hk/trustless-sidechain#840 for a prototype.

Important points:

  1. It should be possible to store multi-signature governance options in the configuration file. However, this needs to be entirely optional so that users who don't use governance-related actions are not required to specify governance details.
  2. Order of governance members in MultiSigGovParams matters. This is very fragile, in particular when governance are being passed on the command line. It probably makes sense to sort the governance keys in alphabetic order when constructing the Env environment. This should stabilize the user interface.
  3. When a transaction that requires governance signature is to be constructed, we need to know up front which governance members are going to sign it. This is required so that we can generated mustBeSignedBy constraints only for selected governance members, not for all of them. Note that the current implementation requires signatures from all governance members, so is technically m-of-m, not n-of-m.

IOG Jira: https://input-output.atlassian.net/browse/ETCM-7875

@tgunnoe tgunnoe transferred this issue from another repository Jul 25, 2024
@jstolarek jstolarek added UI/UX CLI interface and user experience governance The governance mechanism labels Jul 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
governance The governance mechanism UI/UX CLI interface and user experience
Projects
None yet
Development

No branches or pull requests

1 participant