Bitcoin Forum
April 25, 2024, 06:22:28 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1] 2 3 »  All
  Print  
Author Topic: [PROPOSAL] The Second Bitcoin Whitepaper  (Read 6345 times)
dacoinminster (OP)
Legendary
*
expert
Offline Offline

Activity: 1260
Merit: 1031


Rational Exuberance


View Profile WWW
July 25, 2011, 07:16:02 PM
Last edit: August 08, 2011, 06:14:42 PM by dacoinminster
 #1

This thread is now locked!

I have decided that I like morpheus' idea better than my own, so I am locking my threads about this stuff, and I encourage anyone interested in concepts like this to check out his thread:

https://bitcointalk.org/index.php?topic=29135.0

==============================================================


Imagine:

You download the latest bitcoin client, and upon opening it, you see that while your wallet is still enumerated in bitcoins, you now have the option (in a drop-down menu) to store that value at a guaranteed constant value pegged to your choice of USD, Euros, ounces of gold, ounces of silver, barrels of oil, and a couple dozen other currencies and commodities. You can also peg your value to fluctuate with the inverse of any of these. Finally, you have the option to continue to hold your value in bitcoins or in something called "hyperbitcoins". You can convert your holdings between any of these, or hold a combination of them, and each conversion costs you only the current bitcoin transaction fee.

Is this possible? I believe it is, and I believe it is the next step for bitcoin, and will lead to a million-fold increase in bitcoin prices (I describe my logic for the latter claim here: http://forum.bitcoin.org/?topic=7985.0)

This is not the "white paper" referenced in the title of this post, but I'm calling out for such a white paper to be created, and I'm describing some protocol changes the white paper could describe.

Here's how it would work:

People holding bitcoins denominated in USD, Euros, gold, oil, etc, deposit their bitcoins into an escrow fund held by the network. In exchange, they get a token guaranteed to be redeemable for bitcoins from the escrow fund at the pegged value at any point in the future. These tokens could be bought, sold, used in commerce, etc, just like bitcoins. You could send them to any bitcoin address, and that person would receive them as bitcoins. In this way, somebody could buy a t-shirt using oil-denominated bitcoins which they pay to the bitcoin address of a vendor who holds gold-denominated bitcoins. This would be completely transparent to both of them.

The key to making this possible without ever completely depleting the escrow fund is holding additional bitcoins in that fund by the protocol selling hyperbitcoins, which are a big bet on the rise of bitcoins versus ALL the other possible stores of value listed.

You can think of buying hyperbitcoins as buying shares in a company. If you convert a bitcoin to a hyperbitcoin, you are depositing that bitcoin (forever!) in the escrow fund described above to ensure its solvency.

In exchange, when bitcoin prices quadruple (and everything else indexed does not), there is now a surplus of bitcoins held in escrow. Some or all of that surplus value would be distributed to existing hyperbitcoin holders similar to how a company distributes profits to shareholders.

Hyperbitcoins would also be bought, sold, traded, etc, just like bitcoins or any of the currency/commodity tokens described above.

As an example, imagine you believe big-time in the future of bitcoins, so you convert your one bitcoin (worth $15) to a hyperbitcoin. Let's imagine that the escrow fund consists of 1M bitcoins, 250k of which came from hyperbitcoin sales to people like you.

Later, the value of bitcoins rises 100x versus the other currencies and commodities tracked. The escrow fund now holds 100x as much value as before. It only needs 5k bitcoins to cover its liabilities to the token-holders, but it has 1M bitcoins. Consequently, the escrow fund slowly starts distributing bitcoins to hyperbitcoin holders. To be conservative, the escrow fund makes these payments over many months, to protect itself in case the rise was only temporary.

Excess bitcoins could be distributed either by paying "dividends" in bitcoins, or by buying back hyperbitcoins on the open market. In the former case, once all excess bitcoins were distributed, you (the hyperbitcoin holder) now still have your hyperbitcoin (which you can always sell if you want) plus nearly 4 new bitcoins worth $1500 each (You did a lot better than if you had just held onto that one bitcoin). I believe the hypercoin buyback scenario would drive up hyperbitcoin prices, yielding a similar or possibly even greater profit.

The counter-example is if bitcoin prices crash, Now we run into the possibility that there aren't enough bitcoins in escrow to cover all the tokens being held if they were cashed out at once. Perhaps this would trigger a run on the escrow fund by people holding the tokens. I used to think that this scenario must be avoided at all costs, but after contemplating a doomsday scenario thought experiment (http://forum.bitcoin.org/index.php?topic=31645.msg403514#msg403514) I decided that the protocol will probably have to give up supporting the currency/commodity values when there aren't enough hyperbitcoin holders to absorb volatility.

There are several technological hurdles, including how to do a distributed exchange rate (the same way bitcoin currently does a distributed timestamp), and how to create a distributed exchange between bitcoins/hyperbitcoins, GoldCoins/AntiGoldCoins, OilCoins/AntiOilCoins, etc, that the protocol could run and use.

I first introduced the concept of hyperbitcoins in this thread: http://forum.bitcoin.org/index.php?topic=30741.0
The concept was extrapolated in this thread: http://forum.bitcoin.org/index.php?topic=31032.0

I believe this concept is so important to bitcoin's future that I am currently PAYING BITCOINS for intelligent posts in the latter thread, and I'm officially extending those payments so that posts in this thread are eligible as well. See this thread for details on the payments: http://forum.bitcoin.org/index.php?topic=31057.0

"You Asked For Change, We Gave You Coins" -- casascius
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
dacoinminster (OP)
Legendary
*
expert
Offline Offline

Activity: 1260
Merit: 1031


Rational Exuberance


View Profile WWW
July 25, 2011, 07:23:56 PM
 #2

I should add that the price of oil-denominated bitcoin, gold-denominated bitcoins, etc would have to be allowed to fluctuate somewhat separately from the official exchange rate. That way, bitcoin traders of those commodities could affect the real-life prices, and vice versa.

notme
Legendary
*
Offline Offline

Activity: 1904
Merit: 1002


View Profile
July 26, 2011, 07:02:06 AM
 #3

I should add that the price of oil-denominated bitcoin, gold-denominated bitcoins, etc would have to be allowed to fluctuate somewhat separately from the official exchange rate. That way, bitcoin traders of those commodities could affect the real-life prices, and vice versa.

User A buys a USDCoin at current market rate, say 1/14 BTC.  Current market rate moves to $15/BTC and user trades in his USDCoin for 1/15 BTC.  Fantastic.  User B decides $/BTC will move down, so he buys a USDCoin for 1/15 BTC.  He is right and wants to cash in his USDCoin.  Whoops!  Either the value of the bitcoins in escrow has to somehow fluctuate with the asset (impossible), or you have to pray it doesn't move against the hedge.

https://www.bitcoin.org/bitcoin.pdf
While no idea is perfect, some ideas are useful.
hashcoin
Full Member
***
Offline Offline

Activity: 372
Merit: 101


View Profile
July 26, 2011, 03:34:18 PM
 #4

If you want to peg coins to something, you need to get real-world info into the chain to adjust supply.  There are two ways to do this: trust someone, or do it by vote and trust voters to do what you want.

In other words, your proposal is effectively the same as "let coin generation parameters be setr by vote" and "hope people will vote to peg prices".

I described a scheme for doing this here:
 http://forum.bitcoin.org/index.php?topic=24929

I plan to build such a system after meeting work deadlines, about 4 weeks.
dacoinminster (OP)
Legendary
*
expert
Offline Offline

Activity: 1260
Merit: 1031


Rational Exuberance


View Profile WWW
July 26, 2011, 03:42:55 PM
Last edit: July 26, 2011, 04:15:05 PM by dacoinminster
 #5

User A buys a USDCoin at current market rate, say 1/14 BTC.  Current market rate moves to $15/BTC and user trades in his USDCoin for 1/15 BTC.  Fantastic.  User B decides $/BTC will move down, so he buys a USDCoin for 1/15 BTC.  He is right and wants to cash in his USDCoin.  Whoops!  Either the value of the bitcoins in escrow has to somehow fluctuate with the asset (impossible), or you have to pray it doesn't move against the hedge.

You are quite right that trades cannot be made between users and escrow. The protocol would have to match users to each other directly. That is what I mean by the exchange rate fluctuating separately from real life.

Here is the example I would use:

User converts his bitcoins to USDcoins
Behind the scenes, his bitcoin client puts his bitcoins into the escrow fund. In return he gets USDCoins. The protocol gets those USDCoins by either 1) Buying them from another user who is selling them OR 2) Creating them out of thin air, and also creating balancing AntiUSDCoins, which it sells to another user. One of those options will be a net win for the escrow fund, and that will be the option chosen.

