How does dumplings work? Does every coinjoin added as wasabi needs to be a legit coinjoin transaction done by using zkSNACKs coordinator?
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
signet=1config parameter, create 15 new native segwit addresses and send 0.001 sBTC to each address using signet faucet.
Clone dumplings from GitHub repository and install .NET Core SDK.
Dumplings/Dumplings/Constants.csand make the following changes:
FirstJoinMarketBlock=1 FirstWasabiBlock=1 FirstSamouraiBlock=1 FirstWasabiNoCoordAddressBlock=1 ApproximateWasabiBaseDenomination = Money.Coins(0.001m) WasabiBaseDenominationPrecision = Money.Coins(0.0002m);
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:
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