I always thought a payment can not go thru if it doesn't have at least 1 confirmation no matter how small it is.
Even below the miners fee.
No. Transactions can occur and your balance can change. Confirmations are only there to guarantee that the transaction cannot be reversed or changed. There is no such thing as a transaction "going thru", a transaction either occurs or it does it. Once it occurs, it confirms, or it does not. Both are different things.
Hmmm. So, bitcoin transactions take quite long time to confirm. As reported 15-20 minutes for confirmation. Now, as we have an example, when you are out at McDonald's for a lunch and at payment counter you keep standing for about 15 minutes waiting for your transaction to confirm? Well this can cost you and to the person whom you are paying some precious time. This is a hindrance for bitcoins on the path to becoming mainstream.
Solution to this cannot be done by us. It fully depends on our wallet providers. They should do some amendments in their system to make the process quicker. As definitely, no one can wait in this pace moving world.
That is why 0 confirmation transactions can be used for those small transactions. In reality, 0 conf is safe for many transactions. There is practically no risk with accepting unconfirmed transactions in most cases. Double spending an unconfirmed transaction is still incredibly hard due to the way the network works. It will reject any such double spends and that double spending transaction doesn't get relayed. The only thing to be careful about with accepting unconfirmed transactions is to check the fee that it is high enough to get confirmed and the outputs to make sure there are no dust outputs which can prevent it from being confirmed. Those two things just need to be checked and if everything is high enough, then an unconfirmed transaction can be accepted for payment with little risk of it being double spent.