User later converts his USDCoins back to bitcoins
Behind the scenes, his bitcoin client either 1) Sells his USDCoins to another user, or 2) Buys AntiUSDCoins from another user and destroys both the USDCoins and the AntiUSDCoins. One of those options will be a net win for the escrow fund, and that will be the option chosen. The resulting bitcoins are then credited to the user.

In order to converge prices on reality, the protocol could charge a slightly higher fee the further you trade from the current external exchange rate.

Obviously the example above is more of a "market order" type of trade. Limit orders would also be needed to provide liquidity.

dacoinminster (OP)
Legendary
*
expert
Offline Offline

Activity: 1260
Merit: 1031


Rational Exuberance


View Profile WWW
July 26, 2011, 03:50:42 PM
 #6

If you want to peg coins to something, you need to get real-world info into the chain to adjust supply.  There are two ways to do this: trust someone, or do it by vote and trust voters to do what you want.

In other words, your proposal is effectively the same as "let coin generation parameters be setr by vote" and "hope people will vote to peg prices".

I described a scheme for doing this here:
 http://forum.bitcoin.org/index.php?topic=24929

I plan to build such a system after meeting work deadlines, about 4 weeks.

I looked over your proposal. It looks very interesting. Allowing people to vote on how many coins are generated is very different than having them vote on what they think the USD/bitcoin exchange rate is. If I'm understanding your proposal correctly, early adopters would vote for less coins generated, and would use their CPU/GPU power simply to prevent other people from getting coins. Newcomers would vote for lots of coins to be generated. That doesn't sound like a recipe for price stability to me, but maybe I am missing something.

hashcoin
Full Member
***
Offline Offline

Activity: 372
Merit: 101


