The solution is simple, and it's already in place with credit cards. Haven't you been asked to show ID when using a credit card?
No, I haven't.
Why don't you take the fingerprints of your customers? It is more secure than IDs.
Wasn't bitcoin supposed to be anonymous, just like paying with cash?