Fresh off their bchd beta, Chris Pacia and the lads at bchd have “ported the neutrino wallet backend to our bchwallet codebase.” It just might be a first for the Bitcoin Cash (BCH) community in giving enthusiasts access to “a lightweight SPV wallet with strong network level privacy,” the team explained.
Bitcoin Cash Gets Neutrino Wallet
“The way it works is full nodes create a filter for each block in the chain,” today’s announcement read. “You can think of a filter as an ultra compact representation of all of the transactions in the block. The nodes store these filters on disk along with the block.”
SPV wallets use neutrino downloaded filters for each of the blocks, along with synchronizing “the full chain of headers like a normal SPV wallets.” And with that filter, essentially blocks can find transactions in the wallet that match. A match means downloading the full block, parsing it for transactions. The process also means wallets won’t have to give up other addresses already held, preventing this otherwise normal process in peer-to-peer transacting.
Privacy is little thought of in this manner. Normally, as the announcement points out, most focus on broadcast privacy as it relates to blockchains. Tracing where coins go is certainly key to the privacy issue.
“Prior to neutrino,” the announcement continues, “there was not a single lightweight wallet available on the market that does not disclose all the addresses in your wallet and your entire transaction history to a third party.”
In this regard, most enthusiasts use Tor for muddying an IP address. But as anyone knows who goes this route, “it tends to be difficult to impossible to prevent your trading partners (who necessarily know the address your paid from or which they paid) from learning your real identity. Thus even when using Tor there are people who can link your identity to an address and still more people who can link that address to all the transactions in your wallet.”
The intellectual genealogy of the neutrino idea can be traced to Bitcoin Core (BTC) devs Roasbeef and Jim Posen, BIPs 157/158. “Technically they use neutrino as an SPV option as part of their Lightning Network implementation (lnd), but we just use it as a normal wallet unrelated to lightning,” bchd pointed out.
Lots of Potential, Still Beta
Though still in beta development, the potential is promising. Considering recent happenings within the BCH community and its hard fork resulting in two chains, older versions of SPV wallets are not up for block validation. They necessarily follow longest chains, and do not check for validity.
They admit, while “neutrino isn’t capable of doing full validation, it can at least perform sanity checks on the blocks that it downloads. For example, neutrino will validate that blocks follow canonical transaction ordering and do not contain any invalid opcodes. Thus neutrino would not sync onto the BSV network even if BSV were to create a chain with more work than the Bitcoin Cash chain.”
Furthermore, previous iterations of SPV wallets have the ability to “lie,” making the wallet “believe it did not receive a transaction or that a transaction didn’t confirm. This is not possible with neutrino as attempts to bamboozle the wallet can be detected and the peer will be banned,” they claim. Bchd is an alternative full node bitcoin cash implementation written in Go (golang), and more information on installation is available in the announcement.
CONTINUE THE SPICE and check out our piping hot YouTube channel. Our podcast, Milk, might help sooth that crypto burn. Follow CoinSpice on Twitter. Join our Telegram feed to make sure you never miss a post. Drop some BCH at the merch shop — we’ve got some spicy shirts for men and women. Don’t forget to help spread the word about CoinSpice on social media.