View Profile
July 26, 2011, 05:14:24 PM
 #7

Its not different.  Think all the way through.  You are suggesting people vote on the exchange rate, and then based on the outcome, the network will do some action to produce the desired effect.  What such action can be taken?  It seems to me the only action possible is adjustment if generation parameters.

I.e, if coins are too cheap,  an adjustment is made to produce fewer coins per block, and vice versa.  

But now, knowing this, how will people behave?  They will not vote for the true exchange rate, but rather for a rate that triggers their desired behavior (increasing or decreasing generation).

So its better to let them vote on that directly.

No, my scheme would not inherently be some kind of new vs old.  If it became that, there would be stability:  whoever has more CPU power in the long run wins.

In other words, rules would always be set by "current adopters".  If the network is in infancy, that means newcomers.  If mature, AND early adopters still participate, that means early adopters.
 
The main point is to allow rules to change as the community grows, rather than fixed arbitrarily.  by the earliestlt adopter as in bitcoin.  If a majority of CURRENT participants wants inflation, they get it.  Ditto for deflation or stability.

Also check out post10 there for avoiding "tyranny of majority".  A participant could have a range of acceptable parameters and refuse to accept blocks outside of them.  They could then be off in their own world with whoever agrees with them.
dacoinminster (OP)
Legendary
*
expert
Offline Offline

Activity: 1260
Merit: 1031


Rational Exuberance


View Profile WWW
July 26, 2011, 05:27:57 PM
 #8

Its not different.  Think all the way through.  You are suggesting people vote on the exchange rate, and then based on the outcome, the network will do some action to produce the desired effect.  What such action can be taken?  It seems to me the only action possible is adjustment if generation parameters.

I.e, if coins are too cheap,  an adjustment is made to produce fewer coins per block, and vice versa.  

But now, knowing this, how will people behave?  They will not vote for the true exchange rate, but rather for a rate that triggers their desired behavior (increasing or decreasing generation).

So its better to let them vote on that directly.

I think perhaps you misunderstand what I am proposing. I am NOT suggesting that the protocol would change the number of blocks generated for bitcoins. I have no desire to change the way bitcoins are generated, which is an algorithm that many people have accepted and are already invested in.

Instead, I propose that people be given the option to transfer risk for bitcoin price fluctuations through the protocol in a way that can guarantee them a stable store of value as long as bitcoin remains a viable currency. The risk would be transferred to speculators.

The only thing the distributed exchange rates would be used for in my proposal would be to set trading fees. The closer people trade to the external exchange rate, the lower their trading fees. This is my proposed mechanism for ensuring that prices eventually converge with the exchange rates outside the network. See the example above for details: http://forum.bitcoin.org/index.php?topic=31645.msg400477#msg400477

No, my scheme would not inherently be some kind of new vs old.  If it became that, there would be stability:  whoever has more CPU power in the long run wins.

In other words, rules would always be set by "current adopters".  If the network is in infancy, that means newcomers.  If mature, AND early adopters still participate, that means early adopters.
 
The main point is to allow rules to change as the community grows, rather than fixed arbitrarily.  by the earliestlt adopter as in bitcoin.  If a majority of CURRENT participants wants inflation, they get it.  Ditto for deflation or stability.

Also check out post10 there for avoiding "tyranny of majority".  A participant could have a range of acceptable parameters and refuse to accept blocks outside of them.  They could then be off in their own world with whoever agrees with them.

I will watch your scheme unfold with great interest.

hashcoin
Full Member
***
Offline Offline

Activity: 372
Merit: 101


View Profile
July 26, 2011, 06:29:46 PM
 #9

But it is the same thing then, just with voting on "hyperbitcoins per bitcoin" or some other exchange than "bitcoins per current block difficulty". Either way you must assume people will vote in their own interest.

I think you underestimate the failure scenario.  Its not hard to design some kind of fund and describe how it will run while it remains solvent; that is easy.  The hard part is deciding what happens if he fund is insolvent.  As you hinted in your OP there is really no way to do this reliably.  

In other words, handling the case of bitcoins win, commodities lose where you have escrowed bitcoins is totally obvious.  Clearly if the losers assets are in escrow, they can be handed to the winners.  What is not obvious, and infact impossible, is to handle the case where bitcoins lose, commodities win when you have only escrowed bitcoins.  To do that, the commodities must be in escrow too,  or you must hold more coins in escrow than you have bet.  

Also, think about what will happen: commodity betters will vote commodities won, and bitcoin betters will vote bitcoins won.  So in the end the result will have nothing to do with exchange rates but simply a game of "pick the bigger side".

Intuitively, NOONE can peg a bitcoin to a commodity except someone who holds both of them.  More accurately, only a bitcoin holder can keep a price above some value and only a commodity holder can keep a price below some value.

If you wanted to do this fund, here is how you could do it.  Find people like yourself who believe bitcoins will outperform oil.  Pool your cash and split it, buying bitcoins with some fraction and using the rest as collateral with a broker, sell an oil futures contract.
Fizzgig
Full Member
***
Offline Offline

Activity: 154
Merit: 100


View Profile
July 26, 2011, 06:41:57 PM
 #10

The commoners of the world have discovered a way to wrench economic control from the current power structure. They now discuss how the new economy should be engineered in a way that is consistent with mathematical laws. This insolence is unacceptable!!!

Best Bitcoin supported browser game:
Minethings: Dig, Trade, and Fight your way to influence!
bji
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
July 26, 2011, 06:51:06 PM
 #11

First of all, I really think it's lame to use such a bait-and-switch forum topic.  You purposefully chose "The Second Bitcoin Whitepaper" because you want to attract readers to your topic, which, by the title, would seem to suggest that there is a second whitepaper and that the post reveals it.  It's annoying when people choose inflated topic titles to drive eyes to their topic, so don't do it.  You should realize, if you haven't yet, that lots of people have lots of ideas for ways to modify or extend bitcoin and yours is no more worthwile than many others, so stop touting it as if it is more than that.

Second of all, so many people come in here with ideas for adding rules to the bitcoin protocol to effect some pre-existing financial instrument that they desire bitcoin to reproduce.  There are a couple of problems with this:

1) Bitcoin is already established and you have almost no chance of making such fundamental changes even if your idea is wonderful.

2) Most people's ideas are not wonderful, they are well-intentioned but completely miss a very important issue: they are completely unimplementable.  There have been so many proposals for 'pegging' bitcoin value to some other real-world commodity value, but this is completely antithetical to the original purpose of, the original implementation of, and the spirit of, bitcoin.  Also, it's absolutely impossible without an external authority declaring the 'current' exchange rate, and external authorities is exactly what bitcoin does away with.

3) Most of these ideas completely miss the genius idea of bitcoin which is to produce a system of fully disclosed information that anyone can use to validate any transaction.  People propose all kinds of ways to 'peg' bitcoins value relative to something else, or to modify the number of bitcoins generated, or to introduce esoteric new transaction types that have some secondary effect ("contingent claims"), but without any idea how such things could ever be validated realistically and identically by all bitcoin peers.  Any source of external data, such as a "current value of oil" or "current value of gold", cannot implicity be agreed upon by all bitcoin peers, so immediately the ability for all peers to validate transations goes away.

Before you go too far out on any branch of ideas about additions to bitcoin to mimic some pre-existing financial instrument, please take a minute to very, very thoroughly think through exactly what new information will be contained in bitcoin transactions (don't understand bitcoin transactions, how they are represented in the protocol, and what the rules are for validating them?  Stop right here and don't go further until you do), and what new rules will be required for peers to follow to track and validate data necessary to validate transactions, and then whether or not this makes transactions impossible or impractical to validate.

The bitcoin protocol was very cleverly defined to require a minimum amount of data storage and network bandwidth to transmit, validate, and re-transmit validated transactions.  Does your proposal blow up the CPU, memory, and disk requirements for bitcoin peers to an unsustainable level?  If 100 transactions per second including your new protocol rules were transmitted, would any peer have any chance of validating them all?

You should have good evidence that your idea is even remotely workable before stating that there is or should be a "second bitcoin whitepaper" about it.
dacoinminster (OP)
Legendary
*
expert
Offline Offline

Activity: 1260
Merit: 1031


Rational Exuberance


View Profile WWW
July 26, 2011, 06:56:43 PM
 #12

But it is the same thing then, just with voting on "hyperbitcoins per bitcoin" or some other exchange than "bitcoins per current block difficulty". Either way you must assume people will vote in their own interest.

. . . .

Also, think about what will happen: commodity betters will vote commodities won, and bitcoin betters will vote bitcoins won.  So in the end the result will have nothing to do with exchange rates but simply a game of "pick the bigger side".


Hyperbitcoin vs bitcoin trading and exchange rates would be handled without an external exchange, so determining the exchange rate would be easy. All the other commodities and currencies would have their external exchange rates decided by voting, which would drive fees for the internal exchange rates, which would be driven by supply/demand (not voting). There would be very little motivation that I can see for anyone to mess with the external exchange rate voting. You might be able to annoy people by increasing fees a bit at the external spot price, but the vast majority of traders are going to vote for the correct external rate.


I think you underestimate the failure scenario.  Its not hard to design some kind of fund and describe how it will run while it remains solvent; that is easy.  The hard part is deciding what happens if he fund is insolvent.  As you hinted in your OP there is really no way to do this reliably.  

In other words, handling the case of bitcoins win, commodities lose where you have escrowed bitcoins is totally obvious.  Clearly if the losers assets are in escrow, they can be handed to the winners.  What is not obvious, and infact impossible, is to handle the case where bitcoins lose, commodities win when you have only escrowed bitcoins.  To do that, the commodities must be in escrow too,  or you must hold more coins in escrow than you have bet.  

 . . .

Intuitively, NOONE can peg a bitcoin to a commodity except someone who holds both of them.  More accurately, only a bitcoin holder can keep a price above some value and only a commodity holder can keep a price below some value.

If you wanted to do this fund, here is how you could do it.  Find people like yourself who believe bitcoins will outperform oil.  Pool your cash and split it, buying bitcoins with some fraction and using the rest as collateral with a broker, sell an oil futures contract.

