Bitcoin is looking increasingly less practical. The size of the block chain is becoming massive. Recently I tried downloading the official client, and after 2.8GB of downloading with the progress bar only about half way through I gave up. If Bitcoin becomes more popular in future the block chain really isn't going to scale well, and that's going to result in a more centralized system in which there are fewer block chain "banks".
This is a fixable problem. BIP 0037[0] for example tries to mitigate the size issue
with bloom filters, so you no longer need to download the complete block chain
to be able to verify transactions.
Efficiency in syncing the blockchain appears to be the number one priority of the bitcoin client developers right now. The next release, 0.8.0, will have major improvements in this area.
from https://bitcoinfoundation.org/blog/?p=16
"new features are being added to the protocol to support alternative implementations– next major release of bitcoind/Bitcoin-Qt (version 0.8) should support for “bloom filters” to get just the transactions relevant to your wallet"
"...optimize transaction storage so validating transactions requires much less disk access and memory..."
Several gigs may be prohibitive for an end user, but not for anyone who wants to set up a server. How many people run their own email servers any more? Spam control and all the security and other BS is a giant PITA. That doesn't mean, however, that there isn't still Hotmail, Gmail and Yahoo. Email is not centralized.
Though, I see that this is a bit different. If I had 1000 bitcoins I wouldn't want to put it on any server but my own. But, then again, I'd be pretty rich and downloading a few gigs of data wouldn't be the end of the world. ;)
exactly, if you are dealing with under 100 BTC then a webwallet will work sufficiently well for keeping your money in, however those with larger balances are more likely to not mind needing to download the entrie blockchain.
I will say that I recently wiped by HDD and re-installed everything incuding the bitcoin-qt client and it probably took me around 24 hours to download the entire blockchain, probably just shy of 210000 blocks. The first 50-70% of data took very little time at all, the last 50-30% took the lions share of the 24 hours.
Hard drive and network cost per gigabyte is always falling, and much faster than the blockchain is increasing, so it's not expected this will be a huge problem. But what you say is true that it will "centralise" more in a sense - but the barriers to entry will still be much smaller than any other financial institution so there will likely be many groups still involved with processing the block chain.
If it's just the download time that's bothering you, try the electrum client: http://electrum.ecdsa.org/
It uses a remote blockchain so that you don't have to sync with the network. But you control the wallet (the private keys that let you spend the coins) so it doesn't suffer from the problems of the online hosted wallets where you are not in control of your coins.
However, using Electrum entails putting significant trust in the third party that hosts the blockchain for you (and it's not clearly identified on the Electrum website who that is). See past discussion: https://news.ycombinator.com/item?id=4836269
If I were going to trust a third party to begin with, I'd just go with a hosted wallet like Coinbase. They seem more reputable to me than whoever's behind the Electrum project.
“All thin clients listed below currently connect to a single server, and are vulnerable to an attack similar to a double-spend. The attack can be run by that single server - the server can just lie to them that they received a Bitcoin transaction, and they, assuming the server does not lie, perform some service, transfer funds or send goods without actually receiving any Bitcoin in exchange.”
Scenario: Bob hacks the server (or colludes with the people operating it). He buys 100 BTC of goods from you, you see the funds in your Electrum client and ship the goods. Surprise! the transaction was fake. You're out 100 BTC.
I'd have more faith in this system if the Electrum website disclosed, very clearly, that this kind of attack is possible and also spelled out exactly who is running the server and why I should trust them. Instead, they appear to be trying to sweep the whole issue under the rug. I therefore see little reason to trust Electrum.
This is a pretty unlikely scenario for a typical use case. The attacker would have to own the electrum server that the victim is connecting to, and orchestrate a fake transaction. Even then, if the person double checks the transaction via a third party like blockchain.info, they would see it's fake.
I think you are over-exaggerating the impact of this vulnerability given the safeguards available to mitigate the attack, such as running your own electrum server or cross checking transactions with a third party.
I guess it depends on the technical savvy of the user and whether “running your own electrum server or cross checking transactions with a third party” is really going to happen.
The project website doesn't advise taking these measures, nor disclose the possibility of this scenario. That's what bugs me the most here.
If their intended user is a knowledgeable Bitcoin hobbyist, who knows how the currency works inside and out, maybe it isn't a big deal, but just speaking personally as a Bitcoin newbie, the lack of disclosure/accountability suggested I stay away.
That's sounds like a very prudent decision to me. I fully agree that this issue should be clarified on the site. I will add it to my community service todo list to email the developer to try and help resolve the issue.
The project is still in its early stages of development, but is already very useful to bitcoin-tech savvy users. The ability to install it on my Android phone and other devices while running my own transaction server is a big plus for me currently.
You don't need to store the entire block chain in every client, even in a model where you don't want to trust a third party server. Most of the block chain is "dead," in that the coins in those transactions have changed hands since then. You can drop those transactions as they can't affect anything. Further, since the block chain contains a Merkle tree, each client only needs to have log(n) blocks on hand to validate the entire tree (i.e., provided by someone else or federated across the network).
There's a lot of compression possible that the client hasn't bothered with yet. The community expects this to eventually be a solved problem.
There's already a couple of ways around this. One is the 'online wallet' set up, where someone already has the complete block chain online, the other is the bootstrap approach, whereby although you still download the entire chain, you can do it a lot more quickly via Bittorrent or the like.
But generally, I imagine most people would go with the online wallet approach if they're not comfortable with the drive space requirements.
I also believe that it is possible (theoretically, at least) to essentially just start somewhere further in the chain, in a way. Having said that, that would probably remove you from the option to mine at the same time. Maybe?
I think that the sustainability issue can be managed with bloom filters etc, but you are correct. Under the current model where the entire block chain must be in the possession of every client, Bitcoin is not remotely close to sustainable. Imagine if, in order to process credit cards, you had to download transaction data for every credit card transaction in the history of credit cards.
What surprises me is that the original creators, who were obviously very intelligent, didn't anticipate this becoming a problem and create the system from the ground up to address it.
So, what I don't get is why can't I, as a user, just pick how far back I want to go? Why can't some trusted party, like bitcoin.org post a their best guess for the block chain state 10 days ago. Isn't that sufficient to determine with a high level of certainty that I am on the correct branch and that there has been no funny business in the history?
Yes, it is, but the whole point of Bitcoin is to not rely on any central entity. Unfortunately, that doesn't appear to be entirely possible if we are to make Bitcoin mainstream.
I guess I long ago decided that Bitcoin was interesting enough with just the possibility of not having to rely on a central authority/entity.
More to the point, however, is that this isn't really an issue of an authority, but rather an issue of trust. If I for whatever reason decided not to trust Bitcoin.org, someone else could take their place. For instance, I could get my recent state of the block-chain from a pal that I trust to do the actual task of verifying the full chain. I could even pay that person some fee periodically for providing that service. You could probably come up with a distributed, fraud resistant, method of providing recent block chain states where many sources would have to be simultaneously compromised for any attack.