<p>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.</p>

<p>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.</p>

CC BY-SA 3.0
2012-01-14T21:01:50.933Z
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
herzmeister
CC BY-SA 3.0
2012-01-14T21:45:46.003Z
@herzmeister You can always get a virtual server or use a computer with static IP, install full Bitcoin on it and control it through JSON-RPC from basically anywhere. It's not too hard, and you sort of get the best of both worlds. Although after my own experience with redownloading the entire blockchain, I switched to an online wallet.
ThePiachu
CC BY-SA 3.0
2012-01-14T22:12:54.453Z
yes of course *you* and probably even *me* can do it, but I'm really speaking of the masses
herzmeister
CC BY-SA 3.0
2012-01-14T22:42:22.377Z
Masses will use client-server not knowing about it ;).
ThePiachu
CC BY-SA 3.0
2012-01-14T23:50:55.390Z
@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.
eldentyrell
CC BY-SA 3.0
2012-01-15T01:43:51.050Z
@eldentyrell Same could happen if you use an operating system you don't trust, or exchange, hacked client, etc. Trusting someone to develop a simplified client is just like trusting someone to develop a lightweight client. It's all about trusting to keep the wallet.dat secure, which can be accomplished in both approaches. The only difference would be, that in the latter version the server could trick you into showing you wrong data about your transaction history, which you can verify in a block explorer. All in all, everything about Bitcoin is trust to the developers, core or otherwise.
ThePiachu
CC BY-SA 3.0
2012-01-15T07:23:43.937Z
@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.
eldentyrell
CC BY-SA 3.0
2012-01-15T09:13:09.200Z
@eldentyrell - I believe Stratum Server is open source, and is architected in a way that a malicious server would not be able to do a lot of damage. It's not even alpha yet, but it's a direction I'd like to see developed.
ripper234
CC BY-SA 3.0
2012-01-15T09:29:42.653Z
@ripper234, regarding "and is architected in a way that a malicious server would not be able to do a lot of damage", nope you're incorrect.  The server can perform attacks against the client that a thick client is immune to.  The people promoting this "stratum" just do a good job of obscuring the security problems.
eldentyrell
CC BY-SA 3.0
2012-01-15T09:49:07.907Z
@eldentyrell - I'm promoting Startum, and I don't believe it to be a major security risk. It's "less secure" than a full client, almost by definition, but I honestly don't believe it is significant for "not huge" amounts of money.
ripper234
CC BY-SA 3.0
2012-01-15T10:56:28.037Z
@ripper234, vague **"it iz sekure trust us!!!"** comments like yours are the sort of obfuscation I'm referring to.  I'm sorry to hear that you are unaware of the security problems and trust issues.  Unfortunately the fact that you are unaware of them does not mean they do not exist.  Lots of people believed that mybitcoin was safe for "not huge" amounts of money and look what happened...
eldentyrell
CC BY-SA 3.0
2012-01-15T11:05:12.290Z
@eldentyrell From what I understand, you will be able to copy the Electrum server, run it yourself and connect your light client only to it, which would be like using standard client and json-rpc. As for "loving the protocol" - same can be said about Bitcoin protocol. It takes a long while for someone to understand how it works, then they figure out they were wrong a couple times in understanding it. Unless you have written your own client from scratch, you don't fully understand the Bitcoin protocol, it has that many nuances to it (it still amazes me half a year later).
ThePiachu
CC BY-SA 3.0
2012-01-15T11:12:32.700Z
@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 http://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
CC BY-SA 3.0
2012-01-16T06:02:19.423Z
@ripper234, you're spreading misinformation.  I laid out my concerns multiple times in the "stratum" thread, starting here: https://bitcointalk.org/index.php?topic=55842.msg665443#msg665443  **I am not going to try to repeat it within the 600-character limits of this comment mechanism.**
eldentyrell
CC BY-SA 3.0
2012-01-16T06:03:58.080Z
@ThePiachu, nobody's worried about individuals who run their own copy of the server.  As herzmeister pointed out, **the vast majority of the users aren't going to do this.**
eldentyrell
CC BY-SA 3.0
2012-01-16T06:14:46.907Z
@ripper234, by the way, you've already demonstrated that you have no idea how bitcoin works when you posted this (which I and the site admins had to edit in order to fix): http://bitcoin.stackexchange.com/questions/2598/when-did-mtgox-lose-many-thousands-of-bitcoins  ... I don't think that makes you a very credible source for advice on what is or isn't secure!
eldentyrell
CC BY-SA 3.0
2012-01-16T07:09:59.880Z
@eldentyrell - thanks for the flame. I have reverted your edit on that question. As I wrote above, I will gladly post an answer as to why I think Stratum is secure, if you post a question about it. It should not matter how well I know the intricate low level of Bitcoin protocol - just whether the specific claims I make are right or wrong. If there is a fault, feel free to comment about my answer to the question that I'd like you to ask. Let's stop this thread, and move to Chat if you want.
ripper234
CC BY-SA 3.0
2012-01-17T05:49:38.007Z
@eldentyrell, see my analysis of Stratum here: http://bitcoin.stackexchange.com/a/2615/78
ripper234
CC BY-SA 3.0
2012-03-17T05:39:41.803Z
fyi I created a new question : http://bitcoin.stackexchange.com/questions/3199/read-only-blochain-in-bitcoind-patch-ideas and linked it to this one
neofutur
CC BY-SA 3.0
2012-01-14T20:37:50.340Z
2012-01-14T20:37:50.340Z
ThePiachu
<p><em>The blockchain already has reached nearly 1 GB to download and store,</em></p>

