![Smiley](https://bitcointalk.org/Smileys/default/smiley.gif)
Yes, of course, I'm concerned about privacy.
If you are just receiving bitcoins on new address every time and haven't spent any of the output then it is impossible to link your public addresses with each other. You will only see single receiving transaction if you search the specific bitcoin address on 'Block Explorer'. However, if you have sent money from the wallet then it is possible to link addresses. This is how:
Suppose you received 0.005 BTC on your bitcoin address A and 0.002 BTC on your bitcoin address B. Now you sent a transaction of 0.006 BTC to another address X. To create this transaction, your wallet will use both unspent outputs (UTXOs) as the input like this
Inputs Outputs
Address A 0.005 BTC >>> Address X 0.006 BTC
Address B 0.002 BTC >>> Change Address 0.001 BTC
There are some services which will create link between addresses through this method and will show you all linked addresses to the specific wallet.
I've seen some examples as the one you've made. I think I've understood that, if I receive different amounts of Bitcoins on different addresses and then I send a different amount to another address, the amounts of more addresses will be "combined" and used in the transaction, and I will get a change back. I've read that multiple inputs and outputs can be used to "muddy the waters" and increase privacy.
Transactions are not done from/to addresses. Transactions are done via scripts and hashes. You create an output and lock it with a locking script. For example, if I say I am sending 0.02 BTC to Address 16Rv1veEeGncvoBEWYCjtp2ViSee1aRtrj what I am actually doing is this:
I am locking 0.02 BTC with this hash - 16Rv1veEeGncvoBEWYCjtp2ViSee1aRtrj and putting a condition that who ever can produce a valid signature using public key such that hash of the public key is equal to 16Rv1veEeGncvoBEWYCjtp2ViSee1aRtrj can spend these 0.02 BTC.
P2SH addresses i.e. addresses starting with '3' work little differently from what I just said. If you send 0.02 BTC to say, 3G8uPe3XKGhyQ2HGZfrmT7yJSxeQ6kJHK4, you are actually locking 0.02 BTC to the script whose hash is 3G8uPe3XKGhyQ2HGZfrmT7yJSxeQ6kJHK4. Now to spend these 0.02 BTC, you have to provide valid redeem script such that hashing that script will produce hash equal to 3G8uPe3XKGhyQ2HGZfrmT7yJSxeQ6kJHK4 and another script to unlock redeem script.
More doubts? Keep them coming.
That's what I can't understand.
There's no "from address", but, from your previous example, there are "inputs", which consist of addresses from which Bitcoins are sent, and "outputs", which consist of addresses to which Bitcoins are sent (change included). Isn't it the same thing to say that Bitcoins are sent from those addresses in the inputs to the addresses in the outputs?
So, the point about privacy is that addresses in the inputs are visible in the transactions written in the blockchain.
I've read how a public address is made (hash made from the public key of the person who will receive the Bitcoins) and I've tried to read how transactions are made with scripts, but it's too long and technical.
![Sad](https://bitcointalk.org/Smileys/default/sad.gif)