Course outline · 11 lessons
Advanced Bitcoin Security & Privacy

Network Privacy: Tor, VPNs and Your Own Node

An unplugged Ethernet cable passes through three short dark fabric sleeves on charcoal wool.

Network privacy means controlling who learns your IP address while you use Bitcoin. Your own node keeps your addresses off strangers’ servers. Tor hides your IP address by passing each connection through a chain of volunteer relays, so no single one knows both who you are and where you are going. A VPN hides it from everyone except one company, which then sees both who you are and where you connect. Your IP address is the number that identifies your internet connection; it points to your internet provider and your approximate location.

Why it matters: chain analysis reads the blockchain, but a lot leaks before anything reaches it. Every balance check and every payment is a request some computer receives, along with your IP address. Pair one of your addresses with it and your coins have a home location. This lesson shows who sees what, what you trust a VPN with, and how to put Sparrow and a home node on Tor and prove that it worked.

What Leaks at the Network Layer

The network layer is what your devices send over the internet: who you contact, when, and from which IP address. Four kinds of computer sit on the other end; a Lightning wallet adds a fifth, covered at the end of this lesson.

Public Electrum servers. A wallet such as Sparrow or Electrum, when it isn’t connected to your own node, asks an Electrum server (a server that indexes the blockchain by address) about every address in your wallet. The requests arrive together from one IP address, so the server can link your addresses, add up your balance and read your history. Sparrow says it plainly: “Using a public server means it can see your transactions.”

Block explorers. A block explorer is a website, such as mempool.space, for looking up addresses and transactions. Pasting your own address into one tells the site which address interests you, and from where. mempool.space’s privacy policy says its server logs record your IP address with each request and are deleted after 10 days; other sites may keep more.

Bitcoin peers. A peer is another node your node is connected to. Your node is the first to announce the transactions you send, so an observer connected to many nodes can guess where one started; researchers demonstrated this in 2014. Since Bitcoin Core 27.0 (April 2024), connections between nodes that both support it are encrypted by default (BIP 324), which hides their contents from anyone listening on the line. The peer itself still sees your IP address.

Your internet provider. It sees every connection you make. Once you use Tor, the Tor Project says, all it can observe “is that you are communicating with Tor nodes.”

On the other endWhat it can learnWhat closes the leak
A public Electrum serverAll your addresses, linked; your balance, history and IP addressYour own node
A block explorer websiteEach address or transaction you look up, with your IP addressYour own explorer, or Tor Browser
Bitcoin peersYour IP address, and which transactions you announced firstTor (or I2P, a second anonymity network) for your node; private broadcast (below)
Your internet providerThat you run a node or use Bitcoin servicesTor, after which it sees only “Tor”
A Lightning service providerYour IP address, your node and your paymentsTor for the IP address; your own node for the payments

Your own node removes the first row, because your wallet asks your own machine (Why Run a Bitcoin Node?). Tor handles the IP address in the rest.

Three setups, each showing your home, your internet provider in the middle and who is at the other end. 1: your wallet asks a public Electrum server; your provider sees a connection to that server, and the server learns your addresses, linked, your balance and history, and your IP address. 2: your wallet asks your own node at home, so your addresses stay home; your provider sees that you run a Bitcoin node, and the node's peers learn your IP address and which payments you announced first. 3: your node reaches its peers only over Tor; your provider sees only that you use Tor, and the peers see a Tor connection, not your IP address.
Your own node keeps your addresses at home; Tor hides your IP address. Each step closes a different leak, so you need both: a node that answers your wallet, and Tor for the connections that still leave your home.

Tor and VPNs: Where Your Trust Goes

Tor is a free network of thousands of volunteer-run computers called relays. Your connection usually passes through three of them, and each knows only the relay before it and the one after it. The first (the guard) sees your IP address but not your destination; the last (the exit) sees the destination but not your IP address.

Some services live inside Tor. These onion services have addresses ending in .onion, and a connection to one never leaves Tor: there is no exit relay, the traffic is encrypted all the way, and the service’s IP address stays hidden too. They need no open port on your router, which is how a home node can be reachable over Tor with no router changes. So a node that talks to .onion peers keeps the whole path inside Tor, while reaching an ordinary internet address (clearnet) through Tor relies on an exit relay run by a stranger.

Two routes through Tor. To an ordinary clearnet address, your connection passes three relays: the guard sees your IP address but not where you go, the middle relay sees neither, and the exit relay sees where you go but not your IP address; the destination sees the exit relay's IP address, not yours. To a .onion service, the connection passes six relays, three that you pick and three that the service picks, and there is no exit relay: the connection never leaves Tor, it is encrypted all the way, and the service's IP address stays hidden too.
No single Tor relay knows both who you are and where you are going. To reach an ordinary address, the last relay (the exit) makes the connection for you. A .onion service lives inside Tor, so no exit is needed and both ends stay hidden.

A VPN (virtual private network) sends all your traffic through an encrypted tunnel to a company’s server, so peers and websites see the company’s IP address instead of yours. The trust you remove from your internet provider moves to that company. The Electronic Frontier Foundation’s guide (reviewed July 2026) says your browsing data is “all visible to the VPN provider”, that a no-logs claim “is not a guarantee of good behavior”, and that paying by credit card links the account to you. Its summary: “A VPN is not a tool for anonymity.”

TorVPN
Sees your real IP addressThe first relay, which doesn’t know your destinationThe VPN company
Sees where you connectThe exit relay, which doesn’t know your IP address; .onion needs no exitThe VPN company
One party that sees bothNone, by designThe VPN company
Your internet provider seesThat you use TorThat you use that VPN
Account and paymentNone; Tor is freeUsually both, which can identify you

Tor is slower; Sparrow’s guide calls Bitcoin Core over Tor “fairly slow”. Many Bitcoiners still prefer it for their node and wallet, because no single company holds the whole picture.

Two rows compare a VPN with Tor. With a VPN, your traffic goes through an encrypted tunnel to the VPN company and on to the destination; the one company holds all three pieces: your real IP address, your account and payment, and where you connect. Your internet provider sees that you use that VPN. With Tor, the guard relay sees your real IP address, the middle relay sees neither, and the exit relay sees where you connect; no single relay sees both ends. Your internet provider sees that you use Tor, and there is no account or payment, because Tor is free.
A VPN moves your trust to one company; Tor splits it. The VPN company sees who you are and where you connect, and usually has your account and payment too. With Tor, the relay that knows your IP address never learns where you go.

Neither tool changes what the blockchain records, so coin control matters as much as before, and neither hides your addresses from a server you choose to ask; only your own node does that. Tailscale, which Umbrel recommends for reaching your node from outside the house, is a different kind of tool: it links your own devices to each other, and your node still meets its peers from your home IP address (Setting Up Your Bitcoin Node explains what Tailscale’s company servers see).

Put Sparrow on Tor

Sparrow routes all its outside connections through Tor in two cases: when its server address ends in .onion, which starts its built-in Tor, and when you set a Tor proxy (a program that makes connections on your behalf) yourself.

With your own node

On a Raspberry Pi set up as in Setting Up Your Bitcoin Node, Sparrow already reaches Bitcoin Core through a .onion address. With an Electrum server such as Electrs or Fulcrum, switch the app’s connection details to Tor and enter its .onion address in Sparrow. At home, a local address such as 192.168.1.45 is fine: that traffic stays on your home network, and Sparrow skips the proxy for local addresses.

With a public server

  1. Download Tor Browser only from torproject.org and check its signature with the Tor Project’s instructions (How to Verify Bitcoin Software Before You Install It explains why it matters). Fake Tor Browser installers that swap copied bitcoin addresses have circulated (The Scams That Empty Self-Custody Wallets).
  2. Leave Tor Browser open: it runs a Tor proxy on port 9150. Instead, you can run the standalone tor service (a package on most Linux systems), which listens on port 9050 and keeps running without a browser.
  3. In Sparrow’s Settings, open the Server tab and choose Public Server. Turn on Use Proxy, enter 127.0.0.1 and the port, and click Test Connection.

The server no longer sees your IP address, but it still sees your addresses and balance, so treat this as a step toward your own node.

Sparrow on your computer hands its connection to a Tor proxy on the same computer: 127.0.0.1 means this computer, and the port is 9150 with Tor Browser or 9050 with the tor service. The connection crosses Tor's three relays to a public server. The public server still learns your addresses, linked, and your balance and history; it sees a Tor exit's IP address instead of yours. Tor hides where you are, not what you ask. Your own node removes the server.
Through Tor, a public server still reads your wallet. It sees a Tor exit’s IP address instead of yours, but it still reads every address Sparrow asks about, and your balance. Only your own node keeps those at home.

With Tor on, Sparrow also changes how it sends payments. It hands each new transaction over Tor to public block explorers, such as mempool.space, at their .onion addresses, and uses your own server only if they all fail. Its FAQ gives the reason: someone watching the network can, with effort, work out which node a new transaction started from. This way no peer sees your home IP address when your transaction first appears.

Put Your Node on Tor

A node has two things to hide: that your home runs one, and where your transactions start. By default, as of November 2026, Umbrel’s Bitcoin Node app connects to peers over clearnet, Tor and I2P; StartOS uses every network it can reach and offers Tor as a separate service; plain Bitcoin Core uses clearnet, and adds Tor alongside it only if it finds a Tor service on the same computer that it is allowed to control. Any clearnet peer sees your home IP address.

On Umbrel

  1. Open the Bitcoin Node app → Settings → Peer Settings.
  2. Under Outgoing Peer Connections, untick Clearnet and keep Tor. Keeping I2P gives your node a second privacy network to find peers on.
  3. Save. Bitcoin Core restarts.

The alternative, Make All Outgoing Connections to Clearnet Peers Over Tor, keeps clearnet peers but reaches them through Tor exit relays; Umbrel describes it as preserving your anonymity “at the cost of slightly less security”.

Your node connects to other people's nodes in three rows: clearnet, Tor and I2P. 1: Umbrel's default, clearnet, Tor and I2P; the clearnet peer sees your home IP address. 2: Make All Outgoing Connections to Clearnet Peers Over Tor; the clearnet connection goes through Tor and out of an exit relay, so the clearnet peer sees the exit relay's IP address, not yours, but strangers' exit relays carry that traffic. 3: Clearnet unticked, Tor and I2P only; clearnet is off, no peer sees your IP address and no exit relay is used.
Only clearnet connections show peers your home IP address. Switching clearnet off removes them. Routing them through Tor hides your IP address too, but that traffic then leaves through exit relays run by strangers.

On StartOS

  1. Install Tor from the StartOS marketplace and start it.
  2. In the Bitcoin Core service, run the Peer Settings action. Under Onlynet, select only onion (Tor), plus i2p if you like. With nothing selected, Bitcoin Core uses every network.
  3. Save.

Bitcoin Core on your own computer

With Tor running, add these lines to bitcoin.conf and restart. They assume the standalone tor service on port 9050; with Tor Browser, write 9150 and keep the browser open while the node runs.

proxy=127.0.0.1:9050
onlynet=onion

The first line sends all of your node’s connections through Tor; the second makes it choose only .onion peers, so nothing leaves through an exit relay. With a proxy set, Bitcoin Core also stops accepting incoming connections and stops asking your router to open a port, unless you switch those back on. Older guides write onlynet=tor; Bitcoin Core 31.0 (April 2026) removed that name and now refuses to start with it (“Unknown network specified in -onlynet”), so write onion. In the desktop app, the Network tab of Options (in the Settings menu; on a Mac, in the Bitcoin Core menu) has “Connect through SOCKS5 proxy (default proxy)”, which does the same as the first line. To let other nodes reach yours over Tor, see our full node setup guide.

Hide where your transactions start: private broadcast

Bitcoin Core 31.0 added a setting, privatebroadcast: each transaction goes out through Tor or I2P to a few randomly chosen peers, over new short-lived connections that carry only that transaction, so peers don’t see your IP address and two of your payments can’t be linked by sharing a connection. The transaction enters your node’s mempool (its list of unconfirmed transactions) only once an ordinary peer relays it back. Since October 2026 Bitcoin Core labels it experimental and promises “best-effort concealment” of where a transaction started.

Normally your node announces payment 1 and payment 2 to its usual peers over the same connections, which stay open all the time, so your clearnet peers see your IP address and see your node announce both payments. With private broadcast, each payment goes to a few randomly chosen peers over new connections through Tor or I2P, and each connection carries that one payment and then closes: the peers that get payment 1 see Tor, not your IP address, and the peers that get payment 2 can't link it to payment 1. The payment is not in your mempool at first: your node adds it once an ordinary peer relays it back.
Private broadcast sends each payment over its own short-lived connections. Peers see Tor or I2P instead of your IP address, and two payments no longer share a connection that would link them.

