So, I read enough about bitcoins, and I understand how it generally works
This is very unlikely.
If it is possible to find out who sent money and to whom. Not like "user A sent money to user B", but something deeper.
Reliably, and easily? No.
With enough skills, time, resources, and effort? Probably.
I want to ask about a few examples:
1) We have stable wifi connection, one laptop, one wallet, and only one IP address. We always use this laptop and connection to send/receive bitcoins.
2) We have one laptop and one wallet, but always use a different wifi and also IP address (now we are sitting at home, tomorrow we're in McDonalds, after tomorrow in sturbucks, etc).
3) We have one IP address, one laptop, but 3 wallets.
None of this matters much for what you're asking about.
So, the question is: can somebody find out that, for example (please, it's only an example, because I want to find out finally how it works), that a user bought something illegal online with bitcoins?
That depends on how it was sold, who sold it, who bought it, how it is delivered, who is trying to find out, and what resources they have access to.
Imagine, that this user uses a famous website with illegal stuff and bought something and somebody like "cyber police" noticed that - User A bought a gun. Is it possible with only this information to find this user's IP and just ask the Internet Service Provider about the house address where this IP address was being used?
That depends on how closely the "cyber police" were watching the bitcoin network and the "famous website". It would be difficult to accomplish without significant resources, but not impossible.
Maybe they won't know the name or any other information, but address?
Maybe the "cyber police" put up a fake ad on the "famous website" selling a gun. Then when the user buys the gun, the user gives the "cyber police" their mailing address (to deliver the gun) without even knowing that they are giving this information to the police.
Maybe the "cyber police" are monitoring the messages that a real gun seller on the "famous website" is receiving. Then when the buyer gives the mailing address to the seller, the "cyber police" read that message.
Maybe the "cyber police" confiscate the servers from the "famous website" and can see which bitcoins were used to buy the gun. Maybe the buyer isn't careful and doesn't understand the protocol well, and so they accidentally associate their real identity with the address that they used to receive those bitcoins before they spent them? There are hundreds of ways to leak identity information. Being 100% anonymous is extremely difficult if you want to make sure that someone with huge resources can't find you.
And let's see the 3 different situations above. I mean, if it's technically possible, can they follow this User, IP address, or wallet in the future and which transactions were made from this wallet?
As I've pointed out, there are much easier ways to track a user than trying to trace their IP address in the bitcoin network. The only way that they can know for absolute certain that a particular IP address created a transaction is if they are monitoring ALL connections to that IP address at the time that the transaction is created (or if all internet communication from that address is being logged and can be reviewed later).
However, users associate their real identities with their bitcoin addresses in MANY ways. It is much easier to investigate these other leaks than to try to monitor the entire global bitcoin network at all times.
Because, for example, today this user bought some drugs, not so hard, police decided to follow him and wait only. Then he made 100 different transactions, but normal and after 6 months 101 was something worse, like he bought a whole machine to make drugs. Or, for example, if we have one IP address, police follow this one address, because somebody bought drugs with it, but is it possible that they will find out that this user has not just one wallet on this IP address, but 3 or more.
First, please explain if you are asking about bitcoin addresses or bitcoin wallets. They are very different things, and the difference matters with respect to the questions you are asking. Furthermore, if the police are monitoring all internet communications to and from this user, then they will be able to tell exactly which transactions are being broadcast by the user. If the user uses encryption software such as TOR, they can make it more difficult for the police, but the police can monitor all TOR exit nodes, and put up fake TOR sites.
Second question:
I didn't mine bitcoins, that's why I now only know what I read about and not everything is clear. Has somebody made a program which can show you who and from where bitcoins are sent and to whom and where? Like "User A with IP address 111 sent 100 bitcoins to user B with IP address 222". I mean, a program scanning some website with illegal stuff and we sure, that this transaction was made to buy something bad and expensive. But, we don't know what exactly (or know), that's why we should wait for next time or.. check past?
I'm not aware of any such program. You are talking about "users". That would require that the person writing the program has access to the website's user database.
I don't understand how blocks in the bitcoin system works.
Blocks create a distributed timeserver for the purpose of ordering transactions and forming a consensus about transaction history.
Is it possible to work with them and at least work with this information in this blocks?
You can work with blocks, and you can work with the information in blocks. The only information in there is the list of spent outputs, and the scripts that secure the unspent outputs for future spedning.
Or can we take one particular block and, see only hash and nothing else and we cant even say when this block was created, who sent bitcoins, and how many bitcoins sent. So, what this block exactly is?
No.
A block is more than just a hash.
A block has a timestamp, it has a list of transactions made up of inputs (previously unspent outputs), and new unspent outputs.
Looking at a block, you can tell approximately when the block was created. You can tell what bitcoin address the block reward was paid to (which often includes information about who created the block). You can tell which addresses (or other scripts) received bitcoins, and how many bitcoins were paid to each output. You can tell which previously unspent outputs were used to fund those transactions.
Also im ready for "really? U really ask that? i saw it hundreds times already!
", but with some
links with answer under it, please
Please start by reading this:
https://bitcoin.org/bitcoin.pdfThen you can move on to this:
https://en.bitcoin.it/wiki/Blockand this:
https://en.bitcoin.it/wiki/Transaction