RSSAmplifier

Blog

b10c's blog: Bitcoin Developer on b10c's blog

Recent content in b10c's blog: Bitcoin Developer on b10c's blog

b10c.meRSS feed ↗109 posts

Latest posts

BIP-110 monitoring stream: mandatory signaling start

On August 8th, 2026, Bitcoin block 961632 was mined. This marked the start of the “mandatory signaling” for BIP-110 , which meant all blocks not signaling on version bit 4 would be rejected by a node implementing BIP-110. This resulted in a fork, which I livestreamed by showing a modified version of my fork.observer . While it wasn’t clear if there would be blocks found on the…

OpenSats Work-Log 10

This is a copy of the 10th work-log I sent to OpenSats for my LTS grant . Disclaimer : Some information that is not (or not yet) meant to be published may have been redacted. What did you work on? In May, June, July of 2026 I’ve worked on peer-observer and it’s infrastructure to collect more data that will be helpful in analyzing network problems in the future. This includes, for…

Matching Hashes: Reproducing the Guix-built Bitcoin Core release binary with Nix

Earlier this week, I produced a Nix-built bitcoind binary for Bitcoin Core v31.0 whose hash exactly matches the official Guix-built x86_64-pc-linux-gnu release binary. The result came out of a three year old side project, with a difficult goal: Can a binary built with Nix be made bit-for-bit identical to one produced by Bitcoin Core’s Guix reproducible build system? Update 2026-06-15: While…

Bitcoin Optech Newsletter #406 Recap Podcast

I joined Murch, Gustavo and Mike on the Bitcoin Optech Newsletter #406 Recap Podcast to talk about TCP holepunching and peer-observer P2P monitoring tools, which both were mentioned in the Optech Newsletter #406 . Bitcoin Optech Newsletter #406 Recap Podcast

OpenSats Work-Log 9

This is a copy of the 9th work-log I sent to OpenSats for my LTS grant . Disclaimer : Some information that is not (or not yet) meant to be published may have been redacted. What did you work on? In February, March, and April of 2026, I flew to Brazil to mentor upcoming Vinteum and B4OS devs as well as to give multiple talks at btc++, worked on peer-observer by writing code and reviewing code,…

BIP-54: Block propagation and validation duration during slow-to-validate blocks on Signet

During last week’s demonstration of slow blocks on Signet , I ran a custom P2P client that connected to all ~190 listening Signet nodes on IPv4 and Tor. The goal was to measure block propagation speed through the network as well as block validation speed on a per node basis . Originally posted on bnoc.xyz . The results show that block propagation was significantly impacted as the nodes need to…

BIP-54 demo stream: Slow block validation on Signet

In April 2026, Antoine Poinsot and Anthony Towns publicly demonstrated a few slow-to-validate blocks on the Signet test network. These blocks are currently valid, but would be invalid under the BIP-54 Consensus Cleanup rules. I covered this event by streaming the behavior of a Bitcoin Core (affected) and a Bitcoin Inquisition (unaffected) node. I used a signet setup of my peer-observer tooling and…

Hackathon Finalist: localprobe

Presented my hackathon project localprobe in the finals.

Panel: Exploiting Bitcoin

Discussion on the landscape of exploiting bitcoin with Matthew Vuk, Matthew Zipkin, Niklas Gögge, Sjors Provoost, and 0xB10C.

localprobe: detect Bitcoin nodes running on the same machine as your (Firefox) browser

You’re running a Bitcoin node on the same machine as your (Firefox) web browser? Yeah, I and everybody else can tell… localprobe is a small JavaScript snippet I built at the btc++ Floripa 2026 exploits hackathon , where it won 2nd place. It detects whether you are running a Bitcoin node on the same machine as your Firefox browser and alerts you if so. NOTE: Since August 2026 and…

Recap: A network wide DoS bug in Bitcoin Core

I did a recap on the a network wide DoS bug and highlighted a metrics that we are monitoring now to catch similar bugs in the future. Slides (Google Slides)

Monitoring Workshop at Vinteum BDL 2026

