In our first post on Neutrino, we discussed the state of Bitcoin light clients. Specifically we introduced Neutrino nodes and contrasted them to traditional Simplified Payment Verification (SPV) nodes. At Suredbits, we’re currently working on adding Neutrino support to Bitcoin-S.  For this post, I would like to further explore Neutrino nodes and their tangible effects on wallets.

How Neutrino Works Part 1

How Neutrino Works Part 2

Implementing Neutrino

What Is Neutrino And Why We Need It

The first benefit is that Neutrino has a fast initial sync. After all, it wouldn’t be a very good light client if it wasn’t fast to get started on. In practice this means that you could have a Neutrino node running on your phone that could accept payments in under half an hour without trusting any centralized server! In conjunction with turbo channels this means that you could be sending and receiving lightning payments without a centralized server in minutes. Furthermore if there is a server you are willing to trust, just for a short while, then you can actually get started instantly by accepting the current state and validating in the background.

And what if you want to import existing funds into your Neutrino wallet? Then this will require you to scan the blockchain from the point where your oldest key was created to the present. This sounds like a daunting task for a light client to overcome seeing as it does not have access to all 250+ GB of the blockchain at its disposal for fear of destroying your phone plan. But all a Neutrino node does is match against highly compact block filters. If you were to go through the entire Bitcoin blockchain, even for many addresses, this should still take less than 30 minutes. Realistically, most keys are not very old and rescan time will be much much shorter than 30 minutes. But do note that all this is done trusting only that at least one of your many peers is not malicious!

Another important benefit of Neutrino nodes is they drastically reduce bandwidth usage when compared to full nodes as you must only download blocks that contain your own addresses (with a false positive download rate of 1/784931). Nodes must also download block headers (80 bytes), block filter headers (32 bytes), and block filters (<10 KB on average) but these are all quite small, especially when compared to blocks which are around 1 MB in scale.

Arguably the best new feature that Neutrino gives us is private light clients. Current light clients have virtually zero privacy in that BIP 37 nodes essentially leak your addresses to all peers who serve you data. Neutrino should give peers no information about your addresses since they are sending you filters rather than the other way around. This means that we can finally start using light clients in privacy-sensitive applications.

Last, I should note that the trust model for Neutrino is essentially the same as the existing one of current light clients and really most P2P networks. That is, so long as you have one trust-worthy peer you will have a valid state and you will be able to detect liars.

In the next post, we’ll dive into the details of BIPs 157 and 158 and describe how Neutrino works. And stay tuned for later in this series where we will discuss our experiences in implementing a Neutrino node!

Contact us @Suredbits

Contact Nadav @nadav_kohen

All of our API services, for both Cryptocurrency APIs as well as Sports APIs, are built using Lightning technology and the Lightning Network. All API services are live on Bitcoin’s mainnet. Our fully customizable data service allows customers to stream as much or as little data as they wish and pay using bitcoin.

You can connect to our Lightning node at the url:

To learn more about how our Lightning APIs work please visit our API documentation or checkout our Websocket Playground to start exploring fully customized data feeds.

If you are a company or cryptocurrency exchange interested in learning more about how Lightning can help grow your business, contact us at [email protected].