0

I'm new to this so don't laugh. If all of the previous transactions in a blockchain have been validated as authentic, why does the entire chain have to be carried forward in the calculations? Why can't the validated portions be hashed and archived to save energy costs from handling so much historical data. When accountants calculate the current years income, they don't go back to when the company started and add up every income and expense item, they just add the current years results to the archived past totals. What am I missing.

0

3 Answers 3

1

When accountants calculate the current years income, they don't go back to when the company started and add up every income and expense item, they just add the current years results to the archived past totals. What am I missing.

The accountants won't start from the beginning, because they will have already done all of those calculations in previous years. This is similar to the function of a bitcoin node: it will not recompute the whole history to validate each new block, it will just validate each block once, and then store the network state, so that it can validate future blocks against that state.

The bottom line is, if you want to independently validate the history of the network, then you need to start from the beginning. Any other method will involve trusting that someone has supplied you with a legitimate intermediate state for you to begin your calculations from.

Note that a full node validating the chain is different than a miner working on finding new blocks. When people talk about the energy use of the bitcoin network, they are usually referring to the energy consumed by miners, not nodes.

2

There is no difference between those two things. If you have a data set that includes only things that you have fully validated all of and you confirm that something is in that data set, you have fully validated all of it. So checking that it's in a data set of things you have validated cannot be done instead of validating the entire chain because it does validate the entire chain.

I'm not sure what you mean by "archived to save energy". If they aren't archived, they're stored. If they are archived, they're stored. So I'm not sure how energy would be saved.

1

Perhaps more a clarification than an answer: there is absolutely no need for validating nodes to keep a copy of the full historical blockchain around, and it's unnecessary to have access to the chain's data for validation. Storing the block data or not is pretty much irrelevant for energy usage.

In Bitcoin Core (a fully-validating node that's often considered a reference implementation), there is a possibility of running in "pruned" mode, where all blocks are downloaded and fully validated, one by one, but deleted from disk afterwards. This is possible because the full block data is actually not necessary for validating future full blocks; only the set of unspent transaction outputs created by that block need to be retained. This is done in a separate database that is only a few GB in size, compared to a few 100 GB for the full blockchain.

The only impact this pruning mode has is not being able to scan for historical transactions (e.g. you can't import an old wallet because it won't be able to find those old transactions), and being unable to provide the historical blockchain to new nodes that are still synchronizing (which they need, even if they'll eventually prune that data away too).

Not the answer you're looking for? Browse other questions tagged or ask your own question.