17

Some people are concerned about the scalability of Bitcoin. The blockchain already has reached nearly 1 GB to download and store, which is not exactly in the spirit of a modern thin client, especially in regards to mobile devices.

Now when consulting the Satoshi Paper, it seems they already came up with a solution:

7. Reclaiming Disk Space

Once the latest transaction in a coin is buried under enough blocks, the spent transactions before it can be discarded to save disk space. To facilitate this without breaking the block's hash, transactions are hashed in a Merkle Tree [...], with only the root included in the block's hash. Old blocks can then be compacted by stubbing off branches of the tree. The interior hashes do not need to be stored.

A block header with no transactions would be about 80 bytes. If we suppose blocks are generated every 10 minutes, 80 bytes * 6 * 24 * 365 = 4.2MB per year. With computer systems typically selling with 2GB of RAM as of 2008, and Moore's Law predicting current growth of 1.2GB per year, storage should not be a problem even if the block headers must be kept in memory.

Is this already implemented for the current version? "4.2 MB per year" suggests that no. Is it already on the roadmap? Have the developers met any unforeseen obstacles? Will the solution be as effective as promised?

3
  • 4
    Satoshi believes that Moores Law predicts a linear growth? Commented Apr 28, 2013 at 7:13
  • Also, the blockchain is growing exponentially not linear. Commented Apr 28, 2013 at 7:13
  • @Roo, Satoshi did say "current", which could be interpreted to mean that (s)he was explicitly referring to the linearized approximation.
    – Tyler
    Commented May 4, 2014 at 6:30

2 Answers 2

14

The blockchain already has reached nearly 1 GB to download and store,

The proposal in Satoshi's paper does not reduce the download requirements, only the storage requirements (see this post to the bitcoin-dev mailing list). Unless you are able to rely on some trusted third party, you still need to download at least all of the block headers.

If you download only the headers and not the full blocks and treat "buried X blocks deep" as proof that a transaction is valid you are open to a new class of attacks that would not affect a normal full-chain client. The normal client treats "buried X blocks deep" as proof that a transaction will not be reversed later on -- the check to ensure that the transaction's inputs are unspent is completely separate from this. A thin client cannot check that a transaction's inputs are unspent because it has only the block headers -- it does not have a copy of the transactions themselves.

The most worrisome of these new attacks have to come from your ISP, but in this day of wi-fi cafes that isn't such a far-fetched scenario. So, use at your own risk.

I've been picking away at a wiki page dealing with all these issues.

1
  • 1
    Links in your answer are broken.
    – jayarjo
    Commented Oct 22, 2017 at 14:28
4

Currently there are no official lighweight clients like that available, nor are they in the making as far as I know. There are, however, a couple unofficial clients, like StrongCoin or Electrum, that hold even less data. Those are, however, working in a server-client mode, not peer-to-peer as the client described by Satoshi.

It is quite possible that such a client will never be created, as storing just the block headers is a bit pointless in itself. You have to rely on the network providing you a valid block chain anyway, you don't get much out of storing the headers, and if lightweight Bitcoin clients relying on servers would become widely available and accepted, you could do with even less data.

19
  • 2
    thanks, I know there can be architectures that rely on distributed servers, but the more Bitcoin can be decentralized to self-sufficient clients, the better Commented Jan 14, 2012 at 21:01
  • 2
    yes of course you and probably even me can do it, but I'm really speaking of the masses Commented Jan 14, 2012 at 22:12
  • 2
    @ThePiachu, you mean "Masses will get their coins stolen because they trusted a server they shouldn't have". All of the existing "light client" proposals have hidden and dangerous trust relationships that are completely undocumented. Please do not confuse these security-disasters-waiting-to-happen with the Simplified Payment Verification section in Satoshi's paper. Commented Jan 14, 2012 at 23:50
  • 3
    @ThePiachu, you write "trusting someone to develop a simplified client" indicating that you have clearly confused developing the client software with operating the server component. Software can be digitally signed for integrity and inspected by multiple parties, as the bitcoin client currently is. Servers upon which you rely to handle queries ("the cloud") cannot be easily audited like this. Commented Jan 15, 2012 at 7:23
  • 3
    @eldentyrell - you're spreading FUD. If you have some specific claim why it is not secure, do share (not here - either in the forum, or perhaps in chat.stackexchange.com). If you'd like me to explain why I think it's safe, ask a question and I'll answer it.
    – ripper234
    Commented Jan 15, 2012 at 11:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.