Closed wiz closed 4 years ago
@sqrrm @ripcurlx please re-open this critical issue!
It's now my issue.
@sqrrm looks like chimp fixed it by completely re-implementing the trade statistics in #4611
@sqrrm looks like chimp fixed it by completely re-implementing the trade statistics in #4611
Yes. Closing as complete.
Background
When a Bisq trade offer is accepted, each Bisq node participating in the trade creates a TradeStatistics data object and broadcasts it to the P2P network. This trade statistics data is used by every Bisq node to generate trading volume graphs, price charts, and is also available on the Bisq Markets API service.
Issue
The TradeStatistics2 object contains excessive metadata about the trade, specifically the on-chain TXID of the maker's deposit. Unfortunately, because the offerId of every Bisq trade is mapped to the on-chain Bitcoin depositTxID, this allows malicious blockchain analysis of all Bisq trades.
Example data object:
Example blockchain analysis of this trade: https://blockstream.info/tx/9c67453e57cfc80e2c121caf54f8f739cef6c5d7e9afdceec7843436a920f9d8?expand
How to Reproduce
--dumpStatistics=true
option enabledtrade_statistics.db
file will be generated in your$HOME/.bisq/btc_mainnet/db/
datadir.grep Id trade_statistics.json
Expected Result
Bisq should not reveal the on-chain Bitcoin TXID for each trade.
Actual Result
A full mapping of offer IDs to Bitcoin TXIDs for the past 50,000 trades on Bisq is generated. Snippet: