<blockquote>
<p>Would that be unsafe?</p>
</blockquote>
<p>In practice, no.
There are some theoretical attack scenarios that are extremely unlikely (if not impossible) to happen in practice, and I am not aware of any successful attacks on users running light wallets such as Electrum or Ledger, because it would take more than 51% SHA-256D mining power to fabricate a proof that would convince a light wallet of some alternate reality - but the alternate reality would create a hard-fork with no market value so the attacker would lose a huge amount of money just to convince his target.</p>
<p>These wallets may be &quot;light&quot; as in not running a node but they do not have to trust the server (the server runs a node that feeds the required data to wallets), because the server produces a cryptographic proof of your TX(es) inclusion into a blockchain with the highest work.</p>
<p>From the <a href="https://bitcoin.org/bitcoin.pdf" rel="nofollow noreferrer">Bitcoin whitepaper</a> (the below is copied from markdown version <a href="https://github.com/karask/satoshi-paper/blob/master/bitcoin.md#simplified-payment-verification" rel="nofollow noreferrer">found here</a>):</p>
<h2>Simplified Payment Verification</h2>
<p>It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it.</p>
<p><a href="https://i.sstatic.net/2NG40.png" rel="nofollow noreferrer"><img src="https://i.sstatic.net/2NG40.png" alt="SPV" /></a></p>
<p>As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification.</p>

CC BY-SA 4.0
2022-11-23T17:42:11.373Z
Any reference to the theoretical attack scenarios? What are vulnerabilities of SPV, if any?
skang404
CC BY-SA 4.0
2022-11-24T09:41:28.403Z
Here's a succinct scenario: https://bitcoin.stackexchange.com/a/52956/137501
The client can't verify consensus rules, he trusts that the hashrate which mined the block headers did that already but he can mitigate by verifying header hashes externally from multiple sources, like block explorers. That's really the only attack scenario AFAIK.

There's another disadvantage - privacy. You have to get the TX from somewhere, and the server can log your queries/IP. Most popular light wallet protocol is Electrum, here's more on it: https://electrumx-spesmilo.readthedocs.io/en/latest/protocol.html
bca-0353f40e
CC BY-SA 4.0
2022-11-14T10:05:50.883Z
2022-11-14T10:05:50.883Z
bca-0353f40e
<p>Imagine, a datacenter network running full nodes &amp; no user running a full node.</p>
<p>Would that be unsafe? If no, why do bitcoin users run a full node? If yes, why don't bitcoin users run a full node?</p>

<full-node>
Security of users not running a full node
skang404
# Security of users not running a full node

(Asked by: username_0 on 2022-10-15)

Imagine, a datacenter network running full nodes & no user running a full node.

Would that be unsafe? If no, why do bitcoin users run a full node? If yes, why don't bitcoin users run a full node?

**Tags:** full-node


---

## 1 answers

### Answer by username_1 on 2022-11-14. Score: 1

> Would that be unsafe?

In practice, no.
There are some theoretical attack scenarios that are extremely unlikely (if not impossible) to happen in practice, and I am not aware of any successful attacks on users running light wallets such as Electrum or Ledger, because it would take more than 51% SHA-256D mining power to fabricate a proof that would convince a light wallet of some alternate reality - but the alternate reality would create a hard-fork with no market value so the attacker would lose a huge amount of money just to convince his target.

These wallets may be "light" as in not running a node but they do not have to trust the server (the server runs a node that feeds the required data to wallets), because the server produces a cryptographic proof of your TX(es) inclusion into a blockchain with the highest work.

From the [Bitcoin whitepaper](https://bitcoin.org/bitcoin.pdf) (the below is copied from markdown version [found here](https://github.com/karask/satoshi-paper/blob/master/bitcoin.md#simplified-payment-verification)):

## Simplified Payment Verification

It is possible to verify payments without running a full network node. A user only needs to keep a copy of the block headers of the longest proof-of-work chain, which he can get by querying network nodes until he's convinced he has the longest chain, and obtain the Merkle branch linking the transaction to the block it's timestamped in. He can't check the transaction for himself, but by linking it to a place in the chain, he can see that a network node has accepted it, and blocks added after it further confirm the network has accepted it.

[![SPV](https://i.sstatic.net/2NG40.png)](https://i.sstatic.net/2NG40.png)

As such, the verification is reliable as long as honest nodes control the network, but is more vulnerable if the network is overpowered by an attacker. While network nodes can verify transactions for themselves, the simplified method can be fooled by an attacker's fabricated transactions for as long as the attacker can continue to overpower the network. One strategy to protect against this would be to accept alerts from network nodes when they detect an invalid block, prompting the user's software to download the full block and alerted transactions to confirm the inconsistency. Businesses that receive frequent payments will probably still want to run their own nodes for more independent security and quicker verification.

> **Comments:**
> **username_0**: Any reference to the theoretical attack scenarios? What are vulnerabilities of SPV, if any?  
> **username_1**: Here's a succinct scenario: https://bitcoin.stackexchange.com/a/52956/137501 The client can't verify consensus rules, he trusts that the hashrate which mined the block headers did that already but he can mitigate by verifying header hashes externally from multiple sources, like block explorers. That's really the only attack scenario AFAIK.  There's another disadvantage - privacy. You have to get the TX from somewhere, and the server can log your queries/IP. Most popular light wallet protocol is Electrum, here's more on it: https://electrumx-spesmilo.readthedocs.io/en/latest/protocol.html  

---

