Allow onion services to distinguish clients from each other
We should provide onion services with the option to distinguish their anonymous users from each other, and also to handle those clients in a clinical way to do diagnostics, rate-limiting, abusive client blocking, etc.
One proposed way to do so comes from an old tor-dev thread which suggests we assign a virtual IP to each client based on the circuit ID: https://lists.torproject.org/pipermail/tor-dev/2014-March/006610.html
I2P seems to have implemented a derivative of this idea. I wonder how it works for them: https://github.com/i2p/i2p.i2p/blob/920b14212fa80a3a0e92d6e919fdae7e39ed22d5/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelServer.java#L739