user578: On the person's computer?
On bitcoin.org? :)
Where does that information reside that tells others and me how much bitcoins I have?
I assume it can't be on my PC because I could easily hack the file that contains that data and get myself more bitcoins, right?

user40706: Bitcoin tokens don't actually "belong" to addresses. The idea of an address is purely a convenient abstraction. Addresses don't truly have a balance (nor does the Bitcoin blockchain even understand that addresses exist), but referring to an address balance is simply a quick way to refer to the total sum of tokens stored in unspent outputs which the owner of a particular address has the ability to spend.
In Bitcoin (and similar UTXO-based blockchains), tokens are "stored" in unspent outputs. The sender of a transaction specifies the requirements that must be fulfilled in order for the transaction's outputs to be spent. Tokens that are "sent" to an address are actually just stored in an output which requires the spender to prove ownership of their address by providing the public key their address is derived from along with a valid signature of the new transaction they wish to create to spend the original output.
The minor distinction between addresses "storing" tokens and addresses being able to spend tokens stored in outputs is important, and allows the creation of more advanced types of transactions (such as P2SH which enables multisig, timelocked and hash-encumbered transactions which allow technologies like atomic swaps and payment channels to function, etc.) 

user575: Information on how many bitcoins belong to each address is stored on a data structure called "the block chain". A copy of this data exists on every node on the Bitcoin network (that is, every computer which has the Bitcoin client software installed has information about all bitcoins in existence). The block chain follows certain rules that make sure that even if one manages to hack most of the stored copies of it, he'll be unable to credit himself with more coins.
The information required to grant you access to the bitcoins owned by your addresses, is stored in the wallet.dat file on your computer. Stealing an unencrypted version of it allows stealing your coins, so it should be guarded (a wallet encryption feature has been recently added to the client, and even better security features are in the works).

user323: Your wallet.dat contains your keypairs that lets you use your coins. If you lose those, you will lose access to your money.
The actual coins, however, are encoded in the Blockchain. Each time you make a payment with your coins, you have to refer to the last time you made such a payment, so everyone can check if you balance is right. When making a payment, you specify both how many coins you are spending and how much coins you have left. If you manipulate your transaction and state a wrong value, people that will check your transaction will know and will reject it.
There is no place the coins are stored as you'd store physical currency. It is more like a bank balance - just a number. But since all transactions are transparent, everyone would know if you are trying to cheat.

user307: Your coins are stored in addresses in the block chain.  Thus your coins and my coins and everyone's coins are stored in every computer which makes up the Bitcoin network.  The block chain contains every address in use, and every one that has ever been used along with how many coins are currently at that address.
This is why hacking your own client or wallet.dat isn't useful.  Your coins aren't there they are everywhere.
For example you can lookup any of your (or anyone elses) addresses here and see the current value.
http://blockexplorer.com/
So what keeps other people from spending YOUR coins?
Spending Bitcoins is to create a transaction moving it from one address to another.  
To create a transaction requires that you cryptographically sign the transaction with the private key of the address containing the coins (the public key).  Since there is a mathematical relationship between public & private keys the rest of bitcoin network can verify that the transaction is properly signed.  The "coins" (technically public key addresses and their current value) can be seen by anyone but those coins can only be moved by the persons in possession of the private key.
Your wallet.dat file contains all your public private key pairs.  Anyone in possession of you wall.dat file (and encryption passphrase) can sign transactions as the owner of those public addresses and thus has control over the coins.  This highlights why you must always safeguard your wallet.dat and encryption passphrase.
This method of storing value is unique to Bitcoin (and subsequent copycat coins).
To sum it up in a pair of sentences:
Your coins are stored in addresses (public keys), copies are made public and included in every node of the bitcoin network.  However the security of those coins are ensured because only the person in possession of the matching private key can create a valid transaction to move them.

user85: The information is split. Some information is stored on your PC in the wallet file. Some information is stored in the public blockchain.
Stored in your wallet file is the list of accounts that you control and the secret key needed to spend coins sent to those accounts. Stored in the public blockchain (held on every computer running the Bitcoin client) is the record of every transaction ever made, including any transactions that sent you coins.
When you wish to spend your coins, you check the blockchain to find unspent coins sent to you (or mined by you). You compose a transaction that specifies which unspent coins in the block chain you wish to spend and what account(s) you wish to send those coins to. You can return any 'change' to an account you control. You use the keys in your wallet to sign the transaction.
You then broadcast that transaction to miners. They confirm that your transaction is valid, making sure it spends only coins that exist, are unspent, and that it has the proper signatures. They make sure that the number of coins coming out of the transaction is less than or equal to the number of coins claimed by the transaction. They then commit that transaction into a new block linked into the hash chain, and the transfer is complete.

