First off, what follows is NOT a proposed change to bitcoin. Nor is it really an idea for a new blockchain. Bitcoin has forced me to think long and hard about the nature of money and the experiment described here is one of the things that still screws with my mind.
Suppose one coded a bitcoin variant that works as follows.
Difficulty still varies up and down to target a set number of block being generated in a set time period. However, the coinbase amounts are not following a hardcoded decreasing pattern to target a fixed final amount of issued currency, but are adjusting up and down to target a fixed exchange rate, for example pegging the currency to the dollar. (Please don't get stuck at this point on how undesirable this is, I'm not advocating for it, just trying to convince myself whether it would work.)
Exchange rate is determined by demand and supply. We have no control over demand but some control over supply (not perfect control, since we can't control when hoarders will choose to sell, but assuming some miners sell their coins soon after generation, we have control over this portion of supply). In order for the network to know what the coinbase amount for the next block should be it needs to know what the exchange rate is. Therefore the current exchange rate is also placed into every block. If the exchange rate in a block is incorrect for the time when the block was generated, the block is rejected. If the exchange rate goes above one (Fiatcoins become too valuable), then the coinbase transaction is increased and if it drops below one (Fiatcoins become too cheap) then the coinbase amount is decreased. This is analogous to a central bank increasing and decreasing the money supply via interest rates which in turn affects the exchange rate of the currency.
One important point is that this may well work, not because the feedback loop thus created is particularly effective, but because it creates an expectation of what the exchange rate "should be". If a large group of people believe that the exchange rate will tend to 1:1 in the long term they will buy when the rate dips below 1 and sell when it rises above 1. The built in mechanism can only affect the the exchange rate over long periods, but the expectation that the protocol will eventually force the rate back to 1 leads traders to keep the rate at unity, even in the short term.
Of course having the exchange rate in every block causes technical issues. If everyone is getting their rates from the same exchange, then the network has a single point of failure. If we get our rates from different exchanges, then as long as there is still a functional exchange somewhere that is reachable by most miners, the network remains functional. However, if miners are free to use exchange rates from any exchange, then I can't reject any block that has a price that doesn't match the price at my reference exchange exactly, since the rate may well be different at other exchanges. I can however reject anything that deviates by more than a small margin, since arbitrageurs should keep the exchange prices close to one another.
The power of expectations is unbelievable. Give people a plausible reason to believe that the exchange rate will tend to X in the long term and it becomes a self fulfilling prophecy. Another example is the bitcoin test network. On a technical level the test and production networks are indistinguishable (aside from scale), yet bitcoins are worth almost $17 dollars each (right now, who knows what they'll be worth in 5 minutes) while test network coins are utterly worthless. Why are they worthless? Because we expect them to be.
This messes with my mind
Linking the Bitcoin to the external system is a horrible idea. The Bitcoin itself is a closed system so that it does not affected by any external environment. Their value is then only determined by the people who want them. Vast majority agreed with the same rule, then the system work. If variance is allowed, then tricks appear.
Consider that we must allow the variance of the exchange rate to a very small range, say, 0.00001. Due to the greediness of people, old people will want the exchange rate to increase so they will report a number toward their goal. Note that the system will still accept the price because of the rule. Then after the 100000 blocks, the price will be (1.00001)
100000. This example simply means that people have motivation to make trick and the system allow it to happen!!!
Stable exchange rate is definitely not desirable. Stable purchasing power of a bitcoin is though, i.e. no excessive infaltion or deflation... Made the following post elsewhere but it got buried, it's appropriate to this discussion so will repost:
----------------------------------------------------
The hard limit on supply of bitcoins is the biggest problem IMHO. The deflationary spiral threat is well documented so I won't repeat it except to point out that it gives bitcoin far more characteristics of an asset rather than a currency and provides a disincentive for circulation.
Monetary policy should be internally regulated and dynamic. I'd propose something along the lines of a feedback loop where the rate of coin generation is proportional to the incentive to hoard coins. Thus if you have excessive deflation more coins are produced, if you have inflation less coins are produced. The hard limit would disappear and the real world value of the coins stays relatively stable. The difficulty is that you can't tie it to any externality like exchange rates because then you need gateways to those externalities which creates points of potential manipulation.
My first thought was to tie it to the inverse of the rate of circulation which is easy for any node to calculate. The more people are hoarding, the more new currency is added to the market thus devaluing the hoarded currency or at least finding an equilibrium and removing the hoarding incentive. But that would need to balanced with a disincentive to spam transactions or the rate of circulation could be manipulated (and probably choke the network if the effort was big enough). My next thought is to tie it to the number of unique coins that have been transacted in the block (or the average of the last n blocks) compared to the total generated. Each coin can only be counted once no mater how many times it is transacted thus preventing spamming with circular transactions to manipulate the rate. Very large holders could still have an effect by ensuring their coins were moved at least once every block so perhaps it could actually be a one way test:
if circulation > threshold --> create normal number of new bitcoins
if circulation < threshold --> create normal number of new bitcoins + (threshold - circulation) * factor
Obviously not a fully fleshed out idea but hopefully greater minds can add to it...
-----------------------------------
There is no such thing of coin in the system. Everything the system have is the transaction record and so does the balance in each public address of wallet. So you cannot determine whether a "particular Bitcoin" is circular or not. Consider someone with 100000BTC in their account and they spend 0.001BTC. They are hoarding Bitcoin, but the system has no way to tell because the 99999.xxBTC always move to different wallet address.