At the moment mining difficulty is based on cumulative hash power.
Only indirectly. It is actually based on the amount of time that it takes to create 2,016 valid blocks.
This seems to increase the cost of mining,
The cost of mining is why bitcoin works. Get rid of that, and you either make it cheap and easy to rewrite the history in the blockchain, or you make it impossible for decentralized nodes to reach consensus about what the blockchain contains.
Some of the variables that I would suggest are
- The market value of one Bitcoin
And how exactly would a decentralized node come to the exact same value for this as every other decentralized node in the entire world?
- The size of the memory pool
There is no such thing as "the memory pool". Each node independently builds its own memory pool from the transactions and blocks that it has heard about and the retention rules that it maintains.
Again I ask...
And how exactly would a decentralized node come to the exact same value for this as every other decentralized node in the entire world?
- The average density of blocks generated
Allowing miners to pad blocks to manipulate density? That doesn't sound like a good plan. You think difficulty is bad, this would be a disaster.
- The average cost of transactions
Allowing miners to pad transaction fees to manipulate "average cost"? That doesn't sound like a good plan. You think difficulty is bad, this would be a disaster.
I appreciate that this could lead to a breach of the generation cap, and also a reduction in the block generation time, but I think those would be positive benefits, and would help Bitcoin to gain much wider acceptance.
You can experiment with your ideas in an altcoin if you like. If you're right, then it should quickly surpass Bitcoin and become the main cryptocurrency that everyone uses. However, I'm not interested in having such sweeping and poorly thought out modifications to the consensus protocol that makes Bitcoin work. I don't hink you'll see the global community rallying around any of these.