You are correct that a big drop in bitcoin prices would be the biggest test of this system. I imagine that the bitcoin protocol would have a target margin of safety for handling this. For instance, the target might be to maintain bitcoins in escrow worth 200% of the value of outstanding commodity/currency tokens if they were all redeemed at once for bitcoins. If the value of bitcoins in escrow fell, hyperbitcoins would be sold to speculators until the target was reached again. If the value of bitcoins in escrow rose, hyperbitcoins would be bought from speculators until the target was reached again. I THINK this would be plenty conservative, since an escrow system like this could easily hold LESS than the value of the tokens it owes if people trusted it (similar to a bank loaning more money than it has).

dacoinminster (OP)
Legendary
*
expert
Offline Offline

Activity: 1260
Merit: 1031


Rational Exuberance


View Profile WWW
July 26, 2011, 07:25:08 PM
 #13

First of all, I really think it's lame to use such a bait-and-switch forum topic.  You purposefully chose "The Second Bitcoin Whitepaper" because you want to attract readers to your topic, which, by the title, would seem to suggest that there is a second whitepaper and that the post reveals it.  It's annoying when people choose inflated topic titles to drive eyes to their topic, so don't do it.  You should realize, if you haven't yet, that lots of people have lots of ideas for ways to modify or extend bitcoin and yours is no more worthwile than many others, so stop touting it as if it is more than that.

I did not intend to pull a bait and switch. My intention is to discuss my proposal for what the second bitcoin whitepaper should cover. Would "My proposal for the second bitcoin whitepaper" be a better title?

Second of all, so many people come in here with ideas for adding rules to the bitcoin protocol to effect some pre-existing financial instrument that they desire bitcoin to reproduce.  There are a couple of problems with this:

1) Bitcoin is already established and you have almost no chance of making such fundamental changes even if your idea is wonderful.

Changing the protocol is quite possible. If more than 51% of users believe it is in their best interest to use the new protocol because it will increase the utility and value of bitcoins, then it will happen.

Trying to replace bitcoin with some wonderful new idea would be very difficult, but a proposal which extends the bitcoin protocol and adds value to existing bitcoins would go over quite well if people were convinced that it actually worked.

A change would probably take effect "after block #X" to give people time to switch to the new software before the change happens, similar to how Namecoin recently changed their protocol.

I believe my proposal would possibly even be backwards-compatible with the current bitcoin protocol.

What is not clear to me is what simulations or tests could be run on the protocol changes to ensure that they work as expected.

2) Most people's ideas are not wonderful, they are well-intentioned but completely miss a very important issue: they are completely unimplementable.  There have been so many proposals for 'pegging' bitcoin value to some other real-world commodity value, but this is completely antithetical to the original purpose of, the original implementation of, and the spirit of, bitcoin.  Also, it's absolutely impossible without an external authority declaring the 'current' exchange rate, and external authorities is exactly what bitcoin does away with.

Most "let's change bitcoin" ideas DO suck. Maybe mine does to, but I'm digging as hard as I can to find valid counter-arguments.

Bitcoin currently relies on nodes to maintain a distributed timestamp, which is actually based on . . . an external authority! I don't think we can claim that bitcoin relies on no external authority at all. It relies on nodes to cooperate to make sure the data from the external authority is accurately imported into the block chain.

I see no reason why data from other external authorities (like the current price of oil) couldn't be tracked in the block chain as well.

3) Most of these ideas completely miss the genius idea of bitcoin which is to produce a system of fully disclosed information that anyone can use to validate any transaction.  People propose all kinds of ways to 'peg' bitcoins value relative to something else, or to modify the number of bitcoins generated, or to introduce esoteric new transaction types that have some secondary effect ("contingent claims"), but without any idea how such things could ever be validated realistically and identically by all bitcoin peers.  Any source of external data, such as a "current value of oil" or "current value of gold", cannot implicity be agreed upon by all bitcoin peers, so immediately the ability for all peers to validate transations goes away.

My proposal does not require people to trade at the external exchange rate, it just nudges them in that direction by fee incentives to trade closer to that price. The actual price of oil-denominated bitcoins would be determined by good old-fashioned supply and demand.

Before you go too far out on any branch of ideas about additions to bitcoin to mimic some pre-existing financial instrument, please take a minute to very, very thoroughly think through exactly what new information will be contained in bitcoin transactions (don't understand bitcoin transactions, how they are represented in the protocol, and what the rules are for validating them?  Stop right here and don't go further until you do), and what new rules will be required for peers to follow to track and validate data necessary to validate transactions, and then whether or not this makes transactions impossible or impractical to validate.

The bitcoin protocol was very cleverly defined to require a minimum amount of data storage and network bandwidth to transmit, validate, and re-transmit validated transactions.  Does your proposal blow up the CPU, memory, and disk requirements for bitcoin peers to an unsustainable level?  If 100 transactions per second including your new protocol rules were transmitted, would any peer have any chance of validating them all?

You should have good evidence that your idea is even remotely workable before stating that there is or should be a "second bitcoin whitepaper" about it.

It is possible to store oil transaction data only on nodes that care about oil, gold transaction data only on nodes that care about gold, etc. The only thing that must be added to the bitcoin block chain is one additional hash of all the transactions being tracked in these other data stores. Clients that care only about bitcoin would just see this one additional hash. If they later decided to mess around with gold, they could download the gold transactions, hash them, then add that hash to the published hashes for oil transactions, euro transactions, etc, then hash that, then verify that hash matches the latest master hash in the bitcoin block chain. I may not have described this perfectly, but you can read more in the official write up (not by me) of how this would work here: https://en.bitcoin.it/wiki/Alternative_Chains

