In agreement with everyone else in that there is no fool-proof way to accomplish what you are asking for.
That said, the best you can do is to consistently implement checks for small things you might notice as the undesired behavior is being carried out.
For example, in the typical forum or community scenario, most "bad actor" users trying to get around a ban will still be located in a geographically similar region. Their dynamic IP typically comes from their ISP, and all of their unique IPs would typically map to the same region.
In the past, we've created a process which geocodes the users IP. Then we build queries/reports where you query the IP of any banned users, then join to all other users based on similar IP... at first you would look at matches for the first three blocks of the IP... e.g. join on the IP minus the last chunk after the last .
, and include a join condition where the non-banned accounts are created after the ban occurred.
The banned user might have had IP 123.456.79.65, and you might find several more users registered after the ban with ips matching, e.g. 123.456.79.xx or whatever.
Put these into a review queue for your admins or moderators to review.
The key is to have a good communication loop between the people reviewing potential matches and the dev team - so that the processes can be fine-tuned over time.