Two wallets with the same address I understand that one can create a Bitcoin wallet as a pair of numbers (public &amp; private key) with the right specifications and this is done quite easily in places like bitaddress.org
I also understand that the probability of generating two identical public keys is infinitesimally small -- lesser than the probability of being hit by an asteroid, or so I am told.
But it is not zero.
My question is - if a duplication occurs, a hash collision happens, how does the protocol (a) detect it and (b) deal with it. In a simple, everyday hash table application, we do a lookup on the existing hashed values and if we detect a collision we ignore the last created value and generate a new one.
Is there a similar protocol in bitcoin ( or any crypto) address generation?
Creation of an address is an entirely offline operation; there is no communication with the network.
If you'd (with unfathomable luck) create the same address as someone else, then you'll see incoming payments to it appear in your wallet, and be able to spend them.
There is no provision for dealing with this, because there does not need to be any. The probability of this ever occurring is so mind-blowingly small that it is simply not a consideration.
For typical addresses, there exist 1461501637330902918203684832716283019655932542976 valid distinct ones.