b10c
b10c@b10c.me
npub1kyxq...c6vv
Bitcoin developer and observer
I've written a bit about a project I've been working on for a while:
peer-observer: A tool and infrastructure for monitoring the Bitcoin P2P network for attacks and anomalies


b10c
peer-observer: A tool and infrastructure for monitoring the Bitcoin P2P network for attacks and anomalies
Over the past few years, I’ve been working on monitoring tools for the Bitcoin network. One of these projects is peer-observer: A tool and infras...
I have too many other projects currently, but I think this could be a fun side-project for someone:
Can we spot public spy-Electrum servers run by Chainanalysis?

GitHub
Research and exploration: Can we spot public spy-Electrum servers run by Chainalysis? · Issue #11 · 0xB10C/project-ideas
My primary interest here is finding out how many Electrum servers are Chainalysis honey pots and sybils that collect your data, link your addresses...
I've persistent my notes on the May 2023 Bitcoin Core node DoS problems. These are background information for the disclosure from last year.
When non-ideal sorting, mass BRC-20 mints, and spy nodes caused a CPU Denial-of-Service on the Bitcoin network:


b10c
Notes on
In October 2024, the Bitcoin Core project disclosed a Denial-of-Service due to inv-to-send sets growing too large, which I authored, for Bitcoin Co...
In the current Bitcoin mining landscape with proxy lools like AntPool & friends, 6 mining pools produce and mine more than 95% of the block templates.
Bitcoin mining is highly centralized today.


b10c
Bitcoin Mining Centralization in 2025
This post explores Bitcoin Mining Centralization in 2025 by looking at the hashrate share of the current five biggest mining pools. It presents a M...
In the current Bitcoin mining landscape with proxy lools like AntPool & friends, 6 mining pools produce and mine more than 95% of the block templates.
Bitcoin mining is highly centralized today.


b10c
Bitcoin Mining Centralization in 2025
This post explores Bitcoin Mining Centralization in 2025 by looking at the hashrate share of the current five biggest mining pools. It presents a M...
I had a closer look at 15 OFAC-sanctioned transactions recently reported as missing by my miningpool-observer. While all transactions were picked up in the following blocks, it seems like F2Pool started to filter them (again).


b10c
Fifteen OFAC-sanctioned transactions missing from blocks
My miningpool-observer project aims to detect when Bitcoin mining pools are not mining transactions they could have been mining. Over the past few ...
Stats on compact block reconstructions
originally posted at 

Delving Bitcoin
Stats on compact block reconstructions
I’ve recently looked at compact block reconstruction statistics from the debug.log’s of my monitoring nodes. Particularly, at how many blocks r...
Stacker News
Stats on compact block reconstructions \ stacker news ~bitcoin
@0xB10C stacked 1291 sats posting https://delvingbitcoin.org/t/stats-on-compact-block-reconstructions/1052
Mining Pool Game Theory during Forks
originally posted at 
https://b10c.me/blog/014-mining-pool-behavior-during-forks/
Stacker News
Mining Pool Game Theory during Forks \ stacker news ~bitcoin
@0xB10C stacked 12.7k sats posting https://b10c.me/blog/014-mining-pool-game-theory-during-forks/ [4 comments]
Foundry won against AntPool's competing block by switching to their own block
Nothing crazy, just interesting to see this playing out.

X (formerly Twitter)
b10c (@0xB10C) on X
During today's fork at height 848477 between AntPool and Foundry, all pools besides Foundry mined on AntPool's block.
While Foundry briefly mined...
Who mined on which previous block during the fork at height 845626?


