Double spending means using the same bitcoin to pay in two different transactions. Let’s say I
send one bitcoin to you. This payment goes into an unconfirmed pool to wait for validation.
Thing is, I'm tricky. I also send that same bitcoin to Meg at the same exact time. It also goes
into the unconfirmed pool. So I sent out one Bitcoin twice – to you and to Meg.
These two payments will exit the waiting pool for confirmation checkpoints in the blockchain.
If they get pulled from the pool at the same time both will show that I have the money needed.
In that case, the two blockchain branches will race to verify each transaction. The first to achieve
confirmation will win. But if they reach the next checkpoint in tandem as well, there's another race and so on.
It's highly unlikely (like extraordinarily unlikely) that this race will happen more than six times.
So, many transactions maintain unconfirmed status until they've been through six checkpoints. That's to prevent trixters from double spending.