I held a four hour long monitoring workshop for the current Vinteum Bitcoin Developer Launchpad cohort. I talked about my experience working on open-source Bitcoin projects over the last few years and I went over my Map of Bitcoin Monitoring I created as an overview for this workshop. Slides (Google Slides) Map of Bitcoin Monitoring

OpenSats Work-Log 8

This is a copy of the 8th work-log I sent to OpenSats for my LTS grant . Disclaimer : Some information that is not (or not yet) meant to be published may have been redacted. What did you work on? In November and December 2025, and January of 2026, I primarily focused on building out peer-observer tooling and infrastructure, but also worked on mainnet-observer, posted to the Bitcoin Network…

Bitcoin Network Monitoring with b10c: SLP707

In this episode, Stephan Livera and I discusses my work in the Bitcoin ecosystem, focusing on the importance of censorship resistance, the role of mining pools, and the implications of OFAC sanctions on Bitcoin transactions. I introduce my peer-observer project aimed at monitoring the Bitcoin P2P network for anomalies and attacks, and highlight the need for a collaborative approach to Bitcoin…

Monitoring Bitcoin’s P2P network: Insights from the peer-observer Project

I presented about “Monitoring Bitcoin’s P2P network: Insights from the peer-observer Project” at the Chaincode Labs Bitcoin Research Day 2025 . Slides (Google Docs)

OpenSats Work-Log 7

This is a copy of the 7th work-log I sent to OpenSats for my LTS grant . Disclaimer : Some information that is not (or not yet) meant to be published may have been redacted. How did you spend your time? Publications & Talks Continued my “Stats on compact block reconstructions”: thread by posting an update and some of the current work:…

Support from LocalhostResearch for peer-observer

Localhost Research supported my peer-observer project by sponsoring three servers for a demo instance, which can be found on demo.peer.observer . Compared to the public.peer.observer instance, this allows everyone to explore the metrics and data extracted from two Bitcoin Core nodes, while no information about the “production” honey pot nodes is leaked. The full NixOS infrastructure is…

OpenSats Work-Log 6

This is a copy of the 6th work-log I sent to OpenSats for my LTS grant . Disclaimer : Some information that is not (or not yet) meant to be published may have been redacted. How did you spend your time? In May, June, and July of 2025 I finished mainnet-observer up and launched it, gave a talk on my peer-observer project at the Prague dev/hack/day 2025 and published a blog post about it, and more.…

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 infrastructure for monitoring the Bitcoin P2P network for attacks and anomalies. This post describes the motivation for starting yet another Bitcoin network observer. It details how the tool works, what my honeypot infrastructure looks like, and finishes…

Notes on 'DoS due to inv-to-send sets growing too large' from May 2023

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 Core versions before v25.0. I have a few notes and screenshots from my investigation back then that I want to persist here. In early May 2023, my monitoring infrastructure noticed this bug affecting mainnet nodes, which allowed me to pinpoint where the…

peer-observer: A tool and infrastructure for monitoring the Bitcoin P2P network for attacks and anomalies

I presented about my peer-observer project during the BTC Prague dev/hack/day 2025. Slides (Google Docs)

OpenSats Work-Log 5

This is a copy of the 5th work-log I sent to OpenSats for my LTS grant . Disclaimer : Some information that is not (or not yet) meant to be published may have been redacted. How did you spend your time? Publications & Talks Continued my “Stats on compact block reconstructions”: thread by posting an update and some of the current work:…

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 Mining Centralization Index and updates it with the assumed proxy pooling by AntPool & friends. It shows that Bitcoin mining is highly centralized today, with only six pools mining more than 95% of the blocks. In the current Bitcoin mining landscape,…

Invalid mining jobs by AntPool & friends during forks

Looking deeper into @boerst’s recent observation about invalid mining jobs by AntPool & friends to discuss his hypothesis about “selfish mining” and “glitchy template code”. I conclude that it’s probably a bug in AntPool’s coinbase creation code and agree with @boerst’s conclusion that this is another good data point for proxy pooling of…

OpenSats Work-Log 4

