Here’s the short answer, as I understand it. Any errors contained herein are my own.
A crypto currency like Bitcoin has a potential spoofing problem. If I have a bitcoin and I simultaneous tell two people I’m giving them the same bitcoin, i.e. send transfers within milliseconds of each other, they could both accept the same bitcoin and give me something in return. There’s no central authority, so they both have to take my word for it that I have the bitcoin and that I own it.
Regular currencies use banking systems to avoid this, and they can reverse transactions if I try and give two people $1 simultaneously when I only have $1 in my account.
Bitcoin handles this problem by introducing a deliberate delay. I broadcast the news that I’m sending a bitcoin to X. Lots of people get that, and start a brute-force decryption of a chain of transactions, one of which is mine, and broadcast when they have a solution. This takes time, typically about 8 minutes right now. X listens for these broadcasts. When X gets enough to feel safe, X accepts the transaction.
Under this system, if I try and send the same bitcoin to both X and Y, I have to tell the world about both. Either X or Y will hear about at least one of these double transactions before they close the deal.
The system depends on a lot of people being willing to do time-consuming calculations. Hence there’s a built-in system where if you do enough of these calculations, you get some free bitcoins. These are totally new, and like printed paper money, slightly devalue all existing bitcoins. The intent is that the rate of coin production goes steadily down to avoid inflation.