"Trying to follow your perspective. You likely assume that every node has a dossier tracking every single coin. That dossier is summarized as a hash table. Right?"
Now I've had chance to think about it, it's probably a tree rather than a hash table, but the general idea is the same. There's no way you'd do a brute force O(N) search if N is very large.
"Does it mean a transaction needs 1 hour to settle or I'm confusing something for something?"
Yes, but it depends on how important the transaction is to you. If you receive the equivalent of $10, you may consider 1 confirmation enough, but if the amount was $10,000, then you'd probably want to wait for 6 confirmations just to make sure.
The Bitcoin client tends to err on the side of caution, and considers transaction unconfirmed until they have 6 confirmations.
"Well... suppose I'm an attacker who briefly mobilized some significant CPU resources (a GPU cluster, a million zombie PCs)"
You'd need a lot of resources. The Bitcoin network currently runs at 17190 Tflops, which is about equivalent to 2.5 million desktop CPUs. If bitcoin ever becomes a major currency, this value will be much higher, and out of the range of most botnets.
"I make nodes face two chains of equal length. Once new block arrives and nodes rush to the "winner" branch, I help the other branch win, so they rush back."
What would be the point in doing that?
"BitCoin weakens it to a majority vote in terms of CPU cycles uselessly burnt."
What's the alternative? A centralized server is likely to be far more vulnerable to attacks (just ask Sony!).
Now I've had chance to think about it, it's probably a tree rather than a hash table, but the general idea is the same. There's no way you'd do a brute force O(N) search if N is very large.
"Does it mean a transaction needs 1 hour to settle or I'm confusing something for something?"
Yes, but it depends on how important the transaction is to you. If you receive the equivalent of $10, you may consider 1 confirmation enough, but if the amount was $10,000, then you'd probably want to wait for 6 confirmations just to make sure.
The Bitcoin client tends to err on the side of caution, and considers transaction unconfirmed until they have 6 confirmations.
"Well... suppose I'm an attacker who briefly mobilized some significant CPU resources (a GPU cluster, a million zombie PCs)"
You'd need a lot of resources. The Bitcoin network currently runs at 17190 Tflops, which is about equivalent to 2.5 million desktop CPUs. If bitcoin ever becomes a major currency, this value will be much higher, and out of the range of most botnets.
"I make nodes face two chains of equal length. Once new block arrives and nodes rush to the "winner" branch, I help the other branch win, so they rush back."
What would be the point in doing that?
"BitCoin weakens it to a majority vote in terms of CPU cycles uselessly burnt."
What's the alternative? A centralized server is likely to be far more vulnerable to attacks (just ask Sony!).