3 ms·
It's already the case with bitcoin that each computer does not need to hold all of the data. You're just not running a full node at that point. Which makes sens
by javert 13y ago
It's already the case with bitcoin that each computer does not need to hold all of the data. You're just not running a full node at that point. Which makes sense.
- maaku 13y agoYou don't need to have all the data to run a full node. That's just what the reference client does.
- javert 13y agoThat 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.
- maaku 13y ago> 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.