<p>Full nodes serve several functions on the network:</p>

<ol>
<li>Validating the blockchain on behalf of their owner</li>
<li>Supplying previous blocks and transactions to other nodes</li>
<li>Relaying transactions and blocks to other nodes</li>
</ol>

<p>Not validating the blockchain independently sacrifices each of these functions to a degree.</p>

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

<p>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 <a href="https://en.bitcoin.it/wiki/Thin_Client_Security" rel="nofollow noreferrer">SPV node</a>.</p>

CC BY-SA 4.0
2016-06-14T22:01:43.927Z
2019-09-20T19:03:43.427Z
2019-09-20T19:03:43.427Z
Jestin
<p>In general, there are <em>policies</em> and there are <em>rules</em> 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. </p>

<p>What to do with the block, is left as a <em>policy</em> 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 <em>policy</em> decision does not affect the capability of your full node in enforcing the <em>rules</em> of Bitcoin.</p>

<p>To address your question directly. No. Bitcoin cannot start <strong>securely</strong> 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. </p>

CC BY-SA 3.0
2016-06-14T21:26:08.993Z
2016-06-14T21:39:29.323Z
2016-06-14T21:39:29.323Z
rny
<p>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.</p>

<p>At <a href="https://bitcoin.stackexchange.com/questions/36100/pruning-the-branches-in-merkle-tree">Pruning the branches in Merkle Tree</a> Nick ODell writes "[Bitcoin Core] was built on the assumption that you download and validate all blocks."  In <a href="https://bitcoin.stackexchange.com/questions/44289/would-moving-a-transaction-from-an-old-block-to-a-new-one-allow-more-pruning">Would moving a transaction from an old block to a new one allow more pruning?</a> 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.</p>

<blockchain><security><full-node>
Can bitcoin node startup be secure without validating the entire blockchain?
Dave Scotese
# Can bitcoin node startup be secure without validating the entire blockchain?

(Asked by: username_0 on 2016-06-14)

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](https://bitcoin.stackexchange.com/questions/36100/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?](https://bitcoin.stackexchange.com/questions/44289/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.

**Tags:** blockchain, security, full-node


---

## 2 answers

### Answer by username_1 on 2016-06-14. Score: 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](https://en.bitcoin.it/wiki/Thin_Client_Security).


---

### Answer by username_2 on 2016-06-14. Score: 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.


---

