I fairly quickly wrote this up for a software developer, whose products I greatly appreciate, after he gave a hint that he may be interested in learning more. This is the first explanation I'm really happy with, at least in setting out what I want it to achieve. This is intended as a middle-of-the-road between fully explaining the cryptography in a technical manner and only giving vague ideas which don't really explain what's going on or why you should trust it. It's intended for fairly smart, computer-literate people who just haven't spent hours researching Bitcoin. It probably isn't for your grandmother. Any help on it would be appreciated. I'm not certain I got all the technical information right. If I screwed something up, please, please, please correct it. I intend to eventually publish it in the newbies forum and elsewhere after a LOT of revisions.
--
We should first talk about Bittorrent, because Bitcoin takes a lot of networking ideas from there. Bittorrent is a peer-to-peer method of sharing files between many, many people. There are occasionally legitimate uses for this, but it is most frequently used for sharing unauthorized copies of intellectual property. It does this effectively, and even though it's used to violate laws in many countries, it cannot be shut down because it's a protocol, not a product or service.
In Bittorrent, let's say you want to share a collection of songs you made. You'd host your copy of these songs. If someone else wants to download your songs, they'd first download a tiny .torrent file (which is only a few kilobytes in size) from a trusted source and then have to download the data directly from you because, at this point, you're the only peer sharing the files. Once this new person downloads the files from you, they can now share the files with others in the Bittorrent network. This goes on and on until there may be 1,000 different people across the globe sharing your songs with other people.
Everyone's sure they still have the original files you uploaded because in the .torrent file you share are a bunch of cryptographic "hashes," which are just strings of letters, symbols, and numbers. These hashes are used by Bittorrent clients to ensure peers are downloading the correct files, because each section of a file can be translated into a hash which must match the hash in the .torrent file. If it does not match, the data is deleted and redownloaded from other peers until the hashes match. You could think of hashes as a kind of cargo manifest, where the Bittorrent client automatically verifies the contents of the various crates in the shipping vessel.
Bitcoin works in a very similar way, except the hashes (or "cargo manifests") play an exceptionally important role in securing the network, making sure all bitcoins are stored by the proper people. All transactions in Bitcoin are stored in a blockchain, a massive ledger which holds all transactions ever made on the Bitcoin network. In the blockchain are blocks (similar to data sections in files shared in Bittorrent), all of which have their own hash. Hashes in Bitcoin are not downloaded from a .torrent file, but procedurally generated based on transactions which have occurred in previous blocks. Every full Bitcoin client self-verifies every block has the correct hash, and like in the Bittorrent network - if a hash doesn't match, the block is re-downloaded from another peer. This makes it very difficult to "fake" transactions in the Bitcoin network.
Keeping record of all transactions is essential, because bitcoins aren't actual data. There are no tangible "bitcoins." You can't hold bitcoins on your hard drive. Instead, people control public and private keys. Public keys are a lot like usernames online, and what users generally talk about when they're talking about addresses. Private keys are much like passwords, and give you the authority to control bitcoins on public keys. The Bitcoin protocol is loaded with advanced cryptographic functions, and one of these allow people who control public keys to verify they control a private key without actually giving their private key away.
If I wanted to send bitcoins to you, I'd broadcast a message to the network saying "hey, I control 'this public address,' as verified by this cryptographic hash from its corresponding private key, and I want to transfer .05 bitcoins to this other public address." Computers on the network check to make sure what I said is true by checking their own copy of the blockchain, then check to make sure I included any necessary fee to carry this transaction (since everyone's transactions increase the size of the blockchain and resources it requires out of everyone else, fees are demanded for certain kinds of transactions), and if everything checks out, they will relay that transaction to all their peers. It keeps getting passed around until it arrives at what are known as miners. This all sounds complicated and labor-intensive, but because it's all handled by fast computers and networks, it can literally take less than a second.
Miners play another important role in Bitcoin. Miners take all of the transactions pending inclusion in a block, verify them, and package them all up into one neat piece of data. They then must effectively brute-force a kind of password (a hash) which will give them the authority to create that one packaged block, and this IS extremely labor-intensive, arbitrarily and intentionally. The hashes to unlock authority to create a block is procedurally set by rules to take approximately 10 minutes of computer power from the entire network, which is currently around seven quadrillion hash operations per second, tens of millions of dollars' worth of specialized equipment which all the supercomputers in the world couldn't come close to matching. It's done this way to ensure there is a high degree of decentralization - to make sure no one person or entity is capable of packaging multiple blocks in a row and potentially including faked information.
There are multiple controls in place to ensure decentralization and that fake blocks are rejected by the Bitcoin network, and I'll go over the two big ones. The first mechanism ensuring decentralization is by paying miners transaction fees and subsidies (subsidies are hardcoded in Bitcoin software) which the miner gets to collect once he's found the correct block hash. This gets everyone active in mining since they have expectation of profit, though some people mine purely to secure the network. The second mechanism in place to prevent "fake" blocks is something called orphaning. Since all block hashes are procedurally generated based on previous blocks, miners are able to determine if a block is fake and should be orphaned. If they see fake blocks, they will begin mining their own chain of blocks. Assuming "honest miners" control the majority of hashpower, they will mine the longest chain of blocks. Bitcoin clients (the users) will only use the longest chain of blocks, and discard (or "orphan") the shorter chains, effectively invalidating them. The longer, hopefully honest, chain will only contain legitimate transactions, thus orphaning any fake transactions the shorter chain contained. So far, Bitcoin has not had a serious issue with dishonest miners.
You may be thinking "well - that's nice and all. It's like a Rube Goldberg machine, I guess, but what's the point?" Bitcoin has many benefits over conventional payment mechanisms.
1) It has no central issuer and cannot be shut down by anyone. It's simply not possible to kill Bitcoin. You can shut down bitcoin exchanges (which convert government money to bitcoin), but you cannot actually kill the protocol or the network. It's going to be with us forever. It's not like e-gold, where a government can just send them a letter saying they must stop and shut the whole thing down.
2) It's extremely fast. You can send bitcoins to anyone in seconds. Depending on how many confirmations you want to wait for from miners, to ensure the transaction is legitimate, it generally takes about an hour - anywhere in the world.
3) It's unprecedentedly cheap. No more going bank to bank, converting funds back and forth as they each take a little chunk of the money you send. You can send the equivalent of $millions in seconds for fees ranging from absolutely nothing to the equivalent of about $.50.
4) It's extremely fungible, like nothing else in the world. Because Bitcoin ties coins to public addresses, not government identities, you can send and receive funds to/from anyone at any time, potentially without anyone knowing who, exactly, sent what where. In this new world, you do not need the government's permission to send funds to Wikileaks' Bitcoin address. You can just do it - total freedom. The Bitcoin network doesn't care about political issues - it's completely agnostic. All the network cares about is whether or not you had the proper hashes giving you the authority to send bitcoins.
5) No more worrying about fraud. Your client and miners do this work for you. No more worrying about chargebacks or whether or not the dollar bills you were handed are counterfeit. Once the network has confirmed funds you've received a few times, you can be 100% confident they're authentic and now completely controlled by you.
This concludes a basic overview of the Bitcoin network. For more in-depth information on the cryptography behind Bitcoin, there's an excellent series by Khan Academy at
https://www.khanacademy.org/economics-finance-domain/core-finance/money-and-banking/bitcoin/v/bitcoin-what-is-it . For a more basic introduction and list of Bitcoin clients, you may wish to visit
http://bitcoin.org/en/