Well, if you are using a payment processor, the address exists in their wallet. Then when a payment is sent, only then does that address appear in the blockchain.
Here's a useful example:
- https://www.bitaddress.org
Those addresses are created, on the fly, by the javascript code in your browser. You can save a copy of that page (e.g., to thumb drive), then disconnect your computer from the Internet, reboot and while disconnected load that page and generate more addresses. None of those addresses are known anywhere else. But they are entirely valid addresses that can be used.
When you give the Bitcoin address (the Load & Verify) to someone else and they send a payment then that's when the blockchain first sees that address. There's no "management" of addresses, there's simply transactions to addresses.
Bitcoin transactions are simply inputs and outputs. An input is one or more payment that was previously received in a wallet. An output is one or more payment destinations. Here's a typical transaction:
Alice wants to send 2 BTC to Bob. Bob prints a paper bitcoin using BitAddress.org and shows the "Load & Verify" Bitcoin address to Alice. So Bob's address for this transaction is Address W.
Alice's wallet has a 1 BTC payment (that she received at Address X) and a 5 BTC payment (that she received at Address Y). So to send to Bob 2 BTC, the transaction needs to use both of those transactions, so the total amount of inputs is 6 BTC (5 + 1 = 6). The total amount being sent (the total amount of outputs) is 2 BTC. So the change would be 4 BTC. Alice's client will generate a new address for the change, Address Z. Except, there should also be a fee paid, so let's say a fee of 0.0005 BTC is going to be being paid.
The transaction then looks like:
INPUTS:
Address X: 1.0 BTC (An earlier payment Alice received)
Address Y: 5.0 BTC (Another earlier payment Alice received)
OUTPUTS:
Address W: 2.0 BTC (The payment to Bob)
Address Z: 3.9995 BTC (The change back to Alice)
If you add up the inputs: 6.0 BTC
Add up the outputs: 5.9995 BTC.
Difference? 0.0005 BTC. Any difference between the INPUTS and OUTPUTS goes to the miner.
Here's an example of a transaction. In this instance, there was just one input needed. It was a wager to SatoshiDICE, with a fee paid:
- http://blockchain.info/tx/92499ef5ba9bb457d67803ef1c9cf667c430b55ebb4fe248bb8d4d7ebc95e4e7
(At the bottom of the page, click the Advanced: Enable) That way you will get a link for the (output) as well.
Now, ... nobody needs to know any of this to just use Bitcoin. You are asking questions about the innards of the system.
If you use the Bitcoin-Qt client, for instance, none of this is really exposed. You have a Balance. You send payments. To receive a payment, you click New Address. That's simple. Easy peazy. (Well, except for the confirmations thing ... that is one difference from your online banking, for instance.)
There are shared (hosted) EWallets that make it even easier. PayTunia, or CoinBase, for instance, remove anything that isn't necessary to use Bitcoin. And InstaWallet even removes the need for a username and password (presuming you bookmark the URL).