With Breeze, regular Bitcoin users will experience what the 1MB block size limit really means the first time
I decided to write the lightest Bitcoin wallet that can provide the same level of privacy as Bitcoin Core, or more generally a full node. The vast majority of Bitcoin users don’t understand how using a full node as a personal wallet is crucial to preserve one’s privacy, Core doesn’t even have a built-in mixer, right?
Why am I doing this?
Before I’d get into anyting I’d note that I suspect a regular Bitcoin user doesn’t run a full node and cares a about his/her privacy. And this is why I think what I’m working on is so important, because it dissolves this discrepancy.
Now imagine a wallet that only uses one Bitcoin address. You send and receive money for years using only that address. How much privacy are you expecting this wallet to provide to you?
The issue is if you are not using a full node, blockchain surveillance companies and/or various third parties see almost the same when they look at your not full-node wallet, yes all your addresses are linked together. They achieve this by combining clustering strategies with network analysis. And a full node tackles the network analysis perfectly, because it doesn’t tell the network or a server what addresses and transactions it is interested in, it rather asks for all the transactions the network has and locally decides which transactions it is interested in, and no, bloom filtering sadly doesn’t make it better, either. Previously I conducted a comprehensive reasearch on the topic, what you can read here.
Full Block Downloading SPV Wallets
But we can do better than a full node, at least in the viewpoint of useability while not compromising privacy. We can build a wallet that downloads all the blocks, notes the transactions it is interested in, then throws away the rest. The obvious bottleneck of a wallet like this is the block size. In this article I will examine how performant, convenient this wallet can ideally be with the current maximum block size, without Segregated Witness, which further degrades it.
But before that I’d like to recap the current developments on these kind of wallets, since none are in existence today.
On the one hand Jonas Schnelli, is working on adding a full block SPV functionality to Bitcoin Core.
On the other hand I am working on such a wallet with the Stratis developers to create the base for TumbleBit, which is a mixer that cannot deanonymize you or steal your coins.
Today if people would be participating in a TumbleBit mix without using a full node, that not only worsen their own privacy, but their full node using peers’ too, because the anonymity set of a mix worsen with every peer that can potentially be deanonymized. Note: I am talking about the Classic Mixer mode of TumbleBit, tehere are more.
You can read more about Breeze here and about TumbleBit here.
Ideal performance of Breeze
Brace yourself, a very sloppy calculation is coming!
Initial syncronization takes as long as any SPV wallet: a few minutes. This is for downloading the headers. The wallet starts to download full blocks from the creation of the wallet, so that means 1MB every 10 minutes.
What happens if you don’t turn on your wallet for one day? How long the syncing will take ideally?
An average Bitcoin user’s internet speed might be around 4–8Mbps and there are 144 blocks a day.
This means this wallet should sync within 1 minute. A week of not using it would result 7 minutes of waiting.
Both my calculation and the future viability of this concept is debateable, however this is the only compromise if you are not able to use a full node as your personal wallet, but not willing to give up your privacy.