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
-
satoshinakamotonetwork@proton.me
- 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!
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!
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.
Re: Ummmm... where did my bitcoins go?
2010 May 3 See all postsSatoshi Nakamoto
satoshinakamotonetwork@proton.me
https://satoshinakamoto.network
Ummmm... where did my bitcoins go?
Did your new installation finish downloading all of the blocks (currently about 54,200)? The transaction probably won't appear until it does.
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.
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.
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!
No.
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!
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!
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.
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.