Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

You don't need to have all the data to run a full node. That's just what the reference client does.


That may be right given a certain definition of "full node," but without all the data, you cannot validate transactions all the way back.

In other words, you really only "need" to know all the unspent outputs; those are the only bitcoins that can be spent validly. But how do you _know_ that your list of unspent outputs is correct? You would only know by validating all the way back to the beginning of the blockchain. Otherwise, you are going off "trust" at some point in the past.

You may know a lot more than I do, so fill me in if I'm missing something here.


> But how do you _know_ that your list of unspent outputs is correct?

Because you calculated it. For full security you need to witness the entire block chain, but as soon as you've validated a block and processed its transactions into the unspent transaction output set, you can throw it away. You know the UTXO set is valid because you trust your past self to have calculated it correctly (and if you negate that assumption then you quickly end up not able to trust anything at all).

This isn't even considering UTXO commitment schemes which let you retrieve from the network UTXO data with SPV level of security, or to validate from the genesis block while storing nothing, not even the UTXO set.

FWIW, "full node" is usually taken as shorthand for "fully validating node" which doesn't necessarily require storage of block chain data, whereas "archive node" indicates a node that does keep full block chain history.




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

Search: