For example, I transfer to an Electrum address from Coinbase. Then I make a transaction that has a single input spending that address, and two outputs, both with newly derived addresses that belong to me (unknown at that point to the chainalysis). Then I make a third transaction with one one input, spending one of those two new addresses that belong to me, and one output with the address of the poker site. How does Chainalysis know that the new address that was spent by the input of that last (third) transaction to the poker site was mine (at least till I spend the second output from the second transaction)? What am I missing?
From what I know, chain analytics uses various heuristics and it's inherently probabilistic: the more hops, the less certainty