user4276: I have heard in many places that mining difficulty is increasing, meaning that the hardware used to mine new coins will need to be more and more powerful as time goes on.
What is pushing mining difficulty upward? Is it related the number of people mining (a supply and demand kind of thing), the size of the blockchain, an intentional system design?
I found two related questions 1 2, but they are not exactly the same. I am more interested in what factors affect the difficulty and how. For bonus points, include predictions about future conditions.

user13751: Mining difficulty is periodically adjusted to ensure that block time stays at about 10 minutes. As more mining capability is brought online, difficulty will increase accordingly.

user88512: A bit more info, the difficulty adjustment is a scripted algorithm in the Bitcoin core code. It runs after every 2016 blocks and compares the actual time it took to add those blocks with 20160 minutes (two weeks). To prevent big fluctuations in difficulty, the maximum adjustment is a factor of four. When there are very large increases in performance, such as the introduction of ASICs, it takes several adjustments every two weeks to re-establish the ten minute average time to add blocks. This restricts the supply of new bitcoins to a predictable rate and supports the emergent consensus security trust model. Thus playing a part in preventing double-spends and denial of service attacks. 
If there were a large decrease in mining performance, the decrease in difficulty (actually an increase in the hash difficulty target value to make SHA-256 hashing easier) would be adjusted accordingly. Think of rolling two dice. Getting a score less than twelve is easy. Getting a score less than three is hard. Same goes for finding a hash of the header (including new nonce) with a low numeric value.   

user11253: The mining difficulty directly reflects the amount of computing power that the Bitcoin network has. This is adjusted on a periodic basis so that the average block solution time is 10 minutes (Bitcoin clients recalculate the difficulty every 2016 blocks). The difficulty can go up or down depending on how much effort people are putting into mining.
More information about difficulty can be found on the Bitcoin wiki.

4276: <p>I have heard in many places that mining difficulty is increasing, meaning that the hardware used to mine new coins will need to be more and more powerful as time goes on.</p>

<p>What is pushing mining difficulty upward? Is it related the number of people mining (a supply and demand kind of thing), the size of the blockchain, an intentional system design?</p>

<p>I found two related questions <a href="https://bitcoin.stackexchange.com/questions/18842/why-is-the-reward-decreasing-while-the-difficulty-of-mining-is-increasing">1</a> <a href="https://bitcoin.stackexchange.com/questions/9926/does-difficulty-ever-stop-increasing">2</a>, but they are not exactly the same. I am more interested in what factors affect the difficulty and how. For bonus points, include predictions about future conditions.</p>
 13751: <p>Mining difficulty is periodically adjusted to ensure that block time stays at about 10 minutes. As more mining capability is brought online, difficulty will increase accordingly.</p>
 88512: <p>A bit more info, the difficulty adjustment is a scripted algorithm in the Bitcoin core code. It runs after every 2016 blocks and compares the actual time it took to add those blocks with 20160 minutes (two weeks). To prevent big fluctuations in difficulty, the maximum adjustment is a factor of four. When there are very large increases in performance, such as the introduction of ASICs, it takes several adjustments every two weeks to re-establish the ten minute average time to add blocks. This restricts the supply of new bitcoins to a predictable rate and supports the emergent consensus security trust model. Thus playing a part in preventing double-spends and denial of service attacks. </p>

<p>If there were a large decrease in mining performance, the decrease in difficulty (actually an increase in the hash difficulty target value to make SHA-256 hashing easier) would be adjusted accordingly. Think of rolling two dice. Getting a score less than twelve is easy. Getting a score less than three is hard. Same goes for finding a hash of the header (including new nonce) with a low numeric value.   </p>
 11253: <p>The mining difficulty directly reflects the amount of computing power that the Bitcoin network has. This is adjusted on a periodic basis so that the <em>average</em> block solution time is 10 minutes (Bitcoin clients recalculate the difficulty every 2016 blocks). The difficulty can go up or down depending on how much effort people are putting into mining.</p>

<p>More information about difficulty can be found <a href="https://en.bitcoin.it/wiki/Difficulty" rel="noreferrer">on the Bitcoin wiki</a>.</p>
