JoinMarket-Org / joinmarket

CoinJoin implementation with incentive structure to convince people to take part
398 stars 119 forks source link

Doublespending a sendpayment sweep, possible? #769

Open dreboli opened 6 years ago

dreboli commented 6 years ago

I sweeped coins with sendpayment.py -N 0 -m 0 0 wallet.json myownaddress The fees I manually set in joinmarket.cfg were too low.

Tried listunspent_args = [0] but still get [ERROR] There are no utxos in mixdepth: 0, quitting

What are my options?

AdamISZ commented 6 years ago

Unfortunately no, there is no code to allow spending of spent coins in JM right now.

You could take the unconfirmed coins at myownaddress and spend them forward with a high fee, to do "Child Pays For Parent". (often abbreviated to CPFP). I have found this effective in the past. The only other thing you could try is to import all the private keys with coins from mixdepth 0 into another wallet and double spend from there, but clearly that's more of a pain.

dreboli commented 6 years ago

My bitcoin core node offers an option to abandon transaction. Will it be possible to do the sweep again with a higher fee if I abandon the tx on the node that was set in joinmarket.cfg?

AdamISZ commented 6 years ago

I believe so. However, I seem to remember (this is second hand info; I've never done it) that there is a need for a rescan after doing the zap? Will ping IRC in case anyone knows better.

AdamISZ commented 6 years ago

from IRC:

\<arubi> waxwing, if the tx isn't confirmed and dropped then there's no need for rescan, but I think this person should check if their tx was relayed to nodes or not \<oogle> https://chainquery.com/bitcoin-api/abandontransaction \<arubi> if it was then abandoning it wouldn't help because it'll be difficult to double spend anyway. cpfp is the cleanest I think

dreboli commented 6 years ago

Rescan wasn't needed. After abandoning the tx sendpayment.py can see the coins. Haven't tried to broadcast the new tx yet.

dreboli commented 6 years ago

I tried to join the IRC channel but since Tor is banned from the server it would be complicated right now, so I have to ask here:

What would make the double spend difficult? Technically I just had to do the same sweep command with a raised fee set in the .cfg. Miners won't accept the double spent tx? Miners like CPFP tx more than double spend?

AdamISZ commented 6 years ago

Just the generic problem that you don't know what's in people's mempools right, nor policies, it's not global. (Also if you can possibly avoid it don't do it now, we have historically (and enormously!) high fees (https://anduck.net/bitcoin/fees/)).