This is a copy of the 4th work-log I sent to OpenSats for my LTS grant . Disclaimer : Some information that is not (or not yet) meant to be published may have been redacted. What did you work on? Publications My mininpool-observer project detected 15 OFAC sanctioned transactions missing from blocks. After analyzing them to rule out false-positives, I concluded that F2Pool is filtering transactions…

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 weeks, it detected fifteen missing transactions spending from OFAC-sanctioned addresses. This post examines whether these transactions were filtered intentionally or if there are other possible explanations for these transactions to be missing from…

OpenSats Work-Log 3

This is a copy of the 3rd work-log I sent to OpenSats for my LTS grant . Disclaimer : Some information that is not (or not yet) meant to be published may have been redacted. How did you spend your time? Publications & Talks Block Template Similarities between Mining Pools : Using the Stratum jobs I’ve collected with my stratum-observer project, I was able to show that the block templates…

Episode 6: Discussing Pre-25.0 Bitcoin Core Vulnerability Disclosures

I joined Gloria and Niklas on the brink.dev podcast to talk about the recently disclosed Bitcoin Core pre-25.0 vulnerabilities. Episode 6: Discussing Pre-25.0 Bitcoin Core Vulnerability Disclosures

Block Template Similarities between Mining Pools

Different mining pools sending out the same or a similar block template to miners is an indicator for proxy pooling. Knowing about proxy pools is important when discussing mining pool centralization. To find similarities between mining pool block templates, I compare the Merkle branches pools sent in the stratum jobs and calculate a similarity score. This shows pools with similar templates and…

Monitoring Bitcoin P2P network attacks and anomalies with eBPF and USDT tracepoints

I spoke at the eBPF Summit 2024 about how I’m using eBPF and the USDT tracepoints in Bitcoin Core to extract P2P network events to use them for, for example, anomaly detection. Recording (YouTube)

Bitcoin Core Development

At the “Bitcoin Burg Academy” I talked about Bitcoin Core development to an non-technical audience. Often when I talk to non-technical Bitcoiners, they don’t really know much about the Bitcoin Core open-source software project but are very interested to learn more about it. In this talk, I covered the basics starting from the beginning with Satoshi, to the early years without…

OpenSats Work-Log 2

This is a copy of the 2nd work-log I sent to OpenSats for my LTS grant . Disclaimer : Some information that is not (or not yet) meant to be published may have been redacted. How did you spend your time? Publications I’ve been looking at mining pool behavior during forks while building out the stratum-observer stratum job collecting (see below). I regularly covered forks on mainnet with tweets…

Mining Pool Behavior during Forks

I have recently been looking at mining pool behavior during forks. Which block does a pool choose to mine on during a fork? Do they behave rationally and mine on their own block? In this post, I’ll detail the mining pool behavior during forks and give some recent examples of pool behavior. I’ve also published a short-form video 1 on this topic on Twitter and YouTube . In Bitcoin, a…

OpenSats Work-Log 1

This is a copy of the 1st work-log I sent to OpenSats for my LTS grant . Disclaimer : Some information that is not (or not yet) meant to be published may have been redacted. How did you spend your time? Publications ViaBTC’s mutated blocks without witness data : Last year, errors like ERROR: AcceptBlock: bad-witness-nonce-size in the Bitcoin Core debug.log caused confusion. As these were…

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. On April 1st, 2023, F2Pool mined an invalid block at height 783426. Bitcoin Core nodes rejected the block with the reason bad-blk-sigops and the note too many sigops . On April 6th, 2023, F2Pool mined another bad-blk-sigops block at height 784121. Mining an invalid block with a…

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, LionLink Networks AS issued a statement on their non-affiliation with the LinkingLion entity and on the same day, LinkingLion activity significantly dropped. Exactly a year ago, I published about LinkingLion , an entity that’s presumably linking…

Vulnerability Disclosure: Wasting ViaBTC's 60 EH/s hashrate by sending a P2P message

In January, while investigating a misbehaving client on the Bitcoin P2P network , I found a vulnerability in ViaBTC’s, the fourth largest Bitcoin mining pool, SPV mining code that allowed a remote attacker to waste ViaBTC’s 60 EH/s hashrate by sending a single, crafted Bitcoin P2P message. I responsibly disclosed this to ViaBTC, and they awarded a bug bounty of 2000 USDT. Improper…