It covers transactions that reach the node through its sendrawtransaction command, which is how Electrs, Fulcrum and Sparrow (connected straight to Bitcoin Core) pass on your payments. It matters most for wallets that hand payments to your node, such as Sparrow at home on a local address; Sparrow on Tor already sends through block explorers. Bitcoin Core’s own built-in wallet is not covered.

Use it on Bitcoin Core 32.1 or later only. Version 32.1 (October 2026) fixed a case where, on a node that connects to clearnet peers directly, a private-broadcast connection could skip Tor and reveal your IP address. The 31.x series, including 31.2, released at the same time, lacks that fix.

  • Umbrel: turn on Privately Broadcast Transactions in Peer Settings (offered only with Bitcoin Core 32.1, as of November 2026).
  • StartOS: Peer Settings has a Private Broadcast option, but as of November 2026 its Bitcoin Core package is on 31.2, which lacks the fix. Wait for a 32.1 package.
  • Bitcoin Core: on 32.1 or later, add privatebroadcast=1. Bitcoin Core refuses to start with it if it can reach neither Tor nor I2P.

Check That It Really Is on Tor

Trust what the software reports, not how a switch looks:

SetupWhere to lookWhat you should see
SparrowStatus bar, bottom rightA Tor icon reading “Internal Tor proxy enabled” or “External Tor proxy enabled” when you hover over it. No icon means no Tor; a red one means Sparrow can’t reach your Tor proxy, usually because Tor Browser or the tor service isn’t running.
Your Tor proxycurl --socks5-hostname 127.0.0.1:9050 https://check.torproject.org/api/ip (9150 for Tor Browser)"IsTor":true
UmbrelBitcoin Node app: peers chart on Home; Peers table under InsightsOnly Tor and I2P peers
StartOSBitcoin Core’s health checksThe Clearnet check reads “Excluded by onlynet”; the Tor check passes (it may add “Outbound only”)
Bitcoin Corebitcoin-cli -netinfo, or Window → Peers in the desktop appPeers only under onion (and i2p); “Onion” in the Network column
Bitcoin Core, in detailbitcoin-cli getnetworkinfoipv4 and ipv6 show "reachable": false; onion shows your proxy

Check again after updates and restores: a new default can quietly bring clearnet back.

Lightning Privacy Basics

Lightning’s own onion routing keeps the nodes in the middle of a payment’s route from learning who pays whom: each one sees only the node before it and the node after it (Lightning Channels and Routing). It is separate from Tor and doesn’t hide your IP address from the nodes you connect to directly. Three more things decide what you give away.

What your Lightning service provider sees

A Lightning Service Provider (LSP) is a company that opens and manages channels for your wallet. A phone wallet usually has one channel, to its LSP, so every payment you send or receive passes through that company. It knows your node and the on-chain transaction that funded your channel, sees the amount and time of each payment, and, without Tor, your IP address.

Phoenix’s LSP is ACINQ, its maker, and it sees more, because Phoenix hands each payment to ACINQ’s node to find the route. Phoenix’s FAQ: “We (ACINQ) know the final destination and amount of payments.” ACINQ can’t spend or freeze your funds. Phoenix can use Tor to hide your IP address from ACINQ’s node and from the Electrum server it uses to watch the blockchain. On both Android and iOS this needs a separate Tor app such as Orbot, and the Android app warns that Tor “may cause performance issues and missed payments”. Tor hides where you are, not the payments ACINQ routes; for those, payments must leave from your own node (Lightning Wallets Compared).

A phone wallet has one channel, to its Lightning service provider's node, and every payment goes through that node and on along the route to whoever you pay. Your LSP sees your node and the transaction that funded your channel, the amount and time of every payment you send or receive, and your IP address unless you use Tor; onion routing shows it only the next node on each route, not where the payment ends. Phoenix's LSP, ACINQ, also sees where each payment ends and its amount, because Phoenix hands each payment to ACINQ's node to find the route. Tor hides your IP address, not your payments; your own node takes the LSP out.
Your LSP sees every payment your phone wallet makes. It knows your channel and the amount and time of each payment, and Phoenix’s LSP also sees where each payment ends.

What an invoice reveals

