I like the general idea but it doesn't seem like bitvm computes anything here, so it seems like a generic 2 of 2 multisig address would work better

If Alice wants to buy 5 btc, she deposits 10 as payment + collateral. Bob accepts by depositing 10 as well. In the happy path, Alice sends Bob the normal money they a payment method they agree on, and they cosign to give Alice 15 btc (so she is up 5) and Bob the remaining 5. If either party refuses to follow the protocol, the other party refuses to cosign anything, so they both lose money. This incentives following the happy path without needing any of bitvm's complexity.

Reply to this note

Please Login to reply.

Discussion

Thank you for your comments⚡💜

I understand a 2-of-2 multisig would be better here

Thank you Super Testnet. I have been thinking about this, and I’m running into issues with a multisig setup. Perhaps this is something bitVM is also unable to solve.

If Alice adds funds for collateral and Bob refuses to respond, then Alice loses her collateral and it cost Bob nothing.

We could make it where Alice can get her money back if Bob doesn’t respond. However, if Bob does respond and Alice pays, Bob could use his own private key to take back his part. Now Bob has his 10 BTC + the payment, but Alice is short the payment and only gets her collateral back.

So the incentives are better if it’s all or nothing for both, but Bob can be evil for free. Would bitVM run into the same dilemma?

I would have them both fund the multisig simultaneously in the same transaction. A psbt would help with this. Alice and Bob both add a 10 btc input to the psbt and the psbt has one 20 btc output that goes into the multisig address. Then both review/cosign/broadcast it. That way neither party sends any money unless both do.

Yes that’s perfect. So the multisig does not start until both have committed to paying. Once the exchange begins, neither can back out without losing everything.

Very cool. I have updated KNC to explain this in more detail. Seems like this would be relatively easy to build.

Awesome! Btw the GitHub description still says "Know No Customer (KNC) a bitVM Bitcoin exchange"

Consider changing that to something like "a bitcoin exchange based on multisig" or "based on incentives" or even "based on the game of chicken"

(I also like "based on mutually assured destruction")

Description has been changed. I like mutually assured destruction.

Okay, I have now contributed very little to this project haha.