I’m b10c

I work fulltime on open-source Bitcoin projects. I’m interesting in Bitcoin data and have been monitoring the Bitcoin network for a few years now with the goal to feed insights back into Bitcoin development. I run mempool.observer, the Bitcoin Transaction Monitor, transactionfee.info, the miningpool.observer, fork.observer, and have worked on many other projects over the past years.

I use the GPG key with the fingerprint 982A193E3CE0EED535E09023188CBB2648416AD5. The public key can be found here and on the ususal key servers. I’m currently only avaliable for short-term Bitcoin freelance and consulting projects. My main focus is on open-source projects.

Recent articles

Image for Block Template Similarities between Mining Pools

September 16, 2024

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 …

Image for Mining Pool Behavior during Forks

July 15, 2024

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.

Image for Invalid F2Pool blocks 783426 and 784121 (April 2023)

April 2, 2024

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.

Image for Update on LinkingLion: Reduced activity and a statement by LionLink Networks

March 28, 2024

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.

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

March 20, 2024

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 …

Image for ViaBTC's mutated blocks without witness data

March 18, 2024

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 …

Image for An overview of recent non-standard Bitcoin transactions

January 29, 2024

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.

Image for CPU usage of Bitcoin Core peers

November 29, 2023

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 …

Image for Six OFAC-sanctioned transactions missing

November 20, 2023

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 …

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

October 7, 2023

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.

Image for Invalid MARAPool block 809478

September 28, 2023

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.

Image for GitHub Metadata Backup and Mirror

August 10, 2023

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 …

Image for LinkingLion: An entity linking Bitcoin transactions to IPs?

March 28, 2023

LinkingLion: An entity linking Bitcoin transactions to IPs?

This post describes and discusses the behavior of an entity I call LinkingLion. The entity opens connections to many Bitcoin nodes using four IP address ranges and listens to transaction announcements. This might allow the entity to link newly broadcast transactions to node IP addresses. The entity …

Image for 2022 Review and 2023 Outlook

January 17, 2023

2022 Review and 2023 Outlook

In this post, I revisit my plans and projects for 2022, and give an outlook for 2023. I plan to continue my current Bitcoin network monitoring efforts in 2023. I briefly touch on potentially tight open-source developer funding in 2023.

Image for Inbound Connection Flooder Down (LinkingLion)

November 16, 2022

Inbound Connection Flooder Down (LinkingLion)

Over the past few months, I’ve repeatedly observed very short-lived P2P connections with fake user agents being made to my Bitcoin Core node in a high succession. This morning around 7:00 am UTC, these abruptly stopped.

Image for Are you a real Bitcoiner?

September 18, 2022

Are you a real Bitcoiner?

It’s well known that you are only a real Bitcoiner if you are a carnivore, eat red meat at least three times a week but never consume seed oils, lift heavy weights, are straight, white, unvaccinated, believe in the Christian god, got into Bitcoin before 2015, are a maximalist, stack sats …

Image for P2TR spending transactions missing from F2Pool and AntPool blocks (2021)

August 24, 2022

P2TR spending transactions missing from F2Pool and AntPool blocks (2021)

My miningpool-observer project aims to detect when mining pools don’t mine transactions they could have mined. Right after taproot activation, it caught that F2Pool and AntPool didn’t mine P2TR (Pay-to-Taproot) spending transactions. This post is a write-up of this observation.

Image for bitcoin++ workshop: Tracing Bitcoin Core v23.0

June 8, 2022

bitcoin++ workshop: Tracing Bitcoin Core v23.0

These are the tasks of my “Tracing Bitcoin Core v23.0” workshop for bitcoin++ 2022. They might not make much sense on their own as participants used a pre-setup VPS. The workshop slides can be found here. This branch was used during the workshop.

Image for Extracting the Private Key from Schnorr Signatures that reuse a Nonce

January 17, 2022

Extracting the Private Key from Schnorr Signatures that reuse a Nonce

Elliott (aka @robot__dreams) posted a Bitcoin-flavored cryptography challenge on Twitter. The goal is to extract the private key from two Schnorr signatures that reuse a nonce. I’ve recently reviewed and merged Kalle Rosenbaum’s cross-post of his Schnorr Basics post to bitcoin-dev.blog. …

Image for Monitoring Taproot Activation

