<p>For the MultiBit client:
(disclaimer: I am the lead dev)</p>

<p>1) as you are not running a full node, you are not helping relay transactions nor mining nor verifying blocks.</p>

<p>2) if an attacker can surround your network they can feed you spurious transactions and a fake but well formed alternate fork. (I guess this is true for bitcoind too).</p>

<p>3) MultiBit does not keep a database of unspent transaction outputs so importing an arbitrary key is slow. </p>

<p>4) you ARE downloading the full blocks and parsing them (though not storing the full blocks) so you can keep up to date with blockchain reorgs and such like. </p>

<p>5) an unconfirmed transaction cannot be verified by checking all the inputs are unspent and thus you cannot rely on it until it is confirmed. A full node can check everything about the transaction. Only when it appears in a block (on the main chain) can you have any confidence in it. </p>

<p>6) not actually related to architecture but important for security: only the beta MultiBit code has encrypted wallets.</p>

<p>7) compared to bitcoind, the lightweight clients have less manpower working on them. If you want to use bitcoin in, say, a company environment then bitcoind would be the safer option. </p>

<p>In summary: there are a few limitations caused by not having access to the full block chain locally but for everyday use they should not hinder you too much. Factors more to do with what the devs have managed to implement (or not) probably make a bigger difference.</p>

CC BY-SA 3.0
2012-11-28T21:41:52.210Z
Sorry, but I can’t accept this as the answer, since it’s solely about Multibit.
By the way, you should really work on your gui, it’s a pain in the ass.
Profpatsch
CC BY-SA 3.0
2012-11-28T22:04:59.570Z
There is quite a variation on lightweight clients so it is difficult to be general. Can you be a bit more specific about what usability problems you are having ?
jim618
CC BY-SA 3.0
2012-11-28T22:38:17.017Z
For the question(s): A list of the features that separate lightweight clients from a full clients in general (and maybe different approaches that lightweight clients take, best with examples) and how that affects security in general.
Short: An answer to this question every newbie who is not a nerd but afraid of losing his money can understand that is still precise. ;)
Profpatsch
CC BY-SA 3.0
2012-11-28T22:40:59.467Z
About your client: The font support sucks in a Linux environment and changing it doesn’t affect everything. I went with Electrum in the end, since you can feel the elegance in every part of that program and it has a potent command line, should one need it. Plus, restorable wallets from seeds and working encryption.
Profpatsch
CC BY-SA 3.0
2012-11-25T20:34:27.030Z
2012-11-25T20:40:25.697Z
2012-11-25T20:40:25.697Z
jim618
<p>The average user normally doesn’t want to host a 3+GB file on his machine and wait for hours for it to download.</p>

<p>What are the security risks of running a lightweight client? And how does this affect my daily transactions?<br>
What features does a “full” client offer a “lightweight” does not?</p>

<blockchain><client><security>
Should an end-user download the whole blockchain? Or is a “lightweight” client sufficient?
Profpatsch
# Should an end-user download the whole blockchain? Or is a “lightweight” client sufficient?

(Asked by: username_0 on 2012-11-24)

The average user normally doesn’t want to host a 3+GB file on his machine and wait for hours for it to download.

What are the security risks of running a lightweight client? And how does this affect my daily transactions?  
What features does a “full” client offer a “lightweight” does not?

**Tags:** blockchain, client, security


---

## 1 answers

### Answer by username_1 on 2012-11-25. Score: 7

For the MultiBit client:
(disclaimer: I am the lead dev)

1) as you are not running a full node, you are not helping relay transactions nor mining nor verifying blocks.

2) if an attacker can surround your network they can feed you spurious transactions and a fake but well formed alternate fork. (I guess this is true for bitcoind too).

3) MultiBit does not keep a database of unspent transaction outputs so importing an arbitrary key is slow.

4) you ARE downloading the full blocks and parsing them (though not storing the full blocks) so you can keep up to date with blockchain reorgs and such like.

5) an unconfirmed transaction cannot be verified by checking all the inputs are unspent and thus you cannot rely on it until it is confirmed. A full node can check everything about the transaction. Only when it appears in a block (on the main chain) can you have any confidence in it.

6) not actually related to architecture but important for security: only the beta MultiBit code has encrypted wallets.

7) compared to bitcoind, the lightweight clients have less manpower working on them. If you want to use bitcoin in, say, a company environment then bitcoind would be the safer option.

In summary: there are a few limitations caused by not having access to the full block chain locally but for everyday use they should not hinder you too much. Factors more to do with what the devs have managed to implement (or not) probably make a bigger difference.

> **Comments:**
> **username_0**: Sorry, but I can’t accept this as the answer, since it’s solely about Multibit. By the way, you should really work on your gui, it’s a pain in the ass.  
> **username_1**: There is quite a variation on lightweight clients so it is difficult to be general. Can you be a bit more specific about what usability problems you are having ?  
> **username_0**: For the question(s): A list of the features that separate lightweight clients from a full clients in general (and maybe different approaches that lightweight clients take, best with examples) and how that affects security in general. Short: An answer to this question every newbie who is not a nerd but afraid of losing his money can understand that is still precise. ;)  
> **username_0**: About your client: The font support sucks in a Linux environment and changing it doesn’t affect everything. I went with Electrum in the end, since you can feel the elegance in every part of that program and it has a potent command line, should one need it. Plus, restorable wallets from seeds and working encryption.  

---

