I think you can get there with something like Urbit IDs that are easy to ban. If IDs are not infinite you can some protection against abuse - pairing that with some proof-of-humanity and you can get closer, but there are still issues of someone doing the proof and then selling their ID to a bot. At least if it's easy to ban you can try to make that not economical. Doubly true if the IDs have a non-zero (but low) cost.
Helps make you resistant to a sybil attack: https://en.wikipedia.org/wiki/Sybil_attack
The problem isn't trivial though - it's not obvious what will work best and it'll likely always be somewhat of an arms race, especially if you want to keep privacy.