Tuesday, September 15, 2026

Creating liberating content

Bitcoin Core v32 RC1:...

Bitcoin Core v32.0rc1 has turned the Sept. 14–Oct. 10 window into a concentrated...

AI Could Be Bitcoin’s...

Artificial intelligence may turn out to be an unexpected driver of...

Japan bond demand holds...

Japan’s latest 20-year government bond auction signaled a higher price for long-term borrowing,...

Inflation Outlook, Bond Stress...

US debt-to-GDP has pushed past 120%, and Jack Mallers...

small data, hidden payment risk

Silent Payments promise a reusable Bitcoin address without exposing an obvious chain of payments to that address. A sender uses the recipient’s public information to derive a fresh Taproot destination, and the recipient’s wallet later scans eligible transactions to find the output that belongs to it.

That receiving scan has been the difficult part for phones. A September measurement project reports that BlindBit Oracle v2’s complete scanning feed would require about 8 MB per day near the upper end of its dataset. The number suggests mobile bandwidth may be manageable. It also highlights a separate risk: a light wallet depends on an indexer to deliver complete scanning data, and an omitted entry can leave a real payment undiscovered.

The emerging tradeoff is therefore less about raw download size than about what a wallet can verify. The data can fit through a phone connection. The wallet still needs a reliable way to know that every relevant piece arrived.

What the measurements establish

The project processed every Bitcoin block from height 709,656 through 965,089, an inclusive span of 255,434 blocks from shortly after Taproot activation to September 2026. Its per-block CSV contains the same number of rows, with those exact height boundaries.

Across that history, the complete BlindBit v2 scanning payload totaled 15,079,946,729 bytes. The project reports that as 15.08 GB, averaging 59.0 KB per block. That full-history total describes a restore across the measured range.

The daily number answers a different question. Using the average from heights 900,000 through 965,089 and an assumed 144 blocks per day, the project calculates about 8.0 MB for a wallet following the chain near the dataset’s upper end. It does not describe the initial historical download.

The repository was produced by one independent operator. Its data and scripts are public, and the aggregate row count and payload totals can be checked from the CSV, but a second operator has yet to publish a full rerun. The result speaks to bandwidth volume; it does not measure phone battery use, processor load, storage behavior or delivery latency.

Read More:  Stablecoin demand starts to fade as Visa and Stripe build for the next boom

The project also estimates a lighter filter route. About 0.94 GB of modeled Taproot-only filters plus roughly 6.2 GB of raw tweaks yields a 7.14 GB subtotal. The 15.08 GB complete feed is about 2.1 times that subtotal. The filter route then adds a full-block download for every match, including false positives, so its realized traffic varies by wallet activity and match rate.

Route Comparison basis Additional traffic
BlindBit v2 complete feed 15.08 GB across the measured history; about 8 MB per day in the recent-era estimate No matched-block fetch during scanning
Modeled Taproot filter plus tweaks About 7.14 GB across the measured history Full block for every filter match

The filter component is a model built from exact per-block item counts. Its sizing formula was checked against 21 real filter encodings and landed within about 0.5%, according to the project. A Taproot-only Silent Payments filter has yet to be deployed.

Infographic comparing a 15.08 GB complete Silent Payments scanning feed with a 7.14 GB filter-plus-tweaks subtotal, then showing how an omitted tweak can hide a payment until an earlier-height rescan with an honest source.

How an indexer can make a payment invisible

BIP-352 defines the reusable address and the receiver’s scan. For each eligible transaction, the wallet combines its private scan key with public data derived from the transaction’s inputs. It uses the result to generate candidate output keys and checks whether one appears in the transaction.