Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
Fix issue 4793 - M/N multisig transaction signature #4845
This PR fixes issue #4793
The problem was in insufficient LR pairs and supplementary transactions generated. Unlike standard N/N and N-1/N cases M/N sometimes requires more transaction generated to exclude all combinations of signers that may possibly to decline current transaction.
Hence, in 2/4 wallets with signers A, B, C and D with A be a transaction creator wallet needs to pick one more signer by excluding 2-of-3 possible signers combinations. So wallet have to create transactions with following signers to exclude:
I think it's worth to include this fix in point release as well.
PS. Huge thanks to @rbrunner7 for active collaboration and his help with testing it!
I can't comment about the code because I don't know enough about the technicals of Monero multisig, but I can confirm that I did extensive tests with this PR checky-picked into master HEAD as of today, and errors that I had before (reported as issue #4793) did not occur anymore, neither did new errors occur.
I tested 3/3, 2/3, 2/4 and 3/7 multisig. For the M/N variants I did test transactions where all coalition members cooperated and the wallets received all sync info / key images from all other wallets, and tests where only a subset of coalition members exchanged sync info with each other, excluding other members, i.e. 2 in the 2/4 case. Both kinds of tests worked.
I consider it highly likely that with this PR generalized M/N multisig is fully working.