Re: Ummmm... where did my bitcoins go?

2010 May 3 See all posts
Re: Ummmm... where did my bitcoins go? @ Satoshi Nakamoto
Author

Satoshi Nakamoto

Email

Site

https://satoshinakamoto.network

Anonymous
Ummmm... where did my bitcoins go?
May 03, 2010, 12:33:35 AM

Ummmm... where did my bitcoins go?


theymos
May 03, 2010, 01:18:23 AM

Did your new installation finish downloading all of the blocks (currently about 54,200)? The transaction probably won't appear until it does.


NewLibertyStandard
May 03, 2010, 10:17:55 AM

The blocks are currently about 34 MB. I'm sure future versions will improve the download process. Including them with the installation would not be correct way of speeding up the initial download. But a trusted source could certainly host the majority of the blocks as a separate download. That would definitely speed up the process, although I think that Bitcoin double checks each block that it downloads and it probably wouldn't double check each block if you just added the file to the bitcoin user folder.


NewLibertyStandard
May 03, 2010, 03:27:01 PM

Quote from: davidonpda on May 03, 2010, 02:40:35 PM

34 MB... on a fast DSL plan, that should take a couple of minutes. Not 3 hours....

Downloading the blocks as a single file would only take a few minutes but Bitcoin doesn't download the blocks as a single file. Try comparing the time it takes to copy a 50 GB file from one hard drive to another versus copying 50 GB of 1 KB files from one hard drive to another. The 50 GB of 1 KB files will take an eternity to copy. Try to do the same test over the Internet and the 50 GB of 1 KB files will take infinite eternities to finish. I believe Bitcoin already has a few small optimizations for how it downloads blocks but there is still a lot of room for improvement. On the bright side, Bitcoin only has to download old blocks once, after which it stays continuously up to date.


theymos
May 03, 2010, 06:19:19 PM

The BitCoin paper mentions "simplified payment verification" that could be used to accept payments without downloading all of the blocks. I don't know if this is implemented yet. It might only be enabled for clients that have "generate BitCoins" turned off.


NewLibertyStandard
May 04, 2010, 01:51:12 AM

Quote from: theymos on May 03, 2010, 06:19:19 PM

The BitCoin paper mentions "simplified payment verification" that could be used to accept payments without downloading all of the blocks. I don't know if this is implemented yet. It might only be enabled for clients that have "generate BitCoins" turned off.

Is that referring to sending bitcoins by IP address rather than by bitcoin address?
—–
Full Member! Woot Woot! Cheesy


theymos
May 04, 2010, 02:16:16 AM

No.

Quote from: BitCoin paper

It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it.

So you would only download the most recent 200 or so blocks and then new blocks as they come in, relying on the network to verify the blocks for you. It would be a really lightweight way to use BitCoin. It would even be useful for "full network nodes" as they are downloading the whole block chain.

Congrats on 100 posts!  Smiley


The Madhatter
May 06, 2010, 10:09:45 AM

We should bundle a snapshot of the block chain with each release of the Bitcoin software to save the user from having to download the entire chain upon a new install.

In terms of trust: The user is already trusting bitcoin.org's download to be valid. Combining the zip/exe installer with a snapshot of the block chain is not a big deal in my opinion. They can publish hashes and signatures to ensure file integrity, etc.

Even in a worst case scenario where the block chain snapshot was compromised nothing bad will happen. The longest block chain always wins. The client would download a new copy from the P2P network. (Besides, if the block chain was compromised we have bigger problems such as the software itself being trojaned, but this is another topic).

It's ++good!

Quote from: davidonpda on May 03, 2010, 02:40:35 PM

34 MB... on a fast DSL plan, that should take a couple of minutes. Not 3 hours....


laszlo
May 06, 2010, 02:11:41 PM

Really from a purist stance, people should audit the code and build it themselves.

However this would exclude most people except dorks like us.. so you just have to trust that you got it from a reputable source. I distribute a Mac OS X binary version but if you don't trust me you shouldn't be using it. Similarly, I can make a password manager tool or a PayPal assistant tool and I can make it send your passwords and money to me. You have to trust someone I guess unless you are willing to audit the code yourself. The network itself has some protections from non-cooperative nodes but the users are obviously targets for scamming. Kind of reminds me of the card skimmers people install on ATMs too.. they think they're using a trustworthy machine but it's been modified to capture their information.


Satoshi Nakamoto
May 18, 2010, 08:06:46 PM

It's not the download so much as verifying all the signatures in all the blocks as it downloads that takes a long time.

How long is the initial block download typically taking?  Does it slow down half way through or is about the same speed the whole way?

I've thought about ways to do a more cursory check of most of the chain up to the last few thousand blocks.  It is possible, but it's a lot of work, and there are a lot of other higher priority things to work on.

Simplified Payment Verification is for lightweight client-only users who only do transactions and don't generate and don't participate in the node network.  They wouldn't need to download blocks, just the hash chain, which is currently about 2MB and very quick to verify (less than a second to verify the whole chain).  If the network becomes very large, like over 100,000 nodes, this is what we'll use to allow common users to do transactions without being full blown nodes.  At that stage, most users should start running client-only software and only the specialist server farms keep running full network nodes, kind of like how the usenet network has consolidated.

SPV is not implemented yet, and won't be implemented until far in the future, but all the current implementation is designed around supporting it.

In the meantime, sites like vekja.net and www.mybitcoin.com have been experimenting with account-based sites.  You create an account on a website and hold your bitcoins on account there and transfer in and out.  Creating an account on a website is a lot easier than installing and learning to use software, and a more familiar way of doing it for most people.  The only disadvantage is that you have to trust the site, but that's fine for pocket change amounts for micropayments and misc expenses.  It's an easy way to get started and if you get larger amounts then you can upgrade to the actual bitcoin software.