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

Multisignature escrow implementation #10

Open
layters opened this issue Sep 13, 2022 · 5 comments
Open

Multisignature escrow implementation #10

layters opened this issue Sep 13, 2022 · 5 comments
Labels
💰 bounty Get paid by completing a task 🆘 help wanted Extra attention is needed urgent Required to move forward 👍 enhancement New feature or request
Milestone

Comments

@layters
Copy link
Owner

layters commented Sep 13, 2022

Details

Neroshop will provide three payment options:

  • Escrow (2-of-3 Multisignature wallet)
  • Multisig (2-of-2 Multisignature wallet)
  • Finalize (direct payment to wallet address or no escrow)

2-of-3 multisig will be more centralized than 2-of-2 as it will require an intermediary or arbitrator which is likely to be a member of the neroshop team and a 0.5% fee will be charged for using this option.

With 2-of-2 multisig, both the buyer and seller must agree on the transaction in order for funds to be released to the seller. If either party disagrees and chooses not to sign a transaction then neither the buyer nor seller will receive the funds and the funds will be lost forever.

The finalize option allows buyers to send funds directly to the seller's wallet address without the need to use an escrow, but this option should only be used if the seller has a really good reputation and can be trusted.

References

https://monerodocs.org/multisignature/
https://monero.stackexchange.com/questions/5646/how-to-use-monero-multisignature-wallets-2-2-2-3 (Very detailed explanation here)
https://moneroecosystem.org/monero-cpp/annotated.html (API Documentation)
woodser/monero-cpp@24a39aa#diff-ab7fcd670a816598297a08343122e2f938c6e0db94a258c4ed275eeec840aa37R20

Files

https://github.com/larteyoh/testshop/blob/main/test/escrow.cpp
https://github.com/larteyoh/testshop/blob/main/test/escrow.hpp

Bounty reward

$1500 USD

This task must only be worked on after i2pd integration is completed

@layters layters added 👍 enhancement New feature or request 🆘 help wanted Extra attention is needed labels Sep 13, 2022
@layters layters added this to the todo milestone Sep 13, 2022
@layters layters added the 💰 bounty Get paid by completing a task label Sep 27, 2022
@layters layters changed the title Add multisignature escrow Add multisignature escrow [$100] Sep 27, 2022
@layters layters changed the title Add multisignature escrow [$100] Add multisignature escrow [$250] Oct 17, 2022
@DonW16
Copy link
Contributor

DonW16 commented Oct 21, 2022

Multisignature via Monero needs to be carefully considered as multiple vulnerabilities have been discovered within the implementation and is not fully supported by Monero yet?

Using the Monero v0.18.1.2 (latest) binaries using any mms command gives the following warning!

[wallet 44y8y5 (no daemon)]: mms info
Error: Multisig is disabled.
Error: Multisig is an experimental feature and may have bugs. Things that could go wrong include: funds sent to a multisig wallet can't be spent at all, can only be spent with the participation of a malicious group member, or can be stolen by a malicious group member.
Error: You can enable it with:
Error:   set enable-multisig-experimental 1

@layters
Copy link
Owner Author

layters commented Oct 21, 2022

I wasn't even aware of this. If it is experimental then it may need further testing until we can use it for production.

Edit 1: The issue has been fixed as mentioned by a Monero dev here

Edit 2: The known issues were fixed but the experimental opt-in thing was added so people are aware that no guarantees are made about unknown flaws existing.

@layters
Copy link
Owner Author

layters commented Oct 21, 2022

By the way, thanks for noticing and pointing this out. I must say, you have a good eye 😉.

@DonW16
Copy link
Contributor

DonW16 commented Oct 22, 2022

No problem! Kinda strange how multisig is an experimental opt-in thing even though they're no current vulns for it? 🤔

@layters
Copy link
Owner Author

layters commented Oct 22, 2022

It sure is. I guess the Monero team is just trying to be careful.

@layters layters changed the title Add multisignature escrow [$250] Add multisignature escrow Oct 23, 2022
@layters layters removed the 💰 bounty Get paid by completing a task label Feb 24, 2023
@layters layters pinned this issue Aug 1, 2023
@layters layters changed the title Add multisignature escrow Multisignature escrow implementation Aug 1, 2023
@layters layters added the urgent Required to move forward label Aug 1, 2023
@layters layters added the 💰 bounty Get paid by completing a task label Mar 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
💰 bounty Get paid by completing a task 🆘 help wanted Extra attention is needed urgent Required to move forward 👍 enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants