Hacker News new | past | comments | ask | show | jobs | submit login

OK, thanks for clarifying. Is this enforced client-side in the default client? What other types of validations are performed client-side? Where is the limit on the trace up the chain? You'd have to have a full clone of the blockchain to validate all the way up, or it'd terminate at the oldest block. I assume that even if you're one of the few still running a full chain these days, transactions in the block aren't checked against the coin's entire history. Does it reject/ignore the entire block or just the transactions for which it has a conflicting history?



Yes, the original client (Bitcoin Core) and some others enforce it, while others (Electrum) only rely on the proof-of-work, which of course is more risky, but acceptable for some users.

You need to follow the chain back from the very first block (the genesis block), not only to verify the following blocks but any blocks in the future (you could spend an unspent output from the very first block and it would be valid). Luckily, you don't actually need to store the blocks, just the parts that affect future validation (the UTXO set), so you can throw the blocks away after this (called prune mode in Bitcoin Core). As long as you can put up with the initial sync (several hours) the costs aren't too bad. In fact, I would argue the very limited powers given to miners is one of the most important parts of Bitcoin.

When even a single transaction in a block is invalid, the entire block is rejected wholesale.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: