After reading a ton of solidity and ethereum documentation and following a course about writing ethereum contracts, a question has arised. This is:
When a contract is deployed to the blockchain, it seems it is stored in a block like any other transaction. The only difference is that it doesn't have a target address. This leads me to a question about the contract storage. I have seen a lot of contracts in the course I am following that have dynamic arrays at contract level. These arrays have a non fixed value (for example to store the number of addresses that have used the contract) but, when the contract is deployed, it becomes immutable. So, how can we have dynamic storage memory?