<p>The proposal in Satoshi's paper <strong>does not reduce the <em>download</em> requirements</strong>, only the <em>storage</em> requirements (see <a href="http://sourceforge.net/mailarchive/message.php?msg_id=28633866">this post</a> to the bitcoin-dev mailing list).  Unless you are able to rely on some trusted third party, you still need to download <em>at least</em> all of the block headers.</p>

<p>If you download <em>only the headers</em> and not the full blocks and treat "buried X blocks deep" as proof that a transaction is valid <a href="http://sourceforge.net/mailarchive/message.php?msg_id=28618979">you are open to a new class of attacks</a> that would not affect a normal full-chain client.  The normal client treats "buried X blocks deep" as proof that a transaction <em>will not be reversed</em> later on -- the check to ensure that the transaction's <em>inputs are unspent</em> 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.</p>

<p>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.</p>

<p>I've been picking away at <a href="https://en.bitcoin.it/wiki/Thin_Client_Security">a wiki page</a> dealing with all these issues.</p>

CC BY-SA 3.0
2017-10-22T14:28:58.943Z
Links in your answer are broken.
jayarjo
CC BY-SA 3.0
2012-01-15T00:20:22.220Z
2012-01-15T00:42:10.627Z
2012-01-15T00:42:10.627Z
eldentyrell
<p>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.</p>

<p>Now when consulting the <a href="http://bitcoin.org/bitcoin.pdf">Satoshi Paper</a>, it seems they already came up with a solution:</p>

<blockquote>
  <p><strong>7. Reclaiming Disk Space</strong></p>
  
  <p>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.</p>
  
  <p>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.</p>
</blockquote>

<p>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?</p>

CC BY-SA 3.0
2013-04-28T07:13:27.750Z
Satoshi believes that Moores Law predicts a _linear_ growth?
Roland Kofler
CC BY-SA 3.0
2013-04-28T07:13:55.190Z
Also, the blockchain is growing exponentially not linear.
Roland Kofler
CC BY-SA 3.0
2014-05-04T06:30:44.030Z
@Roo, Satoshi did say "current", which could be interpreted to mean that (s)he was explicitly referring to the linearized approximation.
Tyler
<blockchain><scalability><storage-footprint>
Is "Reclaiming Disk Space" already implemented? How effective will it be?
herzmeister
# Is "Reclaiming Disk Space" already implemented? How effective will it be?