Of course it is possible that all the data could just be put into the block chain, especially once the official client starts downloading only the headers of old blocks for new users.

My proposal may indeed have a fatal flaw (I am searching for it), but if it doesn't, I don't think anyone can deny the massive increase in bitcoin utility and value this would bring.

notme
Legendary
*
Offline Offline

Activity: 1904
Merit: 1002


View Profile
July 26, 2011, 08:17:13 PM
 #14

User A buys a USDCoin at current market rate, say 1/14 BTC.  Current market rate moves to $15/BTC and user trades in his USDCoin for 1/15 BTC.  Fantastic.  User B decides $/BTC will move down, so he buys a USDCoin for 1/15 BTC.  He is right and wants to cash in his USDCoin.  Whoops!  Either the value of the bitcoins in escrow has to somehow fluctuate with the asset (impossible), or you have to pray it doesn't move against the hedge.

You are quite right that trades cannot be made between users and escrow. The protocol would have to match users to each other directly. That is what I mean by the exchange rate fluctuating separately from real life.

Here is the example I would use:

User converts his bitcoins to USDcoins
Behind the scenes, his bitcoin client puts his bitcoins into the escrow fund. In return he gets USDCoins. The protocol gets those USDCoins by either 1) Buying them from another user who is selling them OR 2) Creating them out of thin air, and also creating balancing AntiUSDCoins, which it sells to another user. One of those options will be a net win for the escrow fund, and that will be the option chosen.

User later converts his USDCoins back to bitcoins
Behind the scenes, his bitcoin client either 1) Sells his USDCoins to another user, or 2) Buys AntiUSDCoins from another user and destroys both the USDCoins and the AntiUSDCoins. One of those options will be a net win for the escrow fund, and that will be the option chosen. The resulting bitcoins are then credited to the user.

In order to converge prices on reality, the protocol could charge a slightly higher fee the further you trade from the current external exchange rate.

Obviously the example above is more of a "market order" type of trade. Limit orders would also be needed to provide liquidity.


Damn it, you added a dimension.  Now I have to think much harder to prove you wrong.

https://www.bitcoin.org/bitcoin.pdf
While no idea is perfect, some ideas are useful.
dacoinminster (OP)
Legendary
*
expert
Offline Offline

Activity: 1260
Merit: 1031


Rational Exuberance


View Profile WWW
July 26, 2011, 08:21:35 PM
 #15

Damn it, you added a dimension.  Now I have to think much harder to prove you wrong.

I need you, and I need people like you, to do exactly what you are doing.

You point out possible problems, vulnerabilities, and things which just aren't quite clear. In response, I have to modify, clarify, and elaborate.

Maybe the final product will be a useful set of changes that allow bitcoin to change the world (again), or maybe it will just be a fun exercise.

bji
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
July 26, 2011, 08:30:36 PM
 #16


I did not intend to pull a bait and switch. My intention is to discuss my proposal for what the second bitcoin whitepaper should cover. Would "My proposal for the second bitcoin whitepaper" be a better title?


"My proposal for the second bitcoin whitepaper" is more accurate and more descriptive, and yes, it would have been a better title.

Second of all, so many people come in here with ideas for adding rules to the bitcoin protocol to effect some pre-existing financial instrument that they desire bitcoin to reproduce.  There are a couple of problems with this:

1) Bitcoin is already established and you have almost no chance of making such fundamental changes even if your idea is wonderful.

Changing the protocol is quite possible. If more than 51% of users believe it is in their best interest to use the new protocol because it will increase the utility and value of bitcoins, then it will happen.


You have almost no chance of getting more than 51% of users to agree to anything anymore, which is my point.  There is a central cabal of people who may have more influence over bitcoin because they control the 'standard' client, or some large bitcoin-related website, or a bitcoin trading exchange, and maybe if you could get all of them to agree you could by fiat force the changes on everyone; but you're not going to get 51% of the actual bitcoin users to agree to anything, and it's highly unlikely that even the influential cabal I mentioned could all be swayed.

That being said, I don't mean to imply that no one should think big ideas about bitcoin or write proposals.  I just think that people should also be very realistic and be committed to a very long haul (years of stumping for the cause and making incremental changes) if they are serious about trying to make any fundamental changes to bitcoin.


Bitcoin currently relies on nodes to maintain a distributed timestamp, which is actually based on . . . an external authority! I don't think we can claim that bitcoin relies on no external authority at all. It relies on nodes to cooperate to make sure the data from the external authority is accurately imported into the block chain.

I see no reason why data from other external authorities (like the current price of oil) couldn't be tracked in the block chain as well.


The 'current time' as it is known to every person on the planet is not really an 'external authority'; it is more of a fact.  It has a precisely, scientifically, perfectly predictable value.  This is nothing even remotely like the "price of a commodity", which has no definite value and which, if a definitive value is required, implicitly needs an authority to resolve a diversity of differences of local opinion on the correct value.  Time is not artificial; the "exchange rate" for commodities is.  There is a major difference and it is precisely this difference that makes the latter impractical for use in the bitcoin protocol.