ViaBTC's mutated blocks without witness data

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 received is invalid and not accepted. It turned out that these are ViaBTC’s blocks, broadcast by their mining pool software, where transaction witness data is missing. In this post, I’ve written down my notes on this observation. Some…

Long-Term-Support Grant from OpenSats for 2024 and 2025

OpenSats supported my work on Bitcoin in 2024 and 2025 with a Long-Term-Support grant. Annoucement

Spiral Work-Log Q4 2023

This is a copy of the Q4 2023 work-log I sent to Spiral for my grant . Disclaimer : Some information that is not (or not yet) meant to be published may have been redacted. In Q4 of 2023 and January 2024, among other things, I’ve worked on my fork-observer, the miningpool-observer and the peer-observer tools. I’ve also maintained my bitcoin-data related repositories, worked on macOS and FreeBSD…

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. Usually, before a Bitcoin transaction is included in the blockchain, it is relayed between nodes on the Bitcoin P2P network and cached in their mempools. To mitigate some transaction relay Denial-of-Service attacks, the Bitcoin Core node limits what transactions can be…

CPU usage of Bitcoin Core peers

To help improve partition resistance, a medium-term goal is to increase the number block relay connections a Bitcoin Core node has (see #28462 ). However, how much resources do block-relay connections use? Surely they are cheaper than full-relay connections? This blog-post focuses on the CPU usage of Bitcoin Core peers. I’ve looked into this for CPU usage of peers - delvingbitcoin.org and PR…

Six OFAC-sanctioned transactions missing

My project, miningpool-observer , aims to detect when Bitcoin mining pools are not mining transactions they could have been mining. Over the past few weeks, it detected six missing transactions spending from OFAC-sanctioned addresses. This post examines whether these transactions were intentionally filtered because they spent from OFAC-sanctioned addresses or if there are other possible…

FFM BTC Meetup: New features in Bitcoin Core v26.0

The upcoming Bitcoin Core v26.0 release will include new experimental features like AssumeUTXO and P2P transport v2 . At the Frankfurt Bitcoin Meetup (German) , I explained the Bitcoin Core development process, that for this release cycle contributors focused their review on specific projects, and when to expect the new release (after testing, where everyone can participate!). Then dove into the…

Spiral Work-Log Q3 2023

This is a copy of the Q3 2023 work-log I sent to Spiral for my grant . Disclaimer : Some information that is not (or not yet) meant to be published may have been redacted. In Q3, I finished my GitHub repository backup and mirroring project, helped with the fork-observer integration in Warnet, continued my work on the MIT DCI peer-observer setup, attended CoreDev and the BTC Azores unconference,…

bitcoin++23 Workshop: Writing a NixOS Module for your_app

Instructions for my Writing a NixOS Module for your_app workshop. Slides can be found here . The workshop tries to convey the basics of writing a NixOS module. In the end, participants should be able to write a basic NixOS module including a systemd service for their project, be able to define and declare NixOS options, and be familiar with basic systemd hardening and running containers on NixOS.…

Workshop: Writing a NixOS module for YOUR_APP

I held a workshop about “Writing a NixOS module for YOUR_APP”. Workshop Slides (reveal-js) Stream (360p)

Invalid MARAPool block 809478

Notes on the invalid Bitcoin mainnet block at height 809478 mined by experimental, in-house MARAPool mining pool software on September 27, 2023. On September 26, 2023, I noticed that a testnet node attached to a fork-observer instance reported frequent invalid blocks. The nodes debug.log showed multiple messages similar to the following: ERROR: ConnectBlock: Consensus::CheckTxInputs: aca785e8..,…

Support from MIT DCI for peer-observer

The MIT DCI supported my peer-observer project with six monitoring Bitcoin nodes for 1.5 years.

GitHub Metadata Backup and Mirror

This year, the Bitcoin Core project will have its 13th anniversary being hosted on GitHub. 13 years of issues and pull requests with critical design decisions and nuanced discussions hosted with a US-based company known for shutting down open-source software repositories when needing to follow DMCA and OFAC requests. While the medium-to-longterm plan is to move off of GitHub, I’ve written a…