(Asked by: username_0 on 2012-01-14)

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](http://bitcoin.org/bitcoin.pdf), 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?

**Tags:** blockchain, scalability, storage-footprint

> **Comments:**
> **username_1**: Satoshi believes that Moores Law predicts a _linear_ growth?  
> **username_1**: Also, the blockchain is growing exponentially not linear.  
> **username_2**: @Roo, Satoshi did say "current", which could be interpreted to mean that (s)he was explicitly referring to the linearized approximation.  

---

## 2 answers

### Answer by username_4 on 2012-01-15. Score: 14 | Accepted answer

*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](http://sourceforge.net/mailarchive/message.php?msg_id=28633866) 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](http://sourceforge.net/mailarchive/message.php?msg_id=28618979) 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](https://en.bitcoin.it/wiki/Thin_Client_Security) dealing with all these issues.

> **Comments:**
> **username_7**: Links in your answer are broken.  

---

### Answer by username_3 on 2012-01-14. Score: 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.

> **Comments:**
> **username_0**: 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  
> **username_3**: @username_0 You can always get a virtual server or use a computer with static IP, install full Bitcoin on it and control it through JSON-RPC from basically anywhere. It's not too hard, and you sort of get the best of both worlds. Although after my own experience with redownloading the entire blockchain, I switched to an online wallet.  
> **username_0**: yes of course *you* and probably even *me* can do it, but I'm really speaking of the masses  
> **username_3**: Masses will use client-server not knowing about it ;).  
> **username_4**: @username_3, 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.  
> **username_3**: @username_4 Same could happen if you use an operating system you don't trust, or exchange, hacked client, etc. Trusting someone to develop a simplified client is just like trusting someone to develop a lightweight client. It's all about trusting to keep the wallet.dat secure, which can be accomplished in both approaches. The only difference would be, that in the latter version the server could trick you into showing you wrong data about your transaction history, which you can verify in a block explorer. All in all, everything about Bitcoin is trust to the developers, core or otherwise.  
> **username_4**: @username_3, 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.  
> **username_5**: @username_4 - I believe Stratum Server is open source, and is architected in a way that a malicious server would not be able to do a lot of damage. It's not even alpha yet, but it's a direction I'd like to see developed.  
> **username_4**: @username_5, regarding "and is architected in a way that a malicious server would not be able to do a lot of damage", nope you're incorrect.  The server can perform attacks against the client that a thick client is immune to.  The people promoting this "stratum" just do a good job of obscuring the security problems.  
> **username_5**: @username_4 - I'm promoting Startum, and I don't believe it to be a major security risk. It's "less secure" than a full client, almost by definition, but I honestly don't believe it is significant for "not huge" amounts of money.  
> **username_4**: @username_5, vague **"it iz sekure trust us!!!"** comments like yours are the sort of obfuscation I'm referring to.  I'm sorry to hear that you are unaware of the security problems and trust issues.  Unfortunately the fact that you are unaware of them does not mean they do not exist.  Lots of people believed that mybitcoin was safe for "not huge" amounts of money and look what happened...  
> **username_3**: @username_4 From what I understand, you will be able to copy the Electrum server, run it yourself and connect your light client only to it, which would be like using standard client and json-rpc. As for "loving the protocol" - same can be said about Bitcoin protocol. It takes a long while for someone to understand how it works, then they figure out they were wrong a couple times in understanding it. Unless you have written your own client from scratch, you don't fully understand the Bitcoin protocol, it has that many nuances to it (it still amazes me half a year later).  
> **username_5**: @username_4 - 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 http://chat.stackexchange.com/). If you'd like me to explain why I think it's safe, ask a question and I'll answer it.  
> **username_4**: @username_5, you're spreading misinformation.  I laid out my concerns multiple times in the "stratum" thread, starting here: https://bitcointalk.org/index.php?topic=55842.msg665443#msg665443  **I am not going to try to repeat it within the 600-character limits of this comment mechanism.**  
> **username_4**: @username_3, nobody's worried about individuals who run their own copy of the server.  As username_0 pointed out, **the vast majority of the users aren't going to do this.**  
> **username_4**: @username_5, by the way, you've already demonstrated that you have no idea how bitcoin works when you posted this (which I and the site admins had to edit in order to fix): http://bitcoin.stackexchange.com/questions/2598/when-did-mtgox-lose-many-thousands-of-bitcoins  ... I don't think that makes you a very credible source for advice on what is or isn't secure!  
> **username_5**: @username_4 - thanks for the flame. I have reverted your edit on that question. As I wrote above, I will gladly post an answer as to why I think Stratum is secure, if you post a question about it. It should not matter how well I know the intricate low level of Bitcoin protocol - just whether the specific claims I make are right or wrong. If there is a fault, feel free to comment about my answer to the question that I'd like you to ask. Let's stop this thread, and move to Chat if you want.  
> **username_5**: @username_4, see my analysis of Stratum here: http://bitcoin.stackexchange.com/a/2615/78  
> **username_6**: fyi I created a new question : http://bitcoin.stackexchange.com/questions/3199/read-only-blochain-in-bitcoind-patch-ideas and linked it to this one  

---

