Dec 19, 2019
Fastsync is a new feature in the BRD app that makes Bitcoin wallets sync in seconds, while also keeping BRD technology ahead of the curve as SPV slowly phases out.
To enable Fastsync, go to Menu → Preferences → Bitcoin Settings → Connection Mode → Enable Fastsync.
Those up-to-date with the technical side of Bitcoin are aware that the protocol is slowly moving away from SPV. SPV, which stands for Simplified Payment Verification as mentioned in the Bitcoin whitepaper, allows a lightweight client to verify that a transaction is included in a block, without needing to download the entire blockchain. It’s a reliable method that many mobile wallets such as BRD use to power wallets. It is completely peer-to-peer and regarded as a safe method.
With SPV being phased out, many users are worried about how mobile wallets will still offer reliable p2p transactions. In this piece, we’ll explain our plans moving forward and how it also enables us to create a better user experience, ridding Bitcoin syncing times, introducing Fastsync!
What is SPV?
For those unfamiliar, here is a brief explanation of SPV to gain a sense of what is happening under the hood.
To maintain a current balance in your wallet, or confirm any data in a block, your wallet will generally create a bloom filter, specifying what data it’s looking for, and send that filter request to a server (node).
In tech terms, you are the ‘client-side’ requesting data from a server, which is a full node on the Bitcoin network which has the entire blockchain downloaded. The node will then send data back to you which you can use to verify any interesting data.
To summarize, SPV does indeed make things ‘simpler,’ hence, “Simplified Payment Verification” because an SPV client does not need to do download over 100GB of data that is the blockchain. You can request information from a full node. A full node, on the other hand, does need to download the full-chain, but full-nodes are more private.
Why would someone opt to be a full node? Well, you don’t need to trust anyone else. Running a full node is much more private and allows you to maintain complete sovereignty. A downside to SPV is that you are requesting data from a random node on the network, which means you are sending them data. From tracking IPs, to tracking which transactions are interesting to you, and other metadata, a malicious node can figure out how much bitcoin you have, or even learn of your location. So, while you are verifying the data you receive and not trusting the data itself, you are trusting the person hosting the node to an extent. Nonetheless, SPV is a highly trusted method for lightweight clients and many fear what the solution will be moving forward in light of SPV being phased out.
The answer: Fastsync.
Introducing Fastsync: Powered by Blockset
We are developing our own technology, which will be mostly open-source, called Fastsync. This will not only work for Bitcoin’s blockchain, but other chains in the future, allowing us to add new chains to our wallet quickly, and also allows users’ wallets to sync nearly instantly. More broadly, this is one part of a new B2B effort we are launching called Blockset.
Here’s how it works. From a user perspective, it’s technically very similar to SPV, but instead of requesting data from a random node on the network, the wallet requests data from our hosted nodes. Just like with SPV, the client (your wallet) will verify the data it receives locally, so everything is still trustless. The added benefit here is that instead of trusting a random person hosting a node on the network, you are trusting us, who has the same aligned interests as you. We are a large wallet, that wants the industry to prosper. We will not be recording any requests from user wallets or data being sent. This is simply meant to act as a node you can trust and to make syncing faster than ever before.
Another technical reason this new method will be faster is that unlike with SPV, a filter is not being sent to a node, nor are you receiving back a filtered response. Instead, you ping our server and will receive a response faster, albeit with some more data such as block headers and Merkle trees.
In summary, Fastsync will be the solution in lieu of SPV. The overall method is the same and data verification is trustless, but the peer you are requesting data from, which is us, is more trustworthy than a random node on the network. Thus, not only is Fastsync a solution, but it’s an improvement over traditional SPV, greatly improving sync times.
Wait, What About Neutrino?
We are fully aware of Neutrino, and we are experimenting with it. The reality is that Neutrino is not in full production by anyone and is still in its experimentation phase. Additionally, our server assisted sync is something in-house that we can maintain and improve, without relying on the ever-changing methods that will continue to be introduced to the ecosystem.
The benefit of Neutrino is that compared to SPV, the client can trust the server-side even less. The filtering for interesting data is done on the client-side, as they request a full fingerprint of the blocks from the server. In essence, the increased privacy that Neutrino may offer is also taken advantage of in our server assisted sync while also knowing that you can trust the node being pinged.
To conclude, have no fear! We are taking advantage of SPV being phased out by allowing our improved solution to shine. Syncing is faster and safer than ever before.
Join in the conversations today:
Telegram : https://t.me/breadchat
Twitter : https://twitter.com/brdhq
Facebook : https://www.facebook.com/brdhq
YouTube : https://www.youtube.com/c/Breadbitcoinwallet
Instagram : https://www.instagram.com/brd_wallet/
General updates mailing list : https://breadapp.com/keep-me-updated/