>In fact it might provide a similar kind of protection the physical chip provides for debit cards. Let me explain:
You didn’t explain how this gives you any protection akin to a physical chip on a debit card…
Let me illuminate the problem with a real-world analogy: this system is like me walking into a bank with a list of account names, and the bank issuing me debit cards for those accounts with random PIN codes, no questions asked. I’d have 3 attempts to guess the PIN, then the ATM swallows the card. Same as in OPs login system!
Still, don’t you think banks would be silly to do this?
>So after the 3rd unsuccessful attempt you start from scratch.
You don’t start from scratch. You do 3 attempts per user, period.
>The number of accounts you're targeting does not matter
It does matter. The entropy of their six-digit OTP is small enough that pwning at least one account from a pool of users is feasible. As I’ve shown above, the number of users necessary for pwning at least one account with 50% probability is log(0.5)/log((1 - 10^-[digits])^[attempts per user]). In our case digits = 6, and attempts per user = 3, which gives us ~231000 users. Which isn’t too many for a website.