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 efficient generation of multisig wallet addresses [$2500] #86

Closed
woodser opened this issue May 25, 2021 · 12 comments
Closed

Implement efficient generation of multisig wallet addresses [$2500] #86

woodser opened this issue May 25, 2021 · 12 comments
Assignees
Labels
a:monero Changes related to Monero 💰bounty There is a bounty on this issue is:feature Request for a new feature P4 Scheduled task, but low priority

Comments

@woodser
Copy link
Contributor

woodser commented May 25, 2021

Currently a taker must pay a trade fee before initializing the multisig wallet with the maker and arbitrator in order to prevent takers from spamming peers with unpaid work by creating multisig wallets.

As a result, the taker must have 2 outputs available in order to take a trade, one to cover the trade fee and one to deposit to multisig, which complicates the user experience. If the multisig wallet address could be known ahead of time, the taker could use one output to pay both the trade fee and the deposit tx in a single transaction.

Chapter 10 of Zero to Monero describes a way to derive the address of a multisig wallet before initializing the wallet among peers. The first two peers (maker and arbitrator) create a shared secret and publish its public key which the third peer (the taker) can use to derive the multisig address before the wallet is initialized among them.

This issue requests implementing the ability to derive multisig wallet addresses using this method. The implementation should be added to monero-project.

@erciccione erciccione added a:monero Changes related to Monero is:feature Request for a new feature 💰bounty There is a bounty on this issue labels May 25, 2021
@erciccione erciccione changed the title Implement efficient generation of multisig wallet addresses Implement efficient generation of multisig wallet addresses [$2500] May 25, 2021
@github-actions
Copy link

There is a bounty on this issue, the amount is in the title. The bounty will be awarded to the first person(s) who resolves this issue. Read the full conditions in the 'bounties.md' file. If you are starting to work on this issue, please write a comment here, so that we can assign the issue to you and avoid duplicated work.

@UkoeHB
Copy link

UkoeHB commented May 29, 2021

Until commit-and-reveal is implemented (assuming it does...) (see ZtM2 section 9.3), you will need to make sure makers and takers never re-use keys between orders. Always generate new subaddresses. Even that restriction may not be enough to prevent Wagner attacks (ask a real cryptographer).

@UkoeHB
Copy link

UkoeHB commented May 31, 2021

I am investigating this issue. Multisig wallet/address generation needs a major overhaul.

@woodser
Copy link
Contributor Author

woodser commented May 31, 2021

MRL is also investigating multisig with triptych.

@erciccione
Copy link
Contributor

A good point from tobtoht (i invited them to join the conversation here):

Right now I'm am waiting on Sarang to get back with details on how multisig with work with Triptych.
With Triptych on the horizon it might be a waste of time to build on top of the current ms implementation as a lot of ms related code and wallet APIs may need to be changed/rewritten.

@UkoeHB
Copy link

UkoeHB commented Jun 1, 2021

I am operating on the assumption that wallet/address generation will be unaffected. AFAIK it is mainly key image construction that requires new code/ideas (see here for example).

@UkoeHB
Copy link

UkoeHB commented Jul 11, 2021

I have an outline of the address generation workflow, but won't be able to pursue an implementation for a while. If someone else wants to pick this up from my notes, I am happy to collaborate.

@erciccione erciccione added the P3 normal priority label Jul 11, 2021
@woodser
Copy link
Contributor Author

woodser commented Jul 11, 2021

Note that efficient multisig creation is more an optimization than necessity now for Haveno.

The protocol will lock both traders into multisig with only 1 output with or without efficient multisig.

@UkoeHB
Copy link

UkoeHB commented Aug 19, 2021

A semi-stable branch to resolve this issue is prepared. It is waiting on this PR.

@erciccione erciccione added P4 Scheduled task, but low priority and removed P3 normal priority labels Jan 17, 2022
@erciccione
Copy link
Contributor

PR: monero-project/monero#8203

@NorrinRadd
Copy link

@woodser is this still open?

@woodser
Copy link
Contributor Author

woodser commented Apr 6, 2024

This hasn't been implemented, but closing this as stale and since Haveno no longer requires it for spam, since the traders sign a penalty tx with the arbitrator.

@woodser woodser closed this as completed Apr 6, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a:monero Changes related to Monero 💰bounty There is a bounty on this issue is:feature Request for a new feature P4 Scheduled task, but low priority
Projects
None yet
Development

No branches or pull requests

4 participants