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

Incorrect members returned by multisig AID members endpoint when more than one group in an agent #189

Closed
lenkan opened this issue Feb 9, 2024 · 6 comments
Assignees

Comments

@lenkan
Copy link
Collaborator

lenkan commented Feb 9, 2024

See reproduction script here: lenkan/signify-ts@7261f97

Steps to reproduce:

  1. Create two signify clients with AID member1 and member2, respectively.
  2. Create a multisig group multisig1 with participating members member1 and member2.
  3. Call GET /identifiers/multisig1/members
  4. Verify that the number and ids of the returned signing and rotating members are correct.
  5. Create another multisig group multisig2 with same participating members member1 and member2, add a witness or change the signing thresholds so a new prefix is generated.
  6. Call GET /identifiers/multisig2/members

Expected result

The signing and rotating members should only contain member1 and member2:

    {
      signing: [
        {
          aid: 'member1',
          ends: [Object]
        },
        {
          aid: 'member2'
          ends: [Object]
        },
      ],
      rotation: [
        {
          aid: 'member1',
          ends: [Object]
        },
        {
          aid: 'member2'
          ends: [Object]
        },
      ]
    }

Actual result

The signing and rotating members of group multisig2 contains member1, member2 AND two entries of the group multisig1: (Note: multisig1, not multisig2). Like this:

    {
      signing: [
        {
          aid: 'member1',
          ends: [Object]
        },
        {
          aid: 'multisig1',
          ends: [Object]
        },
        {
          aid: 'member2'
          ends: [Object]
        },
        {
          aid: 'multisig1'
          ends: [Object]
        }
      ],
      rotation: [
        {
          aid: 'member1',
          ends: [Object]
        },
        {
          aid: 'multisig1',
          ends: [Object]
        },
        {
          aid: 'member2'
          ends: [Object]
        },
        {
          aid: 'multisig1'
          ends: [Object]
        }
      ]
    }
@psteniusubi
Copy link
Contributor

I believe support for this is not currently implemented.
See here #165

@lenkan
Copy link
Collaborator Author

lenkan commented Feb 9, 2024

I believe support for this is not currently implemented. See here #165

I believe that is a different issue. That one describes the issue of creating a multisig AID with two members from the same agent. Notice in the repro that we create one client, i.e. keria agent, for each of the participants.

@psteniusubi
Copy link
Contributor

Yes you're right.
It looks like it's problematic if you have local or remote multisig identifiers with overlapping public key members.

@pfeairheller pfeairheller self-assigned this Feb 15, 2024
@lenkan
Copy link
Collaborator Author

lenkan commented Feb 29, 2024

@pfeairheller I did some digging today and found that this is originating from keripy basing. I tried to create a reproduction unit test for it here: WebOfTrust/keripy@62348bd.

I.e, creating multiple groups in the same hab yields unexpected results.

@pfeairheller
Copy link
Member

Sorry, @lenkan I already know the cause and we are working on a much more comprehensive solution inside of KERIpy.

@pfeairheller
Copy link
Member

Actually, closing this because it is not a KERIA issue. you can track progress here:

WebOfTrust/keripy#694

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

No branches or pull requests

3 participants