Post
Topic
Board Development & Technical Discussion
Re: The Second Bitcoin Whitepaper
by
bji
on 26/07/2011, 20:30:36 UTC

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.