Take the 2-minute tour ×
Bitcoin Stack Exchange is a question and answer site for Bitcoin crypto-currency enthusiasts. It's 100% free, no registration required.

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?

share|improve this question
    
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 Jan 24 '12 at 7:41
    
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? –  user2242 Nov 16 '12 at 23:41
add comment

7 Answers

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.

share|improve this answer
2  
I 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 Jan 25 '12 at 16:21
    
I think the analogy with banks makes it clear. We all trust our money to banks, credit card companies, and so on. –  David Schwartz Jan 26 '12 at 7:25
    
I wonder, does this mean there will be a Bitcoin bank in the future (trusted to hold and manage transaction history?) –  makerofthings7 Sep 16 '12 at 19:08
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
    
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 Nov 17 '12 at 5:59
    
SPV 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 Nov 19 '12 at 3:05
add comment

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.

share|improve this answer
add comment

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.

share|improve this answer
    
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 anyone –  djechelon Feb 9 '12 at 10:20
add comment

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.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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