The blockchain is the oracle. (Note that a DHT can be the oracle too)
Can you explain what the problem is exactly? The infinitely small possibility that the same ID is generated for two different people?
The Oracle problem is defined as the inability for blockchain solutions to validate their data with the real world. In this case it’s that any specific ID is actually a singular human, and not a bot, sock puppet, etc. Note this means any one person cannot get two or more IDs.
How would you implement a system that issued such IDs?
It might be possible to have a multi-layer identity system, where at the top level we have face matching and social vouching to implement uniqueness, and then we add a layer of zero knowledge proofs to allow people to mint new identities for themselves which can share reputation or attestations.
I see three requirements:
1. Uniqueness: Exactly one ID assigned to each human
2. Irrevocability: nobody may invalidate the ID except it’s owner in the case of replacement
3. Anonymity: The owner of the ID can use it to prove their singular humanity without revealing anything else about themselves.
#3 is relatively easy to achieve provided #1 is solved. But #1 requires an Oracle [0] and cannot be decentralized to ensure #2 is upheld.
The only practical solution we’ve found is identity assignment by nation states, eg. social security numbers.
0: https://encyclopedia.pub/entry/2959