November 14, 2021

Monitoring Taproot Activation

In November 2021, the Taproot soft-fork activated on the Bitcoin network. I streamed my activation monitoring and helped pools not mining P2TR spends to fix their issues.

Image for Userspace, Statically Defined Tracing support for Bitcoin Core

August 30, 2021

Userspace, Statically Defined Tracing support for Bitcoin Core

This report updates on what 0xB10C, Coinbase Crypto Community Fund grant recipient, has been working on over the first half of his year-long Bitcoin development grant. This specifically covers his work on Userspace, Statically Defined Tracing support for Bitcoin Core. This report was published on …

Image for Contribution: Bitcoin Core Project

July 28, 2021

Contribution: Bitcoin Core Project

I list my contributions to the Bitcoin Core project and detail their context and background. Of course, not all contributions are worth mentioning here.

Image for On anyone-can-spend Pay-to-Taproot outputs before activation

July 23, 2021

On anyone-can-spend Pay-to-Taproot outputs before activation

While working on taproot support for transactionfee.info, it became apparent that there already exist a few Pay-to-Taproot (P2TR) outputs on mainnet. Anyone can spend these outputs, but they are non-standard and thus not relayed between nodes in the Bitcoin peer-to-peer network. However, a mining …

Image for Summer of Bitcoin 2021

June 28, 2021

Summer of Bitcoin 2021

This is a placeholder for the Summer of Bitcoin mentoring I did. I plan to fill this in, once I get the time to do so.

Image for bitcoind-observer

June 27, 2021

bitcoind-observer

My experimental bitcoind-observer tool is a Bitcoin Core Prometheus metrics exporter utilizing and demonstrating the newly added tracepoints in Bitcoin Core.

Image for miningpool-observer: Observing Bitcoin Mining Pools

May 6, 2021

miningpool-observer: Observing Bitcoin Mining Pools

My miningpool-observer project aims to bring transparency to mining pool transaction selection. The tool can detect missing and extra transactions in blocks. One goal is to detect censorship by mining pools.

Image for Evolution of the signature size in Bitcoin

November 10, 2020

Evolution of the signature size in Bitcoin

Digital signatures are an essential building block of the Bitcoin protocol and account for a large part of the data stored on the blockchain. We detail how the size of the encoded ECDSA signatures reduced multiple times over the last years and how the proposed Schnorr signature compares to the …

Image for Following the Blockchain.com feerate recommendations

July 13, 2020

Following the Blockchain.com feerate recommendations

Transactions sent with Blockchain.com wallets make up for about a third of all Bitcoin transactions. A methodology to identify these transactions is described and used. Insights about the wallet-usage are derived from the resulting dataset. The privacy implications and possible improvements are …

Image for The daily BitMEX broadcast at 13:08 UTC

May 4, 2020

The daily BitMEX broadcast at 13:08 UTC

At around 13:00 UTC every day, BitMEX, a cryptocurrency exchange and derivative trading platform, broadcasts multiple megabytes of large transactions into the Bitcoin network. This affects the transaction fees paid during European afternoons and US business hours. The transaction size could be …

Image for The stair-pattern in time-locked Bitcoin transactions

April 27, 2020

The stair-pattern in time-locked Bitcoin transactions

Some of the regularly used Bitcoin wallets, for example, the Bitcoin Core wallet and the Electrum Bitcoin Wallet, set the locktime of newly constructed transactions to the current block height. This is as an anti-fee-sniping measure and visible as a stair-like pattern when plotting time-locked …

Image for transactionfee.info (2020 version)

January 31, 2020

transactionfee.info (2020 version)

The website transactionfee.info shows Bitcoin protocol layer statistics. This includes statistics about Bitcoin transactions, their in- and outputs, about blocks and Bitcoin scripts. The project is a joint effort with Bitrefill CEO @ziggamon.

Image for Contribution: Colab version of the Optech Schnorr / Taproot Workshop

November 27, 2019

Contribution: Colab version of the Optech Schnorr / Taproot Workshop

Bitcoin Optech created a workshop explaining the Schnorr and Taproot upgrade to engineers. However, users needed to compile a patched version of Bitcoin Core with Taproot support and download and set up the Jupyter notebooks.

Image for Frequently Asked Questions: Bitcoin Transaction Monitor

October 10, 2019

