...However, I have no idea what you just said.
Sorry. I'm hoping to record a talk at some point that explains BitCoin from a technical perspective. Maybe some time this quarter.
Here are my two concerns:
1) Over time, will a client continue to require more and more local storage (or CPU, or any particular resource) in order to operate? If so, is there any reason why this doesn't pose a problem?
The designs we use today mean that yes, this is true. There are two types of BitCoin implementation possible:
1) Full node. This is the type everyone uses today.
2) Client only. This is the type BitCoinJ is implementing. There is unfinished work to allow Satoshis software to do both.
In client only node the resource requirements are much, much lower than for a full node, however you cannot take part in mining and you cannot verify transactions for yourself. You
can talk to other full nodes over the network and observe that they since they accepted a transaction, they must have verified it as being OK so it's probably safe to rely on it, assuming you really are talking to a variety of nodes and not having your WiFi connection hijacked or something.
But even in full mode, BitCoin doesn't scale all that badly. Whilst storage costs constantly increase, this is also true of lots of other web based businesses (think Gmail, YouTube etc). Storage is so cheap it's really not a big deal.
2) Since we know that miners will require more data to be stored as time goes on, will this disincentivize ordinary users from contributing processing power to the network, and cause it to become less decentralized with time?
Yes and this is already happening. Hardly anyone bothers to do CPU mining because the returns are so low. If you want to mine today, you have to do more than just select a menu item in the software - at minimum you need a GPU and some time to put into finding out how to do it.
However you have to distinguish between decentralization of verification (which will always be possible for you to do cheaply) and decentralization of mining, which is desirable but less of a big issue. To oversimplify, as long as no miner dominates the network BitCoin is safe. The complicated story depends on how many confirmations people wait for and how much capacity a bad miner has, see the calculations at the end of Satoshis paper.
Mining is already beyond the point where non-technical people can contribute just by downloading and running a GUI program and will soon be beyond the reach of enthusiasts with gaming rigs too. But that's OK. Ultimately this is still a business with very low barriers to entry and so there should be plenty of competition as mining consortiums try to find the cheapest electricity, the most efficient hardware and so on.
Mining pools are already necessary for mining to be worthwhile to most ordinary users; is it possible to create a mining pool that would somehow alleviate this problem, making it so that the storage requirements for contributors would not increase with time?
If you mine in a pool you don't need to store the block chain.