Bitcoin Forum
November 10, 2024, 02:28:31 PM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Who needs the block chain?  (Read 901 times)
int_main (OP)
Newbie
*
Offline Offline

Activity: 10
Merit: 0


View Profile
June 18, 2011, 12:34:44 PM
 #1

After doing some research about how Bitcoin works, I found something which I just can't understand. Every transaction since the beginning of Bitcoin is stored in the block chain. Today everyone downloads it since its size is not a big issue. But soon when more and more people start using Bitcoin and thus more and more transactions happen, the size will grow and downloading it on every new client can become a tedious task.

I can't understand why someone would even want to have the block chain on his hard drive. Basically there are 2 things you can do in the system I know of:
- You can mine for the new block, but you just need the newest block in order to start your mining.
- You can start a transaction. Again you don't need to have the block chain. You just need your wallet.dat and the recipient's address. If you want to check your balance, you can just use a service like blockexplorer.com.

So why would anyone ever have the need to possess the whole block chain. Can anyone enlighten me?
luxgladius
Newbie
*
Offline Offline

Activity: 28
Merit: 0


View Profile
June 18, 2011, 12:58:27 PM
 #2

In a sense, you are correct. An individual client who does not mine can function without the whole block chain. However, you need the block chain in order to verify transactions because of double spending.

Let's say Albert runs a lightweight Bitcoin client on his mobile device. Because space is limited, he does not run a full node and does not have the full block chain. In order to protect against attacks, he must still verify a portion of the block chain from some trusted block to the current block whenever he starts up his node, but after that the transactions part of each block can be discarded and just the headers kept.

Let's say Mike obtained some bitcoins in Transaction A1 of Block A. He already spent them in Transaction B1 of Block B, but he knows that Albert is using a limited client, so he decides to attempt a double spend attack. He performs a transaction C1, showing his transaction A1 as his source of funds. Albert can request that particular block A from the network and then verify that the transaction took place. However, because he does not have the full block chain, he cannot know about Transaction B1. His only recourse therefore is to wait until miners, which must verify that a transaction has not already been spent before they incorporate it in a block, create a block that accepts his transaction into the network. If he's smart, he will wait until two or three blocks have been verified before acting on the transaction, to be sure that whatever first block has his transaction is not going to be orphaned later on.
int_main (OP)
Newbie
*
Offline Offline

Activity: 10
Merit: 0


View Profile
June 18, 2011, 01:10:42 PM
 #3

Thanks for the quick and detailed explanation! That cleared things up for me.
titeuf_87
Member
**
Offline Offline

Activity: 111
Merit: 10


View Profile
June 18, 2011, 07:29:38 PM
 #4

Satoshi's paper has a section on simplified payment verification: once that is implemented clients won't have to download full blocks anymore, but just the headers, which are much smaller in size.

Also, the wiki has some points about how bitcoin will be able to scale in the future with more users which may be an interesting read for you.

15kfBM3TQ4PGzL7cKncU3su2pH7ZJmiLtr
BradZimdack
Member
**
Offline Offline

Activity: 87
Merit: 12


View Profile
June 18, 2011, 07:46:07 PM
 #5

Downloading the entire block chain when I first installed the client was a big hassle for me too.  It took several hours to get the whole thing.  I'd hate to imagine how long it might take for a new user to get started a year or two from now.  Hopefully we'll see some solutions to this in the near future.

Realistically though, I doubt the Average Joe will even be able to install the client.  He's going to need some kind of super easy to use web interface that would double as a bank to keep his wallet safe.  I guess it would be something sort of like mybitcoin.com, but with a much easier, simpler interface.
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!