I'll be briefing the local meetup on some of the soft simulation results!
🔔 This profile hasn't been claimed yet. If this is your Nostr profile, you can claim it.
Edit
I'll be briefing the local meetup on some of the soft simulation results!
One thing the simulation makes viscerally clear: a contested fork doesn't resolve gradually. It stalls... then it doesn't. Here's what the timeline actually looks like across 2,694 scenarios. After the split, two chains run in parallel and when it breaks, it breaks fast. In the cascade scenarios, the decisive hashrate shift often happens within the first 500 blocks.. Profit-seeking pools drift toward whichever fork the price signal favors. Ideologically-committed pools hold their ground. For a stretch, it looks like a standoff, both chains viable, neither winning cleanly. What the chart doesn't show is what breaks the standoff. One chain accumulates 2016 blocks first. Its difficulty adjusts sharply down, its blocks become far cheaper to mine. The profitability math flips for every pool still on the other side. Resolution happens fast. The race that matters in a contested soft fork isn't block-by-block. It's who reaches the difficulty adjustment first. That single event is a cascade trigger and it's why most observable action happens in a compressed window once that threshold is crossed. Three outcome shapes visible in the data: a clean win for one side, a cascade win for the other, and a contested equilibrium where neither chain breaks through. General findings and useful frame for any contested fork. Full picture at UW BRI, July 13–17. #Bitcoin #softfork #UWBRI
A few people asked how the fork simulation actually works. The modeling choices matter, and I'd rather they be on the table before I start sharing results. Here's the short version... A contested soft fork (one where a chain split occurs because there isn't agreement in the network) is a decision problem for the entities who run Bitcoin's infrastructure. So the model represents them as three classes of actor, using the stakeholder taxonomy from the Blockchain Consensus Analysis Protocol (BCAP) as a starting point. https://github.com/bitcoin-cap/bcap Economic nodes: exchanges, institutional custodians, payment processors, merchants: weighted by the BTC they hold or the volume they transact. Mining pools: weighted by hashrate, each with its own ideology and tolerance for losses. User nodes: retail operators running their own full nodes with some amount of custodied Bitcoin and option to have hashrate representing solo miners. Each actor re-evaluates the same way: first the rational choice (which fork is worth more / which do I hold), then ideology (am I committed enough to eat a loss), then inertia (is the gap big enough to justify moving). One pipeline, applied independently by every actor. Then we vary what we can't know in advance, how adoption splits, how committed the pools are, how much conviction each actor has across thousands of scenarios on real Bitcoind nodes using warnet and watch what the network does. https://github.com/bitcoin-dev-project/warnet Results coming this week. Full picture at UW BRI, July 13–17. #softfork #Bitcoin #UWBRI
A finding from the simulation that requires honest framing: User nodes are non-pivotal in fork outcomes under the model, even when tested with majority Bitcoin custody. But understanding why reveals something precise about how UASF actually works. The model captures price-signal-driven fork adoption. Per-entity market weight matters more than aggregate custody. Exchanges and custodians individually move markets. Individual node operators don't, even in aggregate, their price oracle influence is marginal. Figure caption: "SP_user score across 598 scenarios values near zero indicate user nodes are structurally far from being pivotal under any tested parameter combination." We tested this explicitly: even at UCF=0.65... user nodes holding majority custody outcomes barely moved. The null isn't primarily about observability. It's about how price influence works at the per-entity level in real markets. The model tests whether user custody weight directly moves fork prices. It doesn't... even at majority custody the price oracle barely responds, because it weights per-entity market impact, not aggregate raw custody. What UASF proponents argue is a two-step mechanism: coordination pressure changes exchange positions, which then moves prices. Step one, users influencing economic actors, is outside the model's scope. Step two is exactly what the model tests. The simulation does model user node enforcement, user nodes running v27 reject v26 blocks. But miners follow price, not validation headcount. User enforcement creates a valid partition; it doesn't make that partition profitable to mine. This is why BIP148 required exchange commitment to be credible. User enforcement alone couldn't move miners, the price oracle was dominated by economic nodes. When exchanges signaled v27, price shifted, and miners had no rational choice but to follow. Miner signaling and exchange positions are observable, attributable, weighted signals. User node counts aren't, many run behind Tor, can't be verified as non-Sybil, and carry no economic weight. They measure software version, not economic alignment.
While I could see miners playing this game, I think depending on the amount of held Bitcoin they could have more leverage as they would already have tokens on both chains. I'm not sure if miners would have the spare capital to do this based on how low the hash profit is right now. Exchanges will already have large holdings on both chains and would make the game theory more complicated as to how the price of both tokens will be manipulated. Interesting scenario either way.
Inspired by Edil Medeiros at the UW BRI workshop: Hearing the philosophy of Bitcoin made me feel like I was developing less for the machine and more for mankind Great workshop thanks everyone!
Presented at the UW Bitcoin Research Initiative yesterday. The full picture is now available as a decision boundary, all findings, and the interactive fork dynamics explorer. Starting with the three questions that matter most during a contested fork. 1. Is economic adoption above ~60%? If not, the upgrading fork struggles regardless of mining support. Monitor: exchange proof-of-reserves, institutional custody migration, ETF flow data. 2. Has a pool controlling >20% of global hashrate committed to the upgrading chain? This determines whether that pool is economically trapped on the upgrading chain or ideologically committed, a distinction that can reverse outcomes at moderate economic adoption levels. 3. Is economic adoption above ~75%? If so, pool ideology and commitment structure become irrelevant to outcome. Mining dynamics still determine how disruptive resolution is, but not which side wins. These thresholds come from 1,385 fork scenarios on real bitcoind nodes. Three statistical methods converge on the same boundary. Caveat: numbers are calibrated to current pool distribution and modeling assumptions, mechanisms are general, specific values are not universal. Full decision boundary, presentation, and data: https://github.com/pfoytik/Bitcoin-Fork-Governance-Study Interactive fork explorer (adjust sliders, see predicted outcome): https://pfoytik.github.io/fork-explorer/index.html
There's a live debate right now about whether user node signaling is sufficient to carry a soft fork, whether the current picture resembles past successful activations. It's the right question. Here's what the simulation found about what actually determines fork outcomes. First, a clarification on scope: this research isn't about BIP110 specifically. It's about the general conditions that determine whether a contested soft fork succeeds, fails, or splits the chain. BIP110 is a timely reason to share it. The clearest result from 2,694 scenarios: there's a threshold in economic adoption below which no mining support can carry a fork and above which miners can't stop it. Result holds across the range of pool profitability assumptions tested. The contested zone is narrow. Below that lower threshold, a fork fails regardless of mining support. Above the upper threshold, it succeeds regardless of mining resistance. What sits between is where mining dynamics actually matter and where most current governance debates are happening. As for whether user node signaling translates into the kind of economic adoption that moves that threshold, that's a separate question the simulation addresses directly. Full answer at the UW Bitcoin Research Institute workshop, July 13–17. #Bitcoin #UWBRI #softfork
Watching the BIP110 debate, I keep seeing the same honest admission from people who know Bitcoin deeply: past forks only tell us so much about this one. It's different. We'll have to wait and see. They're right that it's different. But "wait and see" isn't the only option. It's not that the past teaches us nothing, we learn plenty from earlier forks. It's that the outcome doesn't transfer directly. We map 2017 onto today, and the mapping breaks: Different hashrate concentration, different custody landscape, different players. and made sharp points: technical people tend to treat user behavior as more predictable. I think that's right. So the goal here isn't to predict how users will act... it's to respond systematically to the fact that we don't know. To be clear, this isn't guessing, it's testing. You take structured assumptions about how users might influence the system, run each one, and ask whether any of them actually moves the outcome. The assumptions are explicit and on the table, not baked in and hidden. That's the gap simulation fills. Not a crystal ball, you can't predict what a new rule set gets used for. But whether a contested fork resolves cleanly or splits the chain is something you can study under today's conditions, while staying honest about what you don't know.
Modeling and Simulation Researcher at Old Dominion University