Frequently Asked Questions: Bitcoin Transaction Monitor

The Bitcoin Transaction Monitor provides deeper insights into the usage of the Bitcoin network by showing transactions by time and feerate. This post answers frequently asked questions about the Bitcoin Transaction Monitor itself.

Image for Bitcoin Transaction Monitor

October 10, 2019

Bitcoin Transaction Monitor

Whenever you, an exchange or somebody else sends a Bitcoin transaction, it gets broadcast to all nodes in the Bitcoin network. Each broadcast transaction is represented by a dot on the Bitcoin Transaction Monitor scatterplot. The transactions are arranged by the time of arrival at my Bitcoin node …

Image for rawtx library

September 28, 2019

rawtx library

The rawtx Golang module helps you (and me) to answer questions about raw Bitcoin transactions, their inputs, outputs, and scripts. I use the rawtx package for example in my Bitcoin Transaction Monitor and transactionfee.info projects.

Image for The Incomplete History of Bitcoin Development

August 4, 2019

The Incomplete History of Bitcoin Development

To fully understand the rationale behind the current state of Bitcoin development, knowledge about historical events is essential. This blog post highlights selected historical events, software releases and bug fixes before and after Satoshi left the project. It additionally contains a section about …

Image for Timeline: Historical events in the development of Bitcoin

August 4, 2019

Timeline: Historical events in the development of Bitcoin

To fully understand the rationale behind the current state of Bitcoin development, knowledge about historical events is essential. I created an open-source project containing the data for a timeline of historical developments in Bitcoin. Most data points are adopted from a talk John Newbery gave on …

Image for A List of Public Bitcoin Feerate Estimation APIs

June 29, 2019

A List of Public Bitcoin Feerate Estimation APIs

My search for a list of public Bitcoin feerate estimation APIs ended without any real results. Jameson Lopp has a section on feerate estimators on his bitcoin.page and Antoine Le Calvez’s dashboard txstats.com provides a visualization of different estimation APIs. But that is not what I was …

Image for mempool.observer (2019 version)

June 1, 2019

mempool.observer (2019 version)

The mempool.observer website displays visualizations about my Bitcoin mempool. For example, a visualization of my current mempool and the historical mempool of my node is shown. The idea is to provide information about the current mempool state to a Bitcoin user with a seemingly stuck and …

Image for mempool-dat

May 16, 2019

mempool-dat

A Golang package that can deserialize Bitcoin Core’s mempool.dat files. This is a toy project. I developed this to learn more about Golang and the mempool.dat file format by Bitcoin Core.

Image for c-lightning plugin: csvexportpays

March 2, 2019

c-lightning plugin: csvexportpays

A toy plugin for c-lightning to export all payments made with a c-lightning node to a .csv file. I build this a few days after Blockstream released the plugin support in c-lightning v0.7 to showcase how simple it is to build plugins.

Image for lnplays.com

June 23, 2018

lnplays.com

Konstantin Nick (@sputn1ck) and I build lnplays.com for the Lighting Hackday in June 2018. You could play Pokémon via the Lightning Network build. Pressing the buttons of the GameBoy to move the player and to interact with the world would generate a lightning invoice. Paying that invoice would send …

Image for Plotting the Bitcoin Feerate Distribution

March 18, 2018

Plotting the Bitcoin Feerate Distribution

How did the median Bitcoin feerate evolve from 2013 to 2015? When were the feerate spikes in 2017? Visualizing the Bitcoin feerate distribution per block was on my todo list since I’ve started working on the first version of my mempool.observer project in mid-2017. But acquiring the data …

Image for transactionfee.info (2018 version)

January 22, 2018

transactionfee.info (2018 version)

We build transactionfee.info in 2018 to raise awareness about the inefficient use of block space by exchanges, services, and wallets. The project is a joint effort with Bitrefill CEO @ziggamon.

Image for The 300 MB default maxmempool Problem

December 18, 2017

The 300 MB default maxmempool Problem

Unconfirmed transactions are quite a hassle for bitcoin users. I recently came across an interesting problem which is not the usual “my transaction is stuck” problem.

Image for mempool.observer (2017 version)

October 7, 2017

mempool.observer (2017 version)

The mempool.observer website displays statistics about my Bitcoin mempool. This covers the 2017 version which I iterated on in 2019.