4

One of the largest hurdles in my mind to increasing the number of full nodes operating is the startup cost related to downloading the blockchain. A similar but less important (in my mind) issue is the amount of disk space required by the full blockchain.

At Pruning the branches in Merkle Tree Nick ODell writes "[Bitcoin Core] was built on the assumption that you download and validate all blocks." In Would moving a transaction from an old block to a new one allow more pruning? Murch suggested that some assumptions be checked, and I think one of them was my assumption that it isn't necessary to parse the entire blockchain. Thanks to Murch, this question is intended to address that assumption.

2 Answers 2

3

Full nodes serve several functions on the network:

  1. Validating the blockchain on behalf of their owner
  2. Supplying previous blocks and transactions to other nodes
  3. Relaying transactions and blocks to other nodes

Not validating the blockchain independently sacrifices each of these functions to a degree.

  1. If the node does not independently validate the blockchain, the owner of the full node is still relying on trusting the peer nodes
  2. If the node does not store previous transactions and blocks, it cannot supply them to other nodes that are catching up with the network
  3. If the node hasn't validated the blockchain, it could be tricked into relaying invalid transactions and blocks.

So yes, a node can skip the important step of downloading and validating the blockchain, but I don't think I would consider it to be a "full node" anymore. It would not be helping the overall network health, nor could it be completely trusted by its owner. At that point, I would suggest simply running an SPV node.

1

In general, there are policies and there are rules in Bitcoin. Every full node works independently to enforce rules by checking each received block, transaction and etc... Once a received block has been checked and verified, a full node will then update its UTXO set to reflect the latest state in the Blockchain which is stored in Memory.

What to do with the block, is left as a policy decision to the owner of the Full Node. As the owner, you may elect to have your full node run in Prune Mode. That being, you get rid of all transactions with its UTXO spent to relieve storage usage as these transactions do not add value to maintain the current state. Note that your policy decision does not affect the capability of your full node in enforcing the rules of Bitcoin.

To address your question directly. No. Bitcoin cannot start securely without downloading the entire blockchain. As a full node it is part of its functionality to independently verify the sequence of state transitions leading to bitcoins current state. Therefore the trust model forbids it from trusting some UTXO set shareable by some other independent node. Of course there may be other node implementations which may relax this requirement but I'm not aware of any.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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