Can some explain how a block-chain scales? If every transactions needs to be stored on all market participants computers doesn't that blow up pretty quickly?
At present, as far as I know all of the scalability plans for Ethereum are theoretical. That said the plan thus far is:
Light Client Support allows for running a node that does not sync the full chain, but rather downloads and verifies only the small parts necessary to send transactions and read state.
Proof-of-Stake replaces Proof-of-Work which opens up options for things like parallelization.
Sharding is a plan to split the blockchain into many smaller chains that are all linked but operate largely independently, allowing for horizontal scaling of the network. Transactions within a shard are synchronous. Transactions across shards are asynchronous.
The basic answer is that transactions are small and not everyone needs to store the whole chain. Even now storing the whole blockchain is slightly 'enthusiast'. I think it might go more in this direction in the future, but at the same time the cost of storing the entire blockchain on an SSD and the bandwidth to sync with the bitcoin blockchain are nearly trivial (the blockchain stands now at 75GB).
I think the likely evolution in the future is that most people won't store the blockchain, but that there will be multiple separate currencies and enthusiasts will store the blockchain for the ones they use or are interested in.
There are a number of proposals. In bitcoin, sidechains (separate blockchains that get anchored to the main chain) are oft-touted, as is the lightning network. The idea is that only the most important / highest value transactions make it onto the main blockchain.
There are other approaches as well. Most actors don't need all past transactions- just the valid spendable outputs. Old txs could be pruned. You can also apply ideas from regular databases, like sharding.