A standard Lightning invoice (BOLT 11, the string starting lnbc) names the receiving node by its node ID, the node’s public key, which stays the same for as long as the node exists. Anyone who sees the invoice learns it, with the amount and description. So:

  • All invoices from your node carry the same ID and link together.
  • A node with public channels announces them, with the addresses where it accepts connections: an IP address or a .onion address. Look your node ID up on a Lightning explorer to see what a payer sees.
  • Receiving through a private channel adds a routing hint naming that channel and the node at its other end. The channel’s real short channel ID is built from the block height and position of the funding transaction, so it points at your coins on the blockchain. The specification lets software use a random alias instead (option_scid_alias).
A BOLT 11 invoice, starting lnbc, carries your node ID (your node's public key), the amount and description, and, for a private channel, a routing hint. 1: looking up the node ID on a Lightning explorer shows your public channels and the address your node announces, your home IP address or a .onion address; and the same ID is on every invoice, so they link together. 2: the routing hint can carry the channel's real short channel ID, for example 539268x845x1: the block, the transaction's place in it and the output, so it points at your funding transaction on the blockchain. Less revealing: a random alias in place of the real ID (option_scid_alias), or a BOLT 12 offer with a blinded path.
A BOLT 11 invoice names your node. Its node ID leads to your node’s channels and announced address and links all your invoices, and a private channel’s real short channel ID points at your funding transaction on the blockchain.

BOLT 12 offers can hide the receiving node behind a blinded path, a last stretch of route the recipient encrypts, so the payer learns only where it begins. Phoenix added offers in 2024; our BOLT 11 and BOLT 12 guide compares the formats.

Your own Lightning node

Your own node takes the LSP out of your payments (Running a Lightning Node); its network setting decides who sees your IP address. LND’s documentation warns that connecting to clearnet peers directly “will reveal the source IP address of the node”, and on Umbrel new Lightning Node installs do exactly that, in Hybrid Mode, as of November 2026. To go Tor-only, open the app’s three-dot menu → Advanced Settings → Tor & Clearnet and turn off Hybrid Mode; Umbrel notes this may decrease reliability. Then open Node ID in the same menu: if it lists only a Tor address and no Clearnet one, your node announces no IP address.

Key Takeaways

  • Your IP address reaches whoever your wallet or node talks to: Electrum servers, block explorers, peers, your internet provider and Lightning service providers.
  • Your own node keeps your addresses off strangers’ servers; Tor keeps your IP address from the servers and peers you connect to.
  • Tor splits trust across relays, and .onion connections never leave Tor. A VPN gives one company both your IP address and your destinations.
  • Home node platforms can leave clearnet on: set outgoing peers to Tor (and I2P), use private broadcast on Bitcoin Core 32.1 or later, and check the peer list.
  • On Lightning, your LSP sees your payments, and every BOLT 11 invoice reveals your node ID.

Check Your Understanding

1. Your Umbrel’s Bitcoin Node app shows Clearnet, Tor and I2P peers, and Sparrow reaches it through a .onion address. Is your home IP address hidden from the Bitcoin network?

Answer

No. The .onion address protects only the link between Sparrow and your node. Your node’s clearnet peers still see your home IP address, so they know a node runs there, and any transaction your node sends out itself (from another wallet, or from Sparrow if the block explorers fail) can leave over clearnet. Untick Clearnet under Outgoing Peer Connections (or route clearnet peers through Tor), consider private broadcast on Bitcoin Core 32.1, and confirm the peer list shows only Tor and I2P.

2. You use Sparrow with a public Electrum server, through a VPN. What does the server learn, and what does the VPN company learn?

Answer

The server still learns every address in your wallet, linked, with your balance and history, just from the VPN’s IP address instead of yours. The VPN company sees your real IP address and when you connect to that server. If it keeps logs and the account is in your name, the two records can be joined. Your own node removes the server; Tor removes the single company that sees both ends.

3. You send a friend a BOLT 11 invoice from your home Lightning node, which announces a clearnet IP address. What could a curious payer learn?

Answer

Your node ID, from the invoice. On a Lightning explorer it shows your public channels and announced addresses, here your home IP address and so your approximate location. Every invoice from that node carries the same ID, so your payments link together, and a private channel’s routing hint, unless it uses an alias, points at its funding transaction. A Tor-only node announces only a .onion address; a BOLT 12 offer with a blinded path can hide the node itself.