user22: It seems like what's called for here is a basic explanation of two of Bitcoin's big concepts: the wallet and the blockchain:

A "wallet" is a collection of ECDSA keypairs. For those not familiar with cryptography, a keypair consists of a "public key" and a "private key" which can be used to encrypt or sign bits of data. The public key, as the name suggests, is known to everyone and can be used to encrypt messages in such a way that the holder of the private key alone may decrypt them. The private key may also be used to sign messages in such a way that anyone holding the public key may verify that the message truly came from you. Every Bitcoin address consists of such a keypair - the "address" you send people is the public half and the private half resides in your wallet.dat file.
The "blockchain" is a constantly growing database of transaction information which is sent out to all nodes in the Bitcoin network. When you perform a transaction, that transaction is distributed to the network and assuming the transaction is valid, will be included in the next "block." This is where the coins themselves are stored. When you initiate a transaction, all previous transactions to or from that address are scanned and a balance is calculated. If your transaction exceeds this available balance, it will be rejected by the network and will not be included in a block.

It's also important to note that the blockchain technically doesn't store "coins" it stores transaction information. The coins themselves are not discrete things which need storage - when coins are mined the miner's balance is credited via a "generate" transaction which adds to his or her available balance. When coins are sent from A to B, that transaction subtracts from A's balance and adds to B's balance. This is similar to the way that your employer may, via EFT, send "money" to your bank and you can use your debit card to spend that "money" in a store, all without anyone ever seeing a discrete physical dollar bill. Most money in the world today exists merely as transaction histories and balances - Bitcoin is no exception.

578: <p>On the person's computer?</p>

<p>On bitcoin.org? :)</p>

<p>Where does that information reside that tells others and me how much bitcoins I have?</p>

<p>I assume it can't be on my PC because I could easily hack the file that contains that data and get myself more bitcoins, right?</p>
 40706: <p>Bitcoin tokens don't actually "belong" to addresses. The idea of an address is purely a convenient abstraction. Addresses don't truly have a balance (nor does the Bitcoin blockchain even understand that addresses exist), but referring to an address balance is simply a quick way to refer to the total sum of tokens stored in unspent outputs which the owner of a particular address has the ability to spend.</p>

<p>In Bitcoin (and similar UTXO-based blockchains), tokens are "stored" in unspent outputs. The sender of a transaction specifies the requirements that must be fulfilled in order for the transaction's outputs to be spent. Tokens that are "sent" to an address are actually just stored in an output which requires the spender to prove ownership of their address by providing the public key their address is derived from along with a valid signature of the new transaction they wish to create to spend the original output.</p>

<p>The minor distinction between addresses "storing" tokens and addresses being able to spend tokens stored in outputs is important, and allows the creation of more advanced types of transactions (such as P2SH which enables multisig, timelocked and hash-encumbered transactions which allow technologies like atomic swaps and payment channels to function, etc.) </p>
 575: <p>Information on how many bitcoins belong to each address is stored on a data structure called "the block chain". A copy of this data exists on every node on the Bitcoin network (that is, every computer which has the Bitcoin client software installed has information about all bitcoins in existence). The block chain follows certain rules that make sure that even if one manages to hack most of the stored copies of it, he'll be unable to credit himself with more coins.</p>

<p>The information required to grant you access to the bitcoins owned by your addresses, is stored in the wallet.dat file on your computer. Stealing an unencrypted version of it allows stealing your coins, so it should be guarded (a wallet encryption feature has been recently added to the client, and even better security features are in the works).</p>
 323: <p>Your <a href="https://en.bitcoin.it/wiki/Wallet" rel="noreferrer">wallet.dat</a> contains your keypairs that lets you use your coins. If you lose those, you will lose access to your money.</p>

<p>The actual coins, however, are encoded in the <a href="https://en.bitcoin.it/wiki/Blockchain" rel="noreferrer">Blockchain</a>. Each time you make a payment with your coins, you have to refer to the last time you made such a payment, so everyone can check if you balance is right. When making a payment, you specify both how many coins you are spending and how much coins you have left. If you manipulate your transaction and state a wrong value, people that will check your transaction will know and will reject it.</p>