My proposal does not require people to trade at the external exchange rate, it just nudges them in that direction by fee incentives to trade closer to that price. The actual price of oil-denominated bitcoins would be determined by good old-fashioned supply and demand.


Well I like the idea of rules built into the system that effect a desired outcome through the natural action of market forces; but once again who is to define exactly what the 'external exchange rate' is such that everyone can be 'nudged' towards it?  Or is it OK for there to be uncertainty about the exact value as long as the differences between any two disagreeing opinions about the value don't differ by a large amount?

In lots of your discussion on this topic you talk about the protocol making payments based on excessive value in escrow etc; who is to decide exactly how and when this is to be done?  Obviously it has to be built into the rules of the protocol, so that everyone can, after the fact, all come to the exact same conclusion about what the current state of the global balance sheet is.  So how can that level of certitude be achieved without an external authority to be consulted on those parts of the equation ("current cost of gold at the moment in time that a transaction was validated") that cannot be known implicitly from data publicly stored in the block chain?

It is possible to store oil transaction data only on nodes that care about oil, gold transaction data only on nodes that care about gold, etc. The only thing that must be added to the bitcoin block chain is one additional hash of all the transactions being tracked in these other data stores. Clients that care only about bitcoin would just see this one additional hash. If they later decided to mess around with gold, they could download the gold transactions, hash them, then add that hash to the published hashes for oil transactions, euro transactions, etc, then hash that, then verify that hash matches the latest master hash in the bitcoin block chain. I may not have described this perfectly, but you can read more in the official write up (not by me) of how this would work here: https://en.bitcoin.it/wiki/Alternative_Chains

But miners would have to also validate the external data store before believing that the block that they are generating that includes that hash will be accepted by other miners, otherwise other miners will reject the block because it includes an invalid hash of this external data store.  Otherwise, anyone can generate a bitcoin block with any 'external data store' hash they wanted to and the bitcoin block miners, since they don't validate that hash in any way, would just keep on building the block chain based on that.  So the hash would essentially become worthless as it could be faked by anyone to represent any set of invalid transactions in the external data store that they wanted to.

Therefore, the problem I have expressed remains: even if individual clients don't bother to validate this extra hash if they don't care about the contents of the external data store that it represents, miners will have to.

Quote
My proposal may indeed have a fatal flaw (I am searching for it), but if it doesn't, I don't think anyone can deny the massive increase in bitcoin utility and value this would bring.

The fatal flaw is the reliance on an external authority to set a fixed, knowable, and perfectly-agreed-upon value for the exchange rate of bitcoins to the commodities you are interested in, and the ensuing impossibility of validating transactions (identically for all peers) that results.  Also I suspect, although I don't know because I still am not entirely clear on the way that the exchange of bitcoins into 'escrow' and back again is supposed to work, that all peers, including clients, will have to perform excessive and impractical work to determine if a transaction is valid when its history can include bitcoins that were put into escrow and taken back out again.
dacoinminster (OP)
Legendary
*
expert
Offline Offline

Activity: 1260
Merit: 1031


Rational Exuberance


View Profile WWW
July 26, 2011, 09:12:53 PM
 #17

"My proposal for the second bitcoin whitepaper" is more accurate and more descriptive, and yes, it would have been a better title.

I have added "[PROPOSAL]" to my thread title. Hopefully nobody else will be disappointed Smiley

You have almost no chance of getting more than 51% of users to agree to anything anymore, which is my point.  There is a central cabal of people who may have more influence over bitcoin because they control the 'standard' client, or some large bitcoin-related website, or a bitcoin trading exchange, and maybe if you could get all of them to agree you could by fiat force the changes on everyone; but you're not going to get 51% of the actual bitcoin users to agree to anything, and it's highly unlikely that even the influential cabal I mentioned could all be swayed.

That being said, I don't mean to imply that no one should think big ideas about bitcoin or write proposals.  I just think that people should also be very realistic and be committed to a very long haul (years of stumping for the cause and making incremental changes) if they are serious about trying to make any fundamental changes to bitcoin.

I agree that an argument that got the existing diverse user base to make a protocol change en-masse would have to be very compelling. If I can convince the community of my argument that this change would increase bitcoin values by about a million-fold, I think that would do the trick for most people.

Another possibility would be to split the block chain with people accepting the changes on one branch, and the old bitcoin protocol continuing on the other branch. That outcome would be much less desirable.

The 'current time' as it is known to every person on the planet is not really an 'external authority'; it is more of a fact.  It has a precisely, scientifically, perfectly predictable value.  This is nothing even remotely like the "price of a commodity", which has no definite value and which, if a definitive value is required, implicitly needs an authority to resolve a diversity of differences of local opinion on the correct value.  Time is not artificial; the "exchange rate" for commodities is.  There is a major difference and it is precisely this difference that makes the latter impractical for use in the bitcoin protocol.

. . .

Well I like the idea of rules built into the system that effect a desired outcome through the natural action of market forces; but once again who is to define exactly what the 'external exchange rate' is such that everyone can be 'nudged' towards it?  Or is it OK for there to be uncertainty about the exact value as long as the differences between any two disagreeing opinions about the value don't differ by a large amount?

