@dt @barbapulpe @PhieLaidMignon Apologies for chiming in in English, my French is... pretty much non-existent. I kind of understand what the thread's been about so far, but writing Frech is not something I can do - please correct me if I misunderstood something.
The trick iocaine employs is that it catches the trivial bots (either via user-agent, or via simple heuristics like a missing sec-fetch-mode header over HTTPS if the user agent includes Chrome/ or Firefox/), and feeds them an infinite maze of garbage, with poisoned URLs. Those poisoned URLs are the real trick: a lot - most, in my experience - of the bots the simple UA / sec-fetch-mode check does not catch, use an URL queue collected by the trivial bots. If we fill that queue with garbage, with URLs we can identify as only ever existing in the maze, we can trivially identify remote controlled Chromes from domestic IPs too.
Recent versions of iocaine also come with a firewall feature: you can firewall certain requests off automatically. For example, if anything hits a poisoned URL, they'll get firewalled off after the first request. After, because we still want to serve them a set of poisoned URLs. But we stop the rest.
This firewalling cut down my daily requests from 100m+ to a mere 2.5-3.5m (and I still serve garbage to 90%+ of them, just to keep those queues filled with trash).
So, yep, iocaine does not have a very complex bot detection mechanism - because it doesn't need one. Half the bots are trivially detectable, and the rest use URL queues collected by the other half.