Coinjoin with less steps using ALL|ANYONECANPAY



Summary:

A proposal was made in a Bitcoin Developers discussion group regarding coinjoin implementations and the order in which inputs are registered. It was suggested that registering inputs first could make denial of service (DoS) attacks more expensive, as an attacker would need more utxos to maintain the attack. However, it was pointed out that using ALL|ANYONECANPAY could have drawbacks, such as not being able to verify beforehand that the other inputs are the desired inputs or allowing inputs from sanctioned addresses. The code for verifying psbt on the client side in ln-vortex was provided as an example. The original poster then presented a proof of concept using ALL|ANYONECANPAY to reduce steps in coinjoin, which involved one user creating a signed PSBT with one input and all registered outputs, while other participants added their inputs to the PSBT before finalizing and broadcasting the transaction. The Tx and snippet can be found in the post. The poster plans to use this method in joinstr if there are no major drawbacks and it can be implemented by other coinjoin implementations.


Updated on: 2023-06-16T18:37:38.021145+00:00