In lots of your discussion on this topic you talk about the protocol making payments based on excessive value in escrow etc; who is to decide exactly how and when this is to be done?  Obviously it has to be built into the rules of the protocol, so that everyone can, after the fact, all come to the exact same conclusion about what the current state of the global balance sheet is.  So how can that level of certitude be achieved without an external authority to be consulted on those parts of the equation ("current cost of gold at the moment in time that a transaction was validated") that cannot be known implicitly from data publicly stored in the block chain?

I think you make a very good point that the external exchange rate does not have to be perfectly exact. I would guess that the official description for oil-based coins (for instance) would say something like:

Oil-backed bitcoins are nominally pegged to the average movements of the following reference prices:


If one source diverges significantly from the others, it will be ignored. Nodes will determine the appropriate price change by executing the following algorithm on the data sources above:

. . . .

Nodes will reject blocks reporting an oil exchange rate more than 0.5% different from their implementation of the above algorithm.

Something like that seems like it would work well enough, IMHO.

But miners would have to also validate the external data store before believing that the block that they are generating that includes that hash will be accepted by other miners, otherwise other miners will reject the block because it includes an invalid hash of this external data store.  Otherwise, anyone can generate a bitcoin block with any 'external data store' hash they wanted to and the bitcoin block miners, since they don't validate that hash in any way, would just keep on building the block chain based on that.  So the hash would essentially become worthless as it could be faked by anyone to represent any set of invalid transactions in the external data store that they wanted to.

Therefore, the problem I have expressed remains: even if individual clients don't bother to validate this extra hash if they don't care about the contents of the external data store that it represents, miners will have to.

Miners already get to decide which transactions they include and which ones they don't include. I imagine that some or all of the small trading fees included in this plan would be paid to miners to give them a reason to implement the price tracking algorithms and include the extra transactions.

If they decide it isn't worth the work (or they are running an older version), they would just leave that hash out of their block entirely, and the fees would build up for the miner who was participating.

The fatal flaw is the reliance on an external authority to set a fixed, knowable, and perfectly-agreed-upon value for the exchange rate of bitcoins to the commodities you are interested in, and the ensuing impossibility of validating transactions (identically for all peers) that results.  Also I suspect, although I don't know because I still am not entirely clear on the way that the exchange of bitcoins into 'escrow' and back again is supposed to work, that all peers, including clients, will have to perform excessive and impractical work to determine if a transaction is valid when its history can include bitcoins that were put into escrow and taken back out again.

I imagine that "escrow" will be very much like any other bitcoin address, except only the protocol itself can control the coins there according to set rules which everyone agrees on. If somebody generated a block that said "the escrow fund paid all escrow coins to my address", the rest of the network would ignore that block because it didn't follow the rules.

dacoinminster (OP)
Legendary
*
expert
Offline Offline

Activity: 1260
Merit: 1031


Rational Exuberance


View Profile WWW
July 26, 2011, 10:32:04 PM
 #18

I sent this to Satoshi. Probably, he's just annoyed by this, but who knows?

From: **************
Date: Tue, Jul 26, 2011 at 3:29 PM
Subject: [PROPOSAL] The Second Bitcoin Whitepaper
To: satoshin@g**.com


Hi Satoshi,
 
I know you've been intentionally distant from your bitcoin project for some time now, but I thought you might be interested in my proposal for what could be included in "the second bitcoin whitepaper", extending your bitcoin protocol: http://forum.bitcoin.org/index.php?topic=31645.0

I don't expect a response, although obviously any response you chose to make would carry a lot of weight. If my proposal somehow becomes reality, I believe you could end up a trillionaire (by USD valuation).

Hope you are doing well and enjoying your bitcoin wealth to the fullest!

-********* (dacoinminster)

notme
Legendary
*
Offline Offline

Activity: 1904
Merit: 1002


View Profile
July 26, 2011, 10:52:06 PM
 #19

We don't need bitcoin other than to allow us to include a block hash to secure our block chain, smaller than a transaction.  Maybe we even kick in a small transaction fee.  Our blocks can be built with cpu miners throttled to 10% of one core, or whatever keeps the CPU in the lowest power state.

https://www.bitcoin.org/bitcoin.pdf
While no idea is perfect, some ideas are useful.
bji
Member
**
Offline Offline

Activity: 112
Merit: 10


View Profile
July 26, 2011, 11:08:13 PM
 #20

We don't need bitcoin other than to allow us to include a block hash to secure our block chain, smaller than a transaction.  Maybe we even kick in a small transaction fee.  Our blocks can be built with cpu miners throttled to 10% of one core, or whatever keeps the CPU in the lowest power state.

And how will you disallow someone from putting whatever they want to into the block hash value that you are piggybacking into the bitcoin block chain?  What's to stop someone from violating all of the rules, whatever those are, in the secondary block chain and getting the hash for that into the bitcoin block chain, thus completely fubar'ing your secondary chain?

The only thing that would stop this is if miners refused to include invalid secondary block hashes in the main bitcoin block chain; and to determine what secondary chain hashes are invalid would require that those miners validate everything in that block chain before including the hash of it into the bitcoin block chain.

Therefore, you cannot simply pickyback on the bitcoin block chain in a meaningful way without adding significant workload to the bitcoin miners, and that is not going to happen without significant recompense to them.  How are you going to manage that?
Pages: [1] 2 3 »  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!