citp / BlockSci

A high-performance tool for blockchain science and exploration
https://citp.github.io/BlockSci/
GNU General Public License v3.0
1.34k stars 259 forks source link

Just a question on CoinJoin detection. #350

Closed aingo03304 closed 4 years ago

aingo03304 commented 4 years ago

Hello, I found something suspicious on isCoinJoin

        using pair_type = decltype(outputValues)::value_type;
        auto pr = std::max_element(std::begin(outputValues), std::end(outputValues),
                                   [] (const pair_type & p1, const pair_type & p2) {
                                       return p1.second < p2.second;
                                   }
                                   );

        if (pr->second != participantCount) {
            return false;
        }

        if (pr->first == 546 || pr->first == 2730) { // here
            return false;
        }

Can I know why pr->first is 546 or 2730 implies the tx is not CoinJoin? I know 546 is the common dust-limit, but cannot find any information about 2730.

Thanks in advance!

maltemoeser commented 4 years ago

See here, it's mostly to avoid false positives I believe

aingo03304 commented 4 years ago

@maltemoeser Then, can I know why the tx is not coinjoin if the dust-limit appears most?

maltemoeser commented 4 years ago

It's unlikely someone would create a CoinJoin to send dust-sized outputs. But it's just a heuristic, if you have contrary evidence please feel free to share!