X (formerly Twitter)
b10c (@0xB10C) on X
Looking at the merkle branches that mining pools send to miners as part of stratum jobs, it's clear that the BTCcom pool, Binance pool, Poolin, EMC...
25 blocks to go, halving stream is live
Looking at the merkle branches that mining pools send to miners as part of stratum jobs, it's clear that the BTCcom pool, Binance pool, Poolin, EMCD, Rawpool, and possibly Braiins* have exactly the same template and custom transaction prioritization as AntPool.
Stratum v1 jobs include (parts of) the coinbase transaction and the merkle branches a miner needs to compute the merkle root. If all branches are equal across pools, the block template is exactly the same.
This is a smaller merkle-tree with the stratum job branches highlighted.
Here, branch0 is the txid of the first transaction in the block after the coinbase.
In the AntPool/Binance/BTCcom/.. template, it's a manually prioritized transaction paying 9.03 sat/vbyte
Many of the other pools didn't prioritize a transaction and included the highest feerate transaction
paying 301 sat/vbyte. ViaBTC prioritized another transaction and has a vastly different template.
This indicates that F2Pool currently is not using the AntPool templates, even if they share the the same custody provider. We know from multiple occasions that F2Pool has been building their own templates (https://b10c.me/o11, https://b10c.me/o9, https://b10c.me/o8)
Note that SigmaPool and SecPool both seem to share the same template (distinct from AntPools template). Two names, but probably one pool.
Some overlap in the first branches of distinct pools is expected as these branches consist of few (usually high feerate) transactions. For example, Ocean's "default" and "core" templates overlap up to branch3. At least the first 15 tx (2⁴ - 1) in the template are equal.
* similar to EMCD in the picture, Braiins sometimes differs from AntPool in the later branches of the template. This could indicate they're only helping with AntPools transaction accelerator and directly syncing with AntPools mempool, causing occasional differences in templates.
I've heard speculation about this all being liked to an FPPS partnership with AntPool/Bitmain.
Bitmain insures against bad pool luck but you have to use Bitmains templates/transaction prioritization and pay the mining reward to the insurer for later distribution.
Essentially a pool of pools and a lot of mining centralization.
Stratum v1 jobs include (parts of) the coinbase transaction and the merkle branches a miner needs to compute the merkle root. If all branches are equal across pools, the block template is exactly the same.
This is a smaller merkle-tree with the stratum job branches highlighted.
Here, branch0 is the txid of the first transaction in the block after the coinbase.
In the AntPool/Binance/BTCcom/.. template, it's a manually prioritized transaction paying 9.03 sat/vbyte 
The Mempool Open Source Project®
Explore the full Bitcoin ecosystem with The Mempool Open Source Project®. See the real-time status of your transactions, get network info, and more.

The Mempool Open Source Project®
Explore the full Bitcoin ecosystem with The Mempool Open Source Project®. See the real-time status of your transactions, get network info, and more.
Invalid F2Pool blocks 783426 and 784121 (April 2023)


b10c
Invalid F2Pool blocks 783426 and 784121 (April 2023)
My notes on the two bad-blk-sigops: too many sigops invalid blocks, 783426 and 784121, mined by F2Pool in April 2023.
Happy Birthday, LinkingLion!
A year ago I reported about LinkingLion, an entity that's presumably linking transactions to IP addresses and has been opening hundreds of connections per minute to my monitoring nodes.
An update: 

b10c
Update on LinkingLion: Reduced activity and a statement by LionLink Networks
This is an update on the LinkingLion entity, presumably linking Bitcoin transactions to IP addresses, I published about a year ago. Yesterday, Lion...
Update on LinkingLion: Reduced activity and a statement by LionLink Networks


b10c
Update on LinkingLion: Reduced activity and a statement by LionLink Networks
This is an update on the LinkingLion entity, presumably linking Bitcoin transactions to IP addresses, I published about a year ago. Yesterday, Lion...
In January, while investigating a misbehaving client on the Bitcoin P2P network, I found a vulnerability in ViaBTC's SPV mining code that allowed a remote attacker to waste their 60 EH/s hashrate by sending a single, crafted Bitcoin P2P message.


b10c
Vulnerability Disclosure: Wasting ViaBTC
In January, while investigating a misbehaving client on the Bitcoin P2P network, I found a vulnerability in ViaBTC’s, the fourth largest Bitcoin ...
ERROR: AcceptBlock: bad-witness-nonce-size…
You might have seen this in the debug log of your listening Bitcoin Core node. I dug into the origin and found that ViaBTC's mining server broadcasts mutated blocks without witness data:


b10c
ViaBTC
I noticed multiple ERROR: AcceptBlock: bad-witness-nonce-size errors in the debug log of my Bitcoin Core node. These indicate that a block my node ...
I took a look at non-standard transactions in the last 117k blocks. Here's an overview:


b10c
An overview of recent non-standard Bitcoin transactions
This blog post provides an overview of non-standard transactions that mining pools included in the last 117000 Bitcoin blocks.