Why does my wallet need to download the whole transaction history?

22

5

I started a wallet, and it is downloading and synchronizing lots of transactions. This takes time and network bandwidth.

Why is this necessary? Is this some form of accountability?

With Paypal, for example, this isn't done. And as you grow, I guess this becomes a huge -- will the amount of transaction data become too large? It is a bit scary to have my computer run off and synchronize, without it informing me what kind of information it is getting and whey this is necessary.

Can't the whole transaction history be shown or available on a website, rather than loaded on my computer?

marco

Posted 2012-01-23T08:40:59.690

Reputation: 221

It should be noted that the whole transaction history is shown and available on a website (eg blockexplorer.com and blockchain.info). But it doesn't exist only there, and it's generally a bad idea to rely on such a site exclusively to verify transactions that concern you.Meni Rosenfeld 2012-01-24T07:41:21.443

Is it possible to analyze the bitcoin block repository you download? Say for instance you wanted to take a look at whatever IP addresses are available and correlate them by location? – None – 2012-11-16T23:41:35.970

Answers

14

The short answer to your question is "no". The reason is actually pretty simple: Without the entire block chain, there is no way to know that funds that are claimed to have been sent to you weren't actually sent to someone else. There is no way to prove the absence of a conflicting transaction, other than to check every valid transaction.

With a bank, the bank clears your checks for you. Here, you clear your own checks. Without knowing every check an account has received or sent out, how can you know the account has sufficient balance to cover your check?

Of course, you don't have to run the Bitcoin client. Your alternative is trust someone else with your coins.

David Schwartz

Posted 2012-01-23T08:40:59.690

Reputation: 46 931

4I suggest some links that clarify the phrase "Your alternative is trust someone else with your coins." When you just write it like that, it seems very stupid to do so.ripper234 2012-01-25T16:21:05.027

I think the analogy with banks makes it clear. We all trust our money to banks, credit card companies, and so on.David Schwartz 2012-01-26T07:25:39.267

I wonder, does this mean there will be a Bitcoin bank in the future (trusted to hold and manage transaction history?)goodguys_activate 2012-09-16T19:08:20.413

8

Bitcoin is a new approach to security of money, offering nigh-full transparency. You can "audit" any account and see what transactions were performed without a problem. With traditional models, like Paypal or the banks, you can't do that. As Bitcoin is P2P, it needs to have all the data to be able to validate all of it. This way no single entity can take the whole network down, or freeze anyone's account.

There are works done, however, on a set of servers forming Stratum overlay network protocol that will be handling almost all of data handling for very thin clients. In this model one would not need to download or validate the entire blockchain, but some people see this as giving up their security (this issue is addressed and debunked here).

A third option is thin clients that validate all the data, but prune older blocks that they don't need themselves. This approach would save hard drive space, but not the initial validation time.

In short, if all Bitcoin data was stored on a single website, the system would be vulnerable to being taken down and trust would be centralized. With the standard client, one need not trust any single individual, so security is greater. There are are other solutions being developed that will be something in-between the two.

ThePiachu

Posted 2012-01-23T08:40:59.690

Reputation: 41 594

2

With paypal you trust paypal; here you check all history and ensure it is correct.

Still, you usually don't care about that, and that's why there are "thin clients" which only download the necessary data and check only the blocks regarding your transactions.

o0'.

Posted 2012-01-23T08:40:59.690

Reputation: 5 180

2

The bitcoin client devs has said they will be working on this very problem in the future versions of the client, possibly only downloading a subset of the blockchain. Because as years go by, the blockchain will grow very large, given the current amount of transactions plus some growth, in 10 years it will approach 50GB, this is simply unsustainable.

KoKo

Posted 2012-01-23T08:40:59.690

Reputation: 479

1

You need to download the whole blockchain because any client which does not do so necessarily sacrifices some amount of security -- though some much more than others.

lamont cranston

Posted 2012-01-23T08:40:59.690

Reputation: 451

Not true. SPV (Simplified Payment Verification) clients are no less secure than the Bitcoin.org client running as a full node. The difference is that SPV doens't give all the functionality that the Bitcoin.org provides. But for consumer use, only a subset is needed.Stephen Gornick 2012-11-17T05:59:05.573

1SPV does sacrifice some security. An SPV client can be tricked into thinking a block that contains transactions that pay from already-spent outputs of prior transactions is a valid block when it is defined as invalid by the bitcoin specification. The bitcoin.org client running as a full node can reject those blocks as invalid. (Whether that security is important is another question.)David Schwartz 2012-11-19T03:05:17.903

1

The basic concept behind Bitcoin currency is distributed consensus. Being a P2P protocol, each and every node is required to obtain a full and global knowledge of every account's (wallet) status.

The differences with PayPal are easy to explain: in a client-server model, like your contractual relationship with your regular bank, the bank holds the huge database of all accounts of their customers, plus the transaction history with other banks. You, as a client, act as a thin client with knowledge limited to only your account. When you arequest a cashier an extract of your accoun't activities, or log in to your internet banking, a view on a database is triggered to obtain only your data.

In Bitcoin, that's completely different: there is no central data warehouse and the security principle is that nobody fully trusts nobody unless a message is signed with corresponding private key. So, what else better storage rather than all network nodes?

In both cases, the database still exists, but is located differently. Central VS distributed.

Let me finish with a short answer, that may be the repetition of previous answers: In Bitcoin, when you receive a payment, you have to validate that the sender account has enough money for the transaction to be valid (anyone could send an uncovered check else). The only 100% sure way is to check the transaction history for the sender to see if he really received the money he's sending to you from someone or from mining.

usr-local-ΕΨΗΕΛΩΝ

Posted 2012-01-23T08:40:59.690

Reputation: 203

Let me add a comment: someway, all banks hold in their DB a "blockchain" of their transactions. But it must be never be synchronized :) as it is only one in the world (for each bank), started when the bank started its activity and not shared with anyoneusr-local-ΕΨΗΕΛΩΝ 2012-02-09T10:20:23.877

1

There are clients that do not require the full blockchain.

SPV (Simplified Payment Verification) clients like MultiBit and Bitcoin Wallet for Android are two examples.

There are client/server clients such as Electrum which are ready to use upon installation.

There are hosted (shared) EWallet services such as Coinbase (Web-based) and Paytunia (Web-based or mobile client) which have no blockchain requirement.

There are hybrid EWallet services such as Blockchain.info/wallet which provide the conveniences of an EWallet with the security where your keys are kept locally and only an encrypted copy is kept on the host.

Stephen Gornick

Posted 2012-01-23T08:40:59.690

Reputation: 26 118