Bitcoin Forum

Other => Beginners & Help => Topic started by: joticajulian on January 25, 2013, 01:33:59 AM



Title: is it possible to be a client without download all blockchain?
Post by: joticajulian on January 25, 2013, 01:33:59 AM
In this moment I'm using bitcoin-qt.exe, but it is still synchronizing. Is it possible to be a client without download all blockchain?

I think is not convenient that every person has all the transactions of all time, because this data will be very big in the coming years.
Think that in jan-2012 it tooks 500MB, and today (jan-2013) is about 4.5GB... i.e. it grew 4GB last year (http://blockchain.info/charts/blocks-size). Now think how it will be in the next 5 years, knowing that the transactions rate will increase when it be more popular.
I don't know, just vague ideas that come to my mind.


Title: Re: is it possible to be a client without download all blockchain?
Post by: DeathAndTaxes on January 25, 2013, 01:58:20 AM
To be a full node you need the full blockchain.  Every block, every transaction back to the genesis block.  The trust model requires you to be able to treat EVERYTHING you receive from the network as untrusted (and potentially invalid) and independently validate everything yourself.

However you don't have to be a full node.  You can run a "lite node" client or use a web wallet (blockchain.info).


Title: Re: is it possible to be a client without download all blockchain?
Post by: MoonShadow on January 25, 2013, 02:07:22 AM
In this moment I'm using bitcoin-qt.exe, but it is still synchronizing. Is it possible to be a client without download all blockchain?

Yes, but you need a light type client.  Try this one....

https://en.bitcoin.it/wiki/Electrum


Title: Re: is it possible to be a client without download all blockchain?
Post by: btcven on January 25, 2013, 07:39:37 AM
In this moment I'm using bitcoin-qt.exe, but it is still synchronizing. Is it possible to be a client without download all blockchain?

Yes, but you need a light type client.  Try this one....

https://en.bitcoin.it/wiki/Electrum

http://electrum.org


Title: Re: is it possible to be a client without download all blockchain?
Post by: Timo Y on January 25, 2013, 07:42:09 AM
I would also recommend the Electrum client for a newbie.

In theory, Electrum is not as secure as the original client, but unless you are dealing with volumes in the thousands of bitcoins, Electrum is absolutely good enough.

However, I would avoid web wallets for anything more than 10 bitcoins.


Title: Re: is it possible to be a client without download all blockchain?
Post by: caveden on January 25, 2013, 07:54:48 AM
In theory, Electrum is not as secure as the original client, but unless you are dealing with volumes in the thousands of bitcoins, Electrum is absolutely good enough.

I'd say Electrum is as secure as bitcoin-qt in what concerns the risk of being stolen. And Electrum is actually safer in what concerns backups due to its deterministic wallets - you only have to back it up once.

The greatest problem with Electrum, IMHO, is the fact you depend on a server, who could theoretically spy on you (log all your transactions) and could eventually be compromised and then start lying to you (not telling about money you receive, not sending your transactions out, telling you received money you actually didn't etc - the server cannot steal the money you already have, though).

To avoid these server-related issues and still be lightweight, you can use an SPV client like Multibit. They don't have deterministic wallets AFAIK though, so you'd have to back it up frequently, preferably have it as a link to a file in an encrypted cloud storage like Wualla or the new Mega (does Mega create a folder on your system you can point symbolic links to? I've never tested it).


Title: Re: is it possible to be a client without download all blockchain?
Post by: Atruk on January 25, 2013, 08:07:20 AM
To avoid these server-related issues and still be lightweight, you can use an SPV client like Multibit. They don't have deterministic wallets AFAIK though, so you'd have to back it up frequently, preferably have it as a link to a file in an encrypted cloud storage like Wualla or the new Mega (does Mega create a folder on your system you can point symbolic links to? I've never tested it).

They don't have deterministic wallets yet. I just generated a bunch of extra addresses to save for later, then backed it up to an SD card. Deterministic wallets and private key encryption are supposed to be on schedule for this summer though. It share the BitcoinJ framework with the Android app which is something you might want to keep in mind should you want a mobile wallet. The initial sync and every other sync have been all under a minute for me.

I wouldn't go around recommending Mega as a secure storage solution yet because it is so new, and it appears to be an LEX magnet so people are going to try to be snooping on it.. Also it appears to be horrible for backups since they haven't rolled out password recovery yet to my knowledge.



Title: Re: is it possible to be a client without download all blockchain?
Post by: caveden on January 25, 2013, 08:16:41 AM
I wouldn't go around recommending Mega as a secure storage solution yet because it is so new, and it appears to be an LEX magnet so people are going to try to be snooping on it.. Also it appears to be horrible for backups since they haven't rolled out password recovery yet to my knowledge.

Good points.
I've been using Wuala for a while now, it hasn't disappointed me so far. And they accept bitcoins (https://www.wuala.com/en/bitcoin). ;-)


Title: Re: is it possible to be a client without download all blockchain?
Post by: ThomasV on January 25, 2013, 08:32:04 AM
In theory, Electrum is not as secure as the original client, but unless you are dealing with volumes in the thousands of bitcoins, Electrum is absolutely good enough.
The greatest problem with Electrum, IMHO, is the fact you depend on a server, who could theoretically spy on you (log all your transactions) and could eventually be compromised and then start lying to you (not telling about money you receive, not sending your transactions out, telling you received money you actually didn't etc - the server cannot steal the money you already have, though).

This is not true.
An Electrum server can indeed forget tell you about money you received, but it cannot tell you that you received money when you actually didn't.
This is because the Electrum client verifies all the transactions reported by the server, using SPV.



Title: Re: is it possible to be a client without download all blockchain?
Post by: caveden on January 25, 2013, 10:33:18 AM
This is not true.
An Electrum server can indeed forget tell you about money you received, but it cannot tell you that you received money when you actually didn't.
This is because the Electrum client verifies all the transactions reported by the server, using SPV.

Ah ok, I was not aware of that. Thanks for the clarification.

So, wait... that means Electrum clients also download the block headers, like BitcoinJ...

What's the difference between Electrum and a BitcoinJ (SPV) client configured to connect to a single server? I suppose Electrum tells its server the entire lists of address the client possess, so that the server only transmit relevant transactions together with the relevant chunks of the merkle tree, is that it?

Would you consider making it possible for Electrum to behave like an actual SPV client (with p2p bootstrap) once Bloom filters are implemented on bitcoind? Meaning, those who want to keep relying on a single server stay as they are, and those that prefer p2p go SPV...


Title: Re: is it possible to be a client without download all blockchain?
Post by: ThomasV on January 25, 2013, 10:51:27 AM
What's the difference between Electrum and a BitcoinJ (SPV) client configured to connect to a single server? I suppose Electrum tells its server the entire lists of address the client possess, so that the server only transmit relevant transactions together with the relevant chunks of the merkle tree, is that it?

I am not sure what BitcoinJ exactly does.
A full SPV client needs to download the entire blockchain for verification, but it does not store it. (it may start from a recent checkpoint, but after the checkpoint it still needs to download full blocks)
Electrum does not do that. It verifies only the transactions reported by the server. For that verification, it only needs to download the headers.

Quote
Would you consider making it possible for Electrum to behave like an actual SPV client (with p2p bootstrap) once Bloom filters are implemented on bitcoind? Meaning, those who want to keep relying on a single server stay as they are, and those that prefer p2p go SPV...

I don't think there is a real advantage to using bloom filters over Electrum servers.
If you are a bloom filter client, the bitcoind nodes you are talking to can hide some transactions to you, just like Electrum servers.

p2p bootstrap would be interesting though, to download the headers; that's something we will probably do.


Title: Re: is it possible to be a client without download all blockchain?
Post by: caveden on January 25, 2013, 11:02:31 AM
I don't think there is a real advantage to using bloom filters over Electrum servers.
If you are a bloom filter client, the bitcoind nodes you are talking to can hide some transactions to you, just like Electrum servers.

p2p bootstrap would be interesting though, to download the headers; that's something we will probably do.


The advantage is the p2p context. You don't depend on a server that could be compromised, it's harder to spy on you etc.