How does dumplings work? Does every coinjoin added as wasabi needs to be a legit coinjoin transaction done by using zkSNACKs coordinator?
-
1Dumplings is 99% accurate for Wasabi Wallet 1.0 coinjoins according to published research: arxiv.org/abs/2109.10229– nopara73Commented Apr 7, 2022 at 18:16
-
1Dumplings stats are misleading and anyone who reads code or tries below PoC could understand it.– user133407Commented Apr 7, 2022 at 21:12
-
1@nopara73: I don't see any indication that this account is a sockpuppet, nor that it has an agenda besides being interested in privacy tech and asking critical questions about it. I'm not familiar with dumplings. Could you please point out what in your eyes is problematic with this question or the answer?– Murch ♦Commented Jul 1, 2022 at 11:28
-
1It all started when the cult of Samourai Wallet created BitcoinKPIs.com with proprietary code and faked the Wasabi volumes. We know this, because the numbers are different from the numbers in Dumplings. This is a big problem for them, since Dumplings is open source and by pure chance it happened to also get an independent academic peer review. This Q&A is part of a concerted effort of trying to discredit Dumplings. See the way OP references this question from other SM as a proof of Dumplings being discredited: mobile.twitter.com/1440000bytes/status/1512560744134553603– nopara73Commented Jul 1, 2022 at 13:38
-
I do not work for Samourai, love to research about privacy. In fact recently reported a bug in Samourai. I found issues with Dumplings and anyone can understand it. There is no rocket science. It has some conditions and fake coinjoin can be created based on it. I will keep writing about different things related to privacy.– user133407Commented Jul 1, 2022 at 14:12
1 Answer
Dumplings scans blocks and tries to find transaction that match certain conditions. It is not necessary all coinjoin transactions added as wasabi in the stats are done by users or using zkSNACKs coordinator. There can be false positives or wash mixing involved in it.
For wasabi, all native segwit transactions that have more than 10 outputs, more inputs than outputs and most frequent equal outputs follow wasabi denominations will be added as wasabi volume in dumplings stats after sync.
This can be confirmed with a proof of concept on signet:
Create a signet wallet
Run
bitcoind/bitcoin-qt
withsignet=1
config parameter, create 15 new native segwit addresses and send 0.001 sBTC to each address using signet faucet.Setup dumplings
Clone dumplings from GitHub repository and install .NET Core SDK.
Open
Dumplings/Dumplings/Constants.cs
and make the following changes:FirstJoinMarketBlock=1 FirstWasabiBlock=1 FirstSamouraiBlock=1 FirstWasabiNoCoordAddressBlock=1 ApproximateWasabiBaseDenomination = Money.Coins(0.001m) WasabiBaseDenominationPrecision = Money.Coins(0.0002m);
Run dumplings
bitcoind -signet=1 -txindex=1 -server=1 -rpcport=8332 -rpcuser=user -rpcpassword=password -rpcworkqueue=128 dotnet run -- sync --rpcuser=user --rpcpassword=password
After scanning is finished you will see some transactions in scanner directory. There was no wasabi transaction for me although you will find 1 which was created in the end.
Create fake wasabi coinjoin
You should have 15 inputs in your signet wallet with 0.001 sBTC each. Create 10 new addresses, add as recipient in a new transaction with 0.001 sBTC each. Create 2 more new addresses, use one to add as recipient with 0.0002 sBTC and other as custom change address. All addresses should be native segwit.
Broadcast the transaction:
c4f506516ef68c3b3daf71fda5383978b1dca0a85db436b9e731da3b0aef8f19
Check fake wasabi coinjoin in dumplings
dotnet run -- resync --rpcuser=user --rpcpassword=password
Check the transaction in explorers that support signet: https://mempool.space/signet/tx/c4f506516ef68c3b3daf71fda5383978b1dca0a85db436b9e731da3b0aef8f19