I had an epiphany last night while lying in bed contemplating targeted currencies as described in other threads.
I have convinced myself that anybody can start their own distributed currency with a set price target (USD, ounces of gold, barrels of oil, Euros, etc), using only the existing bitcoin client and protocol. To easily track and use the new currencies will require some extra UI on the bitcoin client, but no changes to the underlying protocol.
The concept is absurdly simple. You can create such a currency simply by saying that you have done so, and defining the rules for trading it on the bitcoin network.
Anyone can create their own currency within the existing bitcoin block chain by nominating some extra rules. Anybody following those new rules can use the new currency. Anybody can pay bitcoins to a fake address to get that new currency (destroying the bitcoins). Anybody can sell the currency to someone else by following the rules. Some data is embedded into microtransactions to publish information like "I have 30 goldcoins for sale at such-and-such price".
Let's look at how this could work.
You, Joe user, decide you want to create and issue a new distributed USD currency riding on top of the bitcoin protocol. In this case, your currency is targeted to USD. Anybody buying a unit of your currency expects to be able to sell it in the future for around 1 USD.
The first thing you do is create two bitcoin addresses: the ticker and the hole. The ticker broadcasts the current bitcoin price of 1 USD periodically (for instance, once per day, once per hour, or any time it changes). So if 1 bitcoin is worth $30, the ticker sends 1/30 = 0.03333333 BTC. These coins are sent to the hole.
Anybody anywhere who sends 0.03333333 BTC to a fake address specified by you is recognized to hold 1 unit of your new currency (1 USD). If they send 0.06666666 BTC to the fake address, they are recognized to hold 2 units (2 USD). They can buy as many USD as they want, destroying bitcoins each time they do so. (Sorry, destroying bitcoins is necessary - I don't see any way around it. If the person running the ticker and hole keeps the bitcoins, they can create infinite money by buying these coins from themself.)
Now, let's say I bought 50 USD by destroying bitcoins (sending them to the fake address), and later I want to sell them. To do this, I must mark them as "for sale". This requires that I first send 0.00000001 BTC to your hole, meaning "I'm putting up some of this currency for sale". Then I send 0.00000050 BTC to your hole, meaning "I'm selling 50 USD". Then I send 0.00000003 BTC to your hole, meaning "I'm offering 0.00000003 BTC off face value". The whole bitcoin network now knows that I have 50 USD for sale at 0.03333333 - 0.00000003 = 0.03333330 BTC each. Note that all these sends must come from the address which is currently recognized to hold the 50 USD I bought from you.
Enter yet another person. Satoshi wants to buy 25 of these USD coins. He sees that he can buy them by destroying bitcoins for 0.03333333 BTC each, or from me at 0.03333330 each. He of course chooses to buy from me. Of course, he can't just send me the bitcoins, because someone else might try to buy them at the same time. Instead, he sends me 0.00000001 BTC, which locks my USD coins for the next 2 blocks. For the next 2 blocks, nobody else can buy them, and I cannot take them off the market. Once he sees that he was the first to lock my coins, he sends me 25*0.03333330 = 0.83333250 BTC. Satoshi is now recognized to have 25 of the USD coins I bought from you. With the transaction completed, my other 25 coins are now unlocked, and they are still for sale until someone else buys the rest or I remove them from being for sale.
I change my mind and decide I want to keep the other 25 of these USD coins. I send 0.00000002 BTC to your hole, meaning "my coins are no longer for sale. Thanks!" I could have sent this transaction while they were still locked if I wanted to be sure any remaining coins were taken off the market once unlocked before any more could be bought.
Later I decide I want to transfer my remaining 25 USD to my friend Bob. First I send 0.00000003 BTC to the hole, meaning "I'm going to transfer some USD to someone else", then I send 0.00000025 BTC to Bob's bitcoin address, meaning "I hereby transfer 25 USD to this address". Note that almost no bitcoins changed hands, even though $25 of USDCoins are now under Bob's control.
After watching the wild success of your USDCoins for a few days, I think to myself "screw USDCoins, I'm making my own currency: doublecoins". I define doublecoins to start out at 1 USD, but they slowly grow in value such that their value doubles every year.
I create my own ticker and hole. Many sheeple agree that a coin which grows in value at a rate of 100% per year is MUCH better than owning USD coins. Bitcoins are destroyed in a frenzy as everyone buys doublecoins. For awhile things are going great, but then some people start to worry that they won't be able to find a bigger sucker to buy these doublecoins from them. Prices start to sag. When my doublecoins have a face value of 1.0 BTC, people are selling them at a 10% discount. The seller only gets 0.8 BTC because 10% of the USD coins are destroyed as a penalty for selling 10% below face value and the buyer only gets 0.9 of the 1.0 doublecoins put up for sale. 10% of doublecoins are also destroyed anytime they are transfered while doublecoin prices are 10% low. Eventually there is a panic, prices collapse, and all that are left are bag-holders. I buy a yacht and sail off into the horizon, having sold all my doublecoins at the peak, profiting from the ponzi scheme.
Other tickers are created, some sustainable, and a few more crazy ponzi schemes. Eventually there are tickers for every major stock, currency, and commodity. Tickers are churning, holes are filling up, and needless to say, bitcoin prices are in the stratosphere.
Oh wait, now everybody wants to create a ticker. There could be 362 tickers claiming to be THE ticker for gold alone! To prevent this, ticker creation must have a limited supply and a cost, determined by supply and demand. The first ticker can be created once we reach block 142000 (because it has "42" in it. Current block is 140554, so this is about 10 days from now). The price of creating the first ticker starts at 100 BTC (way more than anyone will pay). The price goes down by 1% with each block, until someone purchases the first ticker.
Any time someone purchases a new ticker, the price doubles, then continues to come down at 1% per block, eventually reaching the price of the previous purchase after about 69 blocks (heh).
Payment for a new ticker would go to a fake address, again destroying bitcoins. Something like:
Once you have purchased your very own ticker, you need to specify the ticker address, the hole address, name the ticker, describe the ticker, etc.
This can be done with a series of special transactions combined with the characters you choose when creating the fake bitcoin address used for destroying bitcoins when the new currency is created.
First, send 0.00000002 BTC to the ticker address from the address which purchased the ticker. If they are the same address, you can skip this step
Then, send 0.00000001 BTC from the ticker address to the backup ticker address (this address would be in a second encrypted wallet. If somebody hacks your computer, and you lose access to the wallet with your ticker, you can unencrypt the wallet containing this backup ticker and keep going with uncompromised ticker updates)
Next, send 0.00000002 BTC from the ticker to a second backup ticker in another encrypted wallet
Then 0.00000003 BTC to a third backup ticker, and so on, until your paranoia is satisfied
Then send 0.00000001 BTC to the hole address
Finally, send 0.0000001 BTC to the fake address that will be used for destroying bitcoins exchanged for your new currency.
Now the whole network knows the address of your ticker, backup tickers, hole, and fake address. Next it is time to add some metadata for your ticker. We will put as much of it as we can in the characters of the fake address.
The metadata we want for this ticker is as follows:
"USD" (the ticker name)
"US Dollars" (the ticker description)http://bitcointalk.org/?topic=7985.0
(the forum thread for discussing this ticker)http://www.usd.foo
(some website associated with the ticker)
0.7% (new coins will actually be sold at face value times 1.007, allowing our USDCoins to fluctuate above the correct price and therefore have an effect on real-life currency markets)
So the fake address we nominate is:
This fake address can contain some or all of the meta data describing the ticker. In this case:
1 USD (ticker name) 7985 (forum thread number) US1Dollars (ticker description of "US Dollars") 0a7 (0.7% spread) usd1foo (URL "usd.foo") 000000 (filler)
Any other similar metadata could be defined and included as above. If we need more characters than is allowed by a bitcoin address, we can send additional transactions to the fake address representing the rest of the data describing the new ticker.
Do you think I'm crazy? You're correct on that point, but what am I missing? Perhaps I'm missing an important detail which makes this not work at all, but if I am right, bitcoin price increases are just getting started