Ok, this is new to me. So what the hell is inside 400Gb of data that IBD gets into your storage? If it's not all the transactions, blocks and all sort of data that is stored in a blockchain, what data is using so much space in our storages?
It is mostly the blocks. Other than that, the chainstate takes a smaller amount and it contains all the UTXOs. What I meant was, transactions are not indexed. This means that you cannot just ask Bitcoin Core what's the raw transaction or the information of TXID X because it won't know where to look for it. That's where txindex comes in to properly index each transaction and gives Bitcoin Core a pointer to know where to look for that specific transaction.
And the reason I thought Bitcoin core need to rescan the blockchain when a new address is imported was to be able to retrieve only information about that address. And when I say "rescan the blockchain", I am actually thinking about the 400Gb of data I have in my storage. So, if Bitcoin core doesn't store all the transactions in this database, where is Bitcoin Core going to rescan? In other connected peers around the network?
Yes. Bitcoin Core does store the blocks and their transactions, I think you misunderstood what I was saying. The reason why you have to rescan is because Bitcoin Core doesn't maintain an address index.
I'm not sure I understood your statement here. What you mean by parsing the blockchain into the address format?
Bitcoin Core does not organize all of the transactions by their addresses. If a user were to try to get information about an address, like importing a watch-only address, Bitcoin Core will rescan through the whole blockchain to find transactions that is related to that address. Addresses don't exist at a protocol level in the first place.