I just have a few questions about how Bitcoin operates. I did have a read through Satoshi Nakamoto's paper, but I'm not I got everything.
(1) It is my understanding that the network generates new blocks roughly every ten minutes, and these new blocks contain the recent transactions. Each new block depends on a hash of all previous blocks, building a chain.
But what happens if two new blocks are generated at a similar time? Is only one accepted by the network, or are they both excepted, and is this split in the chain then merged somehow?
The first one that each node receives is worked on. Whatever miner finds the next block afterward determines which side of the chain will be used. Statistically, that would be the side where the block propagated the most. Another tie at this point would be solved the same way.
(2) If you want to confirm transactions are valid, I assume you need to know how much is in each wallet in the network. Does this mean that every node in the network that wants to confirm transactions are valid needs a copy of all the current balances of all wallets in the network? And can't this grow without bound as wallets can contain very small fractional amounts of bitcoins?