[bisq-network/proposals] Reduce trade protocol to 1 single transaction (#279)

chris-belcher notifications at github.com
Wed May 5 00:15:54 CEST 2021


A couple of thoughts:

1. If I understand correctly, the big scripts (involving OP_EQUALVERIFY, OP_IF, etc) have to be recorded into the blockchain for each bisq trade. There should be a way to avoid this using a coinswap transform, this is when the coins are held in a 2-of-2 multisig with a pre-signed transaction that pays to the big script. In the unhappy non-cooperative case either Alice or Bob can get this pre-signed transaction mined, but in the happy case Alice and Bob would just sign each other's transaction because they are confident that they'll get their money anyway and signing each other's transactions saves miner fees. This would mean in the happy case the blockchain only ever sees a 2-of-2 multisig (or taproot single-sig with musig) which reduces miner fees and improves privacy. This is exactly the same way Lightning channels work, remember that when lightning channels are closed cooperatively the blockchain only sees a 2-of-2 multisig. This is even better than using taproot's multiple paths.
2. When writing the big script, it's a good idea to avoid the [oversized preimage attack](https://lists.linuxfoundation.org/pipermail/lightning-dev/2016-May/000529.html) by adding something like `OP_SIZE 32 OP_EQUALVERIFY`.
3. Check if you can make use of [private key handover](https://gist.github.com/chris-belcher/9144bd57a91c194e332fb5ca371d0964#private-key-handover). This is when there are coins in a 2-of-2 multisig, with Alice and Bob each holding one key. When Bob is satisfied that Alice legitimately should possess the coins then Bob will send his private key over to Alice. Alice now controls both keys in the 2of2 multisig and therefore she now possesses the coins (although she'll still need to watch the bitcoin network and be ready to react to another pre-signed transaction being broadcast). This has a benefit that Alice can leave her coins unspent indefinitely.
4. All these protocols at some points have a requirement that the user be constantly watching the bitcoin network and be ready to react. How about creating some kind of watchtowers? It should be possible to encrypt the justice transactions and send them so that watchtowers can work without privacy loss. Lightning is intended to work this way so why not Bisq as well.

-- 
You are receiving this because you are subscribed to this thread.
Reply to this email directly or view it on GitHub:
https://github.com/bisq-network/proposals/issues/279#issuecomment-832285058
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bisq.network/pipermail/bisq-github/attachments/20210504/6f67c7f2/attachment-0001.htm>


More information about the bisq-github mailing list