<p>There is no place the coins are stored as you'd store physical currency. It is more like a bank balance - just a number. But since all transactions are transparent, everyone would know if you are trying to cheat.</p>
 307: <p>Your coins are stored in addresses in the block chain.  Thus your coins and my coins and everyone's coins are stored in every computer which makes up the Bitcoin network.  The block chain contains every address in use, and every one that has ever been used along with how many coins are currently at that address.</p>

<p><strong>This is why hacking your own client or wallet.dat isn't useful.  Your coins aren't there they are everywhere.</strong></p>

<p>For example you can lookup any of your (or anyone elses) addresses here and see the current value.
<a href="http://blockexplorer.com/" rel="noreferrer">http://blockexplorer.com/</a></p>

<p><strong>So what keeps other people from spending YOUR coins?</strong><br>
Spending Bitcoins is to create a transaction moving it from one address to another.  </p>

<p>To create a transaction requires that you cryptographically sign the transaction with the private key of the address containing the coins (the public key).  Since there is a mathematical relationship between public &amp; private keys the rest of bitcoin network can verify that the transaction is properly signed.  The "coins" (technically public key addresses and their current value) can be seen by anyone but those coins can only be moved by the persons in possession of the private key.</p>

<p>Your wallet.dat file contains all your public private key pairs.  Anyone in possession of you wall.dat file (and encryption passphrase) can sign transactions as the owner of those public addresses and thus has control over the coins.  This highlights why you must always safeguard your wallet.dat and encryption passphrase.</p>

<p>This method of storing value is unique to Bitcoin (and subsequent copycat coins).
To sum it up in a pair of sentences:</p>

<p><strong>Your coins are stored in addresses (public keys), copies are made public and included in every node of the bitcoin network.  However the security of those coins are ensured because only the person in possession of the matching private key can create a valid transaction to move them.</strong></p>
 85: <p>The information is split. Some information is stored on your PC in the wallet file. Some information is stored in the public <a href="http://en.wikipedia.org/wiki/Bitcoin#Block-chain_and_confirmations" rel="noreferrer">blockchain</a>.</p>

<p>Stored in your wallet file is the list of accounts that you control and the secret key needed to spend coins sent to those accounts. Stored in the public blockchain (held on every computer running the Bitcoin client) is the record of every transaction ever made, including any transactions that sent you coins.</p>

<p>When you wish to spend your coins, you check the blockchain to find unspent coins sent to you (or mined by you). You compose a <a href="https://en.bitcoin.it/wiki/Transaction" rel="noreferrer">transaction</a> that specifies which unspent coins in the block chain you wish to spend and what account(s) you wish to send those coins to. You can return any 'change' to an account you control. You use the keys in your wallet to sign the transaction.</p>

<p>You then broadcast that transaction to miners. They confirm that your transaction is valid, making sure it spends only coins that exist, are unspent, and that it has the proper signatures. They make sure that the number of coins coming out of the transaction is less than or equal to the number of coins claimed by the transaction. They then commit that transaction into a new block linked into the hash chain, and the transfer is complete.</p>
 22: <p>It seems like what's called for here is a basic explanation of two of Bitcoin's big concepts: the wallet and the blockchain:</p>

<ul>
<li>A "wallet" is a collection of ECDSA keypairs. For those not familiar with cryptography, a keypair consists of a "public key" and a "private key" which can be used to encrypt or sign bits of data. The public key, as the name suggests, is known to everyone and can be used to encrypt messages in such a way that the holder of the private key alone may decrypt them. The private key may also be used to sign messages in such a way that anyone holding the public key may verify that the message truly came from you. Every Bitcoin address consists of such a keypair - the "address" you send people is the public half and the private half resides in your wallet.dat file.</li>
<li>The "blockchain" is a constantly growing database of transaction information which is sent out to all nodes in the Bitcoin network. When you perform a transaction, that transaction is distributed to the network and assuming the transaction is valid, will be included in the next "block." This is where the coins themselves are stored. When you initiate a transaction, all previous transactions to or from that address are scanned and a balance is calculated. If your transaction exceeds this available balance, it will be rejected by the network and will not be included in a block.</li>
</ul>

<p>It's also important to note that the blockchain technically doesn't store "coins" it stores transaction information. The coins themselves are not discrete things which need storage - when coins are mined the miner's balance is credited via a "generate" transaction which adds to his or her available balance. When coins are sent from A to B, that transaction subtracts from A's balance and adds to B's balance. This is similar to the way that your employer may, via EFT, send "money" to your bank and you can use your debit card to spend that "money" in a store, all without anyone ever seeing a discrete physical dollar bill. Most money in the world today exists merely as transaction histories and balances - Bitcoin is no exception.</p>
