Skip to content

Multisig dedicated tables #5229

@s8sato

Description

@s8sato

The current multisig implementations, which fully utilize metadata for storage, may lead to inconsistencies between roles and account metadata.


Suppose that there are:

  • multisig account msa01 whose signatories are sig0 and sig1
  • accounts sig0 and sig1, each has the multisig role for msa01

They can be inconsistent e.g. multisig account can include/exclude some signatories by democracy without granting/revoking their roles. To prevent this, we should rely on either of them to know the relationship between a multisig account and its signatories:

  1. multisig account metadata
  2. multisig roles

One approach needs an complemental implementation to the other:

  1. e.g. participates_in key-value as a multisig account metadata, to know the multisig account from the signatory
  2. new query e.g. FindAccountsByRole, to know the signatories from the multisig account

Concerns of each approach:

  1. self-modification:
    • by self-modifying signatories, an account can pretend to be a multisig account and have any signatories
    • by self-modifying participates_in, an account can pretend to be a signatory of any multisig account
      • not so much harm unless the multisig account recognizes the account as a signatory
  2. the domain owner can break everything as usual, other than that I see no specific problems atm

So my current outlook is 2. -- remove signatories metadata and introduce FindAccountsByRole or something

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugSomething isn't workingSecurityThis issue asks for improved security

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions