Quick question: Is the complete blockchain for Ethereum stored for as long as the currency exists? If not, then what determines the amount of time the binary for a contract can exist to be called? If yes, then would that present a scalability issue as the currency ages?
Yes, though there is ongoing discussion of "Blockchain Rent".
The argument why storage would not be a scalability issue, is that the rate of storage getting cheaper is higher than the rate of storage that the blockchain needs: thus everyone can comfortably afford and buy more storage, for all general purposes, and the space consumption of the blockchain would only be a fraction of that. But there are still discussions of "rent", as linked above on the Ethereum EIPs repository, as it might improve the system further.
Part of what defines a "block chain" is that new data is intrinsically based off older data. Cryptography allows us to to accomplish this by calculating a hash and embedding it in subsequent blocks of data. Changing a single value anywhere in the history would require altering all child data, invalidating everything.
However, this concept is different from the idea of rent-seeking for space on the blockchain. During development, it was considered to charge a contract for space consumed over time, however this was not included in the initial version of the main network. At present, all deployed contracts exist forever unless destroyed through the
SUICIDE opcode (also named
This is considered a scalability issue, and several proposals have been made on how to handle this particular problem, though no concrete implementations exist. Some additional techniques to deal with increasing blockchain size may be state-pruning or splitting the network into discrete shards.