http://fairhii23nuda5oc7ykidw52c7dfq7r3seuz6lrmbvavh7dizhjz3qqd.onion/blog/blockchain-heuristics-and-the-limitations-of-chainalysis
This process relies heavily on heuristics—rules of thumb that are likely but not guaranteed to be true. For example, the "change address" heuristic attempts to identify which output in a transaction is the sender's change, based on patterns in the script type, output order, or value.