THE CAPTURE

An investigation into how informal power over Bitcoin Core was assembled, exercised, and defended

by hodlonaut | Apr. 27th, 2026

Article Two of Four — The Lever

In November 2020, John Newbery appeared on two podcasts to launch Brink. On the Stephan Livera Podcast, he explained how Brink would direct money toward the developers most likely to make impactful contributions to Bitcoin Core. He was well placed to judge. "I know the history of all the contributors," he said. "I know the potential of new contributors. I've spoken to all of them, I've mentored some of them."

On Castle Island's podcast, he put it more plainly. "I think most protocol developers who I want to see funded are funded."

The year that followed tested what that confidence meant in practice. Several contributors would find out.

One was a longtime independent contributor who had helped shape Bitcoin's protocol since 2011, the primary BIP editor since 2016, a driving force behind the 2017 user-activated soft fork, and one of the most technically uncompromising figures the project had ever produced.

The second was a developer who had worked unpaid for over a year before finding his first grant, climbed to the top five globally by commit count, and proved through two years of sustained independent work that he was exactly the kind of contributor the project needed.

The third was a privacy infrastructure specialist who had been instrumental in modernizing and significantly expanding Bitcoin Core’s privacy networking stack, and whose extensive open-source background made him a highly qualified and strong candidate for advancing Bitcoin Core’s P2P and privacy networking work.

All three raised concerns the informal network of developers and funders, documented in Article 1, found inconvenient. All three experienced the same sequence afterward: dismissal, sidelining, and a decline from which none fully recovered.

The mechanism used against them was not unique to Bitcoin. It is the mechanism that any sufficiently consolidated informal network uses to protect its position: not formal censure, not open conflict, but the quiet withdrawal of social credit, the routing of resources around the problem, and the steady application of institutional weight until the cost of persisting becomes higher than the cost of going silent.

This is the story of the lever.

 

The Editor

In 2021, Luke Dashjr had been Bitcoin's sole BIP editor since 2016, the keeper of the formal process by which proposed changes to the protocol were documented and numbered. He was technically rigorous, abrasive in argument, and institutionally inconvenient. He was the kind of contributor whose value to a project is real and whose presence is also, to a certain kind of administrator, a persistent friction.

That value had been stated plainly, on the record, by Adam Back, CEO of Blockstream. In December 2023, Back described Dashjr as Bitcoin's "10th man", the contrarian voice a system needs to stay honest. Bitcoin, he wrote, was safer for having him. This would be Back's sentiment for nearly two more years.

In April 2021, pressure to remove Dashjr from his role became apparent. At the weekly Bitcoin Core developer meeting on April 8, John Newbery told the meeting that Luke was misrepresenting, as usual, within moments of the relevant topic opening. Luke replied directly: "I don't know what you have against me, but trolling like that is unproductive and malicious." Newbery's response was to ask what Luke hoped to achieve "by restating things you've claimed many times before in many previous meetings."

On April 22, John Newbery placed the question of adding a second BIP editor on the formal agenda of the Bitcoin Core weekly developer IRC meeting. The group agreed to take the discussion to the mailing list.

The following day, April 23, Luke posted to the mailing list himself. Subject line: "Proposed BIP editor: Kalle Alm." Opening sentence: "Unless there are objections, I intend to add Kalle Alm as a BIP editor to assist in merging PRs into the bips git repo." Luke was proposing his own co-editor.

The same day, Greg Maxwell posted a NACK to the mailing list and on IRC simultaneously, stating he was “opposed to the addition of Kalle Alm at this time.” His stated reason: adding Kalle would not resolve “the situation with Luke-jr's inappropriate behavior re: PR1104.”

PR #1104 was the BIP documenting Taproot's Speedy Trial activation parameters, filed by AJ Towns. Luke had posted a concept NACK on it. He then corrected himself on the same day, noting in an edit to his own comment: “For the record, I thought this NACK was being posted on the equivalent Bitcoin Core PR.” The concept NACK had been a mistake, acknowledged immediately. It remained the named grievance in Maxwell's opposition regardless.

On April 24 and 25, Matt Corallo escalated. He proposed replacing the BIP editor role with a bot, and then addressed Luke directly, calling for his removal or replacement. If the editor was refusing to merge changes that authors had approved, he argued, the community should remove the editor or ignore the repository entirely.

Luke replied, defending his triage process and describing what he believed was happening: a factional effort to use the BIP process to legitimise Speedy Trial as the official activation method. Corallo dismissed it, called Luke's explanation "playing dumb," and declared the BIP process had simply failed.

On April 25, while this exchange was ongoing, Luke merged PR #1104. His comment on the merge: "Merging this does not imply anything other than the BIP 2 criteria being met." He had processed the PR while simultaneously being accused on the mailing list of refusing to process it.

On April 26, Harding replied to Maxwell's NACK, noting that PR #1104 had now been merged and asking whether he continued to oppose the addition of Kalle. Nineteen hours later, Harding posted his three-point formal proposal, as a direct reply to Corallo's "the process has failed" post. Add additional BIP editors starting with Kalle Alm. Seek Luke Dashjr's resignation as BIP editor. Begin treating external protocol documents as first-class alternatives. The resignation demand was issued after the PR that had been the stated cause of the entire dispute was already merged.

Harding noted his recommendations had been "developed based on conversations I had with a few stakeholders in the BIPs process." He did not say who those stakeholders were. He did not mention that he had been sitting on the board of Brink, the organisation Newbery had co-founded five months earlier, since its launch.

Twenty minutes after Harding posted, Greg Maxwell endorsed the plan in full.

Van der Laan replied the following morning. He engaged with the decentralisation idea and the backlog problem. He offered a charitable explanation for any delays. He did not endorse the resignation demand.

At 12:33 UTC on April 27, Newbery replied to Harding’s three-point proposal: "ACK. These seem like very reasonable next steps." Seven words.

Jon Atack, who knew Newbery personally and was watching the project from inside, described his posture at this period on the record: Newbery "talked like he was the top dog" in the project, operating in open defiance of the lead maintainer's position when the two diverged.

Newbery was endorsing a formal call for Luke's resignation. It went beyond what Luke himself had proposed four days earlier. Beyond what Maxwell had initially supported. Beyond what the lead maintainer of Bitcoin Core was willing to endorse. Van der Laan's measured reply had been on the thread for over three hours. Newbery ACKed the resignation demand anyway.

The proposal to remove Bitcoin's sole BIP editor since 2016 was posted by Harding, a founding board member of Brink, and publicly ACKed by its Director and co-founder, five months after the organisation launched. The PR Newbery subsequently filed to install Alm dropped the resignation demand entirely. Only the co-editor addition was implemented. Luke was not removed, but his authority was diluted.

The campaign did not end there. Five months later, at an IRC meeting convened by Michael Folkson on September 14, 2021, to discuss BIP process reform, Harding opened proceedings by calling again for Luke's removal before any agenda item had been reached. When Folkson noted the subject was not on the agenda and twenty minutes had already been consumed, Harding replied: "I'll continue to bring it up in every appropriate venue for years, if need be." The removal campaign was, by his own declaration, an open-ended commitment. He was simultaneously a Brink board member and one of the three people who had voted to make Gloria Zhao Brink's first fellow nine months earlier.

Two years later, Harding returned to the subject on X. His post reached 169,000 impressions. Dashjr "has cost valuable Bitcoin contributors more than most people can imagine," he wrote. "I think he's been a net negative for Bitcoin." In a follow-up he added: "Maybe then the millions he has recently received would've gone instead to the quiet, undramatic builders that really help move Bitcoin forward."

Harding’s post was not only slanderous, but also gravely misleading. The "millions" Harding referred to were not personal compensation. They were a $6.2 million investment led by Jack Dorsey in Ocean, the Bitcoin mining pool Luke co-founded. Harding, a Brink board member and grant committee member, presented corporate investment in a mining startup as personal enrichment, in order to argue it should have been redirected to developers his own institution funds.

The man who had written the three point resignation plan, who sat on Brink's grant committee, and who had cast one of the three votes to select Brink's first fellow, was publicly arguing in late 2023 that Luke's funding should have been redirected to the network's preferred developers instead. Luke’s work was then characterised as a net negative for Bitcoin by the man who at that moment decided which developers Brink funded.

This was the first documented use of the lever. It would not be the last. Five days after Newbery's PR installing Alm was merged in 2021, the second confrontation began.

 

The Confrontation

On June 14, 2021, John Newbery called Jon Atack to tell him his Brink grant application had been rejected.

To understand what that call meant, it helps to be reminded of what Jon Atack had watched for two years before it. He had been present at the 2019 Chaincode residency as a guest. The cohort comprised approximately seven male residents, three male guests including himself, and two female residents. Both female residents had full-time offers within weeks. No male resident found funding at all, except for Antoine Riard.

One year later, in summer 2020, jonatack was the only non-female cohort member besides Riard who had found any funding, after thirteen months of unpaid work. By that point Gloria Zhao had been funded straight out of Berkeley to a Brink fellowship in London with John Newbery.

The weight that funding and positioning carried was visible before any confrontation occurred. In May 2020, a prolific contributor known as brakmic closed all ten of his open pull requests and left the project in a single afternoon. The immediate trigger was a comment from Amiti Uttarwar, suggesting he might consider "giving others a chance" at the tasks he had been working on. She had no formal authority over contributor access. She did not need it. Seven senior developers posted publicly to defend brakmic. Uttarwar apologised. He did not return. The weight a remark carries depends on who makes it and what stands behind them.

Two days after the Brink rejection call, on June 16, the confrontation that would mark a severe turn of jonatack's standing in the project began on IRC.

The technical dispute that became the confrontation concerned PR #22245, a pull request authored by Amiti Uttarwar. The PR proposed widening the semantics of the sendaddrv2 peer-to-peer message before the underlying BIP specifying its behaviour had been formally clarified. Jonatack raised a substantive concern: changing what the message means before the specification settled would create long-term ambiguity in the protocol. It was a careful, technical objection from a contributor who had spent two years learning the codebase at depth.

Newbery responded to jonatack's concern on IRC with a sarcastic analogy and told him he was 'very confused' about the controversy. Then, at 13:10 UTC, Newbery made an admission that had not been visible in the public record until that moment: “I suggested to amiti that 22245 be separated from 21528, so I apologize if that was confusing for people and take full responsibility.”

The PR carried Uttarwar's name. The strategy was at least partly Newbery's.

Van der Laan had been engaging with the technical substance since early that morning, raising his own doubts about the PR's premise and siding with jonatack's position that the change represented a genuine protocol semantic shift requiring a BIP. When he told Newbery that if he was trying to change something he should “just be transparent about it,” he was defending the position jonatack had raised.

Newbery's response was not to engage with the substance. He told van der Laan: “can you please stop the insinuations that I'm trying to do something underhand?” Van der Laan replied that he had not said anything about being underhand and did not understand. Newbery pressed: “you said that I'm not being transparent.” Van der Laan replied: “you're being really aggressive now.”

At 13:14:45 UTC, the log records: “laanwj [~laanwj@user/laanwj] has quit IRC (Quit: WeeChat 3.1).”

The lead maintainer of Bitcoin Core quit the channel immediately after being accused by Newbery of insinuating dishonesty. Van der Laan said he had made no such insinuation and did not understand the accusation. Then he left.

James O'Beirne observed: “it seems clear that there's enough unresolved discussion here that merging these changes in before the feature freeze isn't the way to go.”

What happened after the public IRC exchange, jonatack later placed on the record: a separate conversation with Newbery, on Slack. “It wasn’t outright angry,” he wrote, “but it broke something fundamental.”

Uttarwar closed PR #22245 on June 17, after peer consensus had formed. She attributed the decision to the technical discussion. She made no public mention of Newbery's role.

The technical outcome was vindication confirmed from the top. Vasil Dimov had independently filed BIP PR #1134 to clarify the exact ambiguity jonatack had raised: that sendaddrv2 signals format support, not address relay preference. Laanwj ACKed it the same day it was filed: "This was how I imagined it was." Newbery NACKed it, calling it "confusing and unhelpful to implementers." It merged despite his objection on July 2.

Jonatack's technical objection had been correct. None of it mattered to what happened next. From that point forward, his work in Bitcoin Core was met with what he would later describe as frequent passive-aggressive and hostile responses. The infrastructure Newbery had built began to move around him.

He had co-maintained the Bitcoin Core PR Review Club alongside Newbery for the preceding two years, a weekly mentorship programme Newbery had founded in April 2019. He had also been a volunteer writer and reviewer for Bitcoin Optech, contributing unpaid work to the newsletter Newbery had co-founded, while others including Harding were paid for their Optech work. In June 2021, he stepped back from both.

He later described, on the record, what had brought him to that point. "During the first two years, it had become clear what the deal was: Be a loyal supporter of Newbery, his initiatives — Optech, Bitcoin Core PR Review Club, and others — and the chosen people being groomed for power, in exchange for being part of the clique." Newbery's behavior after the June 2021 PR was the final confirmation. He had decided he would not pay that price.

Gloria Zhao took his place as Review Club co-maintainer. The succession was not announced. It simply happened.

 

The Bug

Two months passed. Then, in the IRC logs for August 23, 2021, at 17:12 UTC, jonatack reported a crash.

“ADDRMAN CONSISTENCY CHECK FAILED,” he posted to #bitcoin-core-dev. He had hit an exception. He began narrowing it immediately: reproduction attempts, isolation work. By 19:04 he had isolated the exact offending commit and traced the cause. MarcoFalke confirmed the root cause at 19:21. Pieter Wuille, one of Bitcoin Core's most respected longtime developers noted at 19:35: "nice catch."

Newbery arrived at 19:48. “Good catch. Thank you — I’ll work on a fix tomorrow.”

The IRC log is a complete contemporaneous record. Jonatack did the discovery and the diagnostic work. He isolated the offending commit. He offered to work on the fix. Newbery arrived after the fact and proposed an approach. Jonatack agreed with it. The record of who found the bug, and who took the fix, is in the public archive.

The next day, Newbery filed PR #22791. His fix was not a simple revert or reordering. It mixed bug repair with architectural refactoring in the same pull request.

Jonatack reviewed it the same day, August 24, and listed four explicit suggestions: link to the IRC log for context; describe symptoms, consequences, and how to reproduce; consider separating the refactoring from the bug fix; and add a passing/failing test that demonstrates the bug is fixed.

The fourth suggestion was immediately actionable. On August 29, five days before the PR was merged, jonatack filed PR #22831, implementing exactly that test. He then posted a second time on PR #22791, repeating all four suggestions and laying out multiple ways Newbery could incorporate the test.

Newbery’s response to the first round of suggestions, on August 25: “Thanks for the reviews @vasild @jonatack. I’ve addressed all your inline comments.” He had addressed the inline code review comments. He had not addressed the four substantive suggestions.

On September 6, Newbery’s PR was merged by Marco Falke. Without the test. Without the IRC link. Without the reproduction steps. With the refactoring included.

Jonatack's suggestions had been raised twice and ignored both times. PR #22831, the immediately available test implementation he had filed himself, was left without ACKs. Newbery's PR description identified the source of the bug. It contained no reference to the IRC log where jonatack had discovered and diagnosed it.

Four days after the merge, James O’Beirne entered the record.

O’Beirne was a Bitcoin Core contributor who had been, two years earlier, a co-founder of Bitcoin Optech, the same Optech whose dinner series had been used as a recruitment venue by Newbery, whose seed capital came from the same funders who would go on to fund Brink. He was not an outsider. He knew how the project worked, and he wrote what he saw.

On PR #22791, September 10:

“Why was this comment, made 12 days ago and 8 days before merge, ignored? It would be one thing if this change was a straightforward revert or a simple reordering, but at face value it is not obvious that this change fixes the fairly severe bug that @jonatack discovered. It is troubling that a patch of this complexity was merged without an accompanying test verifying its efficacy, especially when one was made readily available.”

— James O’Beirne, GitHub PR #22791, September 10, 2021

Jonatack’s reply: “I didn’t understand either.”

Newbery’s response to both was a single line: “Please see #22831 (comment).” He pointed elsewhere. He did not address the question.

O’Beirne continued on PR #22831. On September 10: “Instead of a straight revert, or simple reordering, #22791 was a larger than necessary diff with no accompanying tests.” On September 20, after the test PR had also been merged, he went further:

“While I appreciate the sentiment here, this is a controversial, security-critical project that is likely to someday experience subversion, overt or otherwise. Consequently we should be eager to recognize and address process failures, and we should certainly not be gunshy about adding test coverage, whether or not its implementation is ideal.”

— James O’Beirne, GitHub PR #22831, September 20, 2021

The word “subversion” is O’Beirne’s own. He is writing in September 2021 about Bitcoin Core’s process failures and the risk that a security-critical project might be compromised from within.

Wladimir van der Laan gave a Code Review ACK on PR #22831 while also endorsing a softening of the concern: “I agree with @fanquake’s remark about the criticality of this issue being somewhat overstated.” He added: “Would have been good to have it part of the original fix.” He did not name Newbery. The logic of the sentence names him. He also wrote: “I think it’s somewhat unfair to expect this from @jonatack just for reporting the issue.” The implicit assignment was clear: the test should have been in the fixer’s PR. The fixer was not jonatack.

Marco Falke’s justification for the original merge, when O’Beirne challenged it: “There were 5 ACKs, including one tested ACK, before I added the 6th ACK. I think this number of review ACKs is sufficient to merge a pull request… If the alternative pull doesn’t get any ACKs, it would appear slightly odd to me to merge it instead.”

Falke does not address the substance of O’Beirne’s concern. He addresses ACK count. The logic is circular: jonatack’s more complete fix lacked ACKs because ACKs travel through social networks; Newbery’s fix had ACKs because Newbery was inside the social network; therefore the networked contributor’s fix was merged and the independent contributor’s more thorough implementation was structurally sidelined. Uttarwar's ACK, given August 31 with a code review ACK on September 3, was one of the five Falke later cited. She had raised no question about the missing test in any of her comments on the PR.

On September 21, after both PRs had been merged, Newbery returned with a direct rebuttal of O’Beirne’s “process failure” framing: “I totally disagree with this. Our standards for test code should be as high as for code in the product itself… There’s no rush here. A merge-first-fix-later attitude increases the overall cost of this code and transfers that cost onto developers who’ll have to maintain/modify the tests later.”

The quality standard he invoked to reject O’Beirne’s urgency argument was the same standard he had used to justify ignoring jonatack’s suggestions during the review. The standard was applied retroactively, to rebut a critic, after the PR had already been merged in violation of it.

When O'Beirne documented the process failure on the public record, he did so twice, on two separate PRs. The response from inside the network was deflection, a head count of approvals, and a quality standard invented after the fact to shut down the criticism. Van der Laan softened O’Beirne’s framing while conceding its core point without naming who bore the responsibility.

Jonatack, speaking publicly in El Salvador in early 2026, described the pattern in his own words: “Wagons would circle if you would question the wrong people or report a bug created by the wrong person. It was all about wagon circling, gaslighting, oh, that's not a bug, and then someone else would fix it quietly.” He was describing what the logs had already recorded.

James O'Beirne told jonatack in 2025 that he had been pushed out of Core by the clique, for being willing to say what needed to be said. His September 2021 comments mark the beginning of what jonatack says was a four-year arc from active contributor to departure.

Four and a half years after those comments, O'Beirne responded to questions from this investigation. He answered only the first, citing time constraints, but what he said about that first question was more than enough.

He was asked what he meant by "subversion" in September 2021. He answered directly. "I meant that at some point, given bitcoin's potential geopolitical significance, it is likely that some contributors would be participating in the project in bad faith — in other words, for reasons orthogonal or contrary to simply wanting to contribute to bitcoin."

He then described what he had observed in the specific episode. "If I recall correctly, this was a case of code being rushed in for merge because of a failure that had been introduced by the same contributor. That pattern is a potential vector for committing faulty code — 'arsonist and fireman'." He was not accusing Newbery of deliberate conduct. He said so explicitly. "I wasn't necessarily accusing Newbery of that use in that instance, but it's a bad precedent to set — and sloppy."

He named jonatack directly. "The treatment of Jon Atack's proposed fix — to introduce a test first to ensure no regression — is a fairly standard best-practices fix. To see it essentially ignored raised red flags for me."

Then, without being asked, he added one more observation. "Newbery's motivations in general for participating in bitcoin confused me a little bit, having known him personally."

He knew Newbery personally and found his motivations confusing. He did not elaborate.

 

The Silence

What followed the summer of 2021 was not a single event. It was a change in conditions.

Jonatack describes it this way: “From that point forward, the reception to my reviews and to my PRs changed. Work that would normally be very much appreciated — reviews, bug fixes, proposals — was increasingly met with frequent passive-aggressive and hostile responses.”

He named the primary vehicle on the record: fanquake, Micheal Ford, a maintainer he described as “very close to the Optech clique” and “the only one from that year or before that has not stepped down.” The hostile reception extended beyond jonatack himself. “Everything became much more difficult, not only for me, but for people who appeared friendly to me or who I was friendly with.” The punishment was social and it radiated outward.

Jonatack had known what the costs would be before he spoke. He had watched the ACKs on Uttarwar’s PR rolling in “with growing apprehension,” understanding “that it was going to be increasingly costly for me to say what needed to be said, technically, about the change.” He had said it anyway. The cost was as predicted.

The contribution data is independently verifiable on GitHub. From top-four globally in 2020, top-five in 2021, to near-silence thereafter. This is not a withdrawal he announced. His contributions simply became, in his own words, “working with an immense handicap and permanent doghouse status.”

What made this mechanism so effective was not that it was enforced. It did not need to be. Jonatack described the social understanding that had formed among contributors around him: that certain people inside the network were not to be criticised or contradicted. Their funding arrived without gap. Their GitHub standing accumulated early. Administrative privileges to label, tag, and close pull requests were granted at a stage when comparable contributors had none. Their media coverage, in Forbes and Decrypt and CoinDesk, arrived before their technical records had been built.

"The power and influence accrual abetted by their mentors," jonatack wrote, "was surprising and blatant and made us understand that they were not to be criticized or contradicted. They were untouchables." When contributors understood that, the lever did not need to be pulled. The possibility of pulling it was enough.

Jonatack had entered Bitcoin Core development because of Wladimir van der Laan. “His leadership style had been my primary inspiration since around 2016.” The two had worked closely throughout 2019 to 2021. When van der Laan eventually stepped down as lead maintainer, something specific ended for jonatack. “Friendly support almost completely vanished,” he wrote. “This continues to this day in 2026, nearly five years later at the time of writing.”

In December 2021, six months after the confrontation, Newbery announced he was stepping back from Bitcoin Core development and from Brink. No detailed public explanation was given. According to two independent sources, the board removed him. Brink's IRS filing for FY2021 records the anomaly plainly. Newbery was the only person at Brink drawing any compensation above reporting thresholds that year: $359,044 in total, the largest single payment in the organisation's documented history. The prior year his listed compensation was zero. Mike Schmidt, Brink's CEO, explained that founding work from 2020 had been deferred and booked in 2021. Whether any portion constitutes severance for an involuntary departure has not been confirmed or denied on the record.

His last documented act inside that institution was a podcast. In November 2021, weeks before his departure was announced, Newbery and Zhao co-launched the Brink podcast. Episode 1: "Mempool Policy." Episode 2: "Mempool Ancestors and Descendants." Newbery's own website carried the announcement in his words: "Gloria and I started a podcast about Bitcoin protocol development." After Episode 2, he does not appear again. The subject, mempool policy, is the domain Zhao would later use to reject Luke Dashjr's patch in 2023 and merge the OP_RETURN uncap in 2025. The pipeline's direction was set in the last thing he recorded.

Newbery was gone. The network he built was not. He did not respond to questions from this investigation.

Brink continued under Schmidt. Chaincode continued under Jonas. The developers Newbery had mentored were inside the project, accumulating authority. The maintainer he had helped install was nineteen months into her fellowship and ascending.

The pipeline did not depend on any single person to keep running. That was, by design, its strength.

 

The Succession

On June 30, 2022, Bitcoin Core's weekly developer IRC meeting took place at 19:00 UTC. Fanquake opened the discussion on the main agenda item: “Per the topic, I'm proposing we make Gloria a maintainer; over rbf / mempool / policy. She has been actively working on Bitcoin Core for more than 2 years. Predominately in the mempool and validation code.”

It had not always been the plan. Four months earlier, at a February meeting, laanwj had agreed with a concern jeremyrubin raised: that making Zhao a mempool maintainer was of limited value precisely because she was one of the main people writing new mempool code. “That was exactly my point,” laanwj had said. By June 30, he had changed his mind. No explanation was given. The log records only: “I changed my mind.”

Zhao was in the channel. When the nomination was raised, she said: “Thanks fanquake, I appreciate the recognition. Yes I'd like to help out in any way I can.” There was no recusal discussion of any kind.

The ACKs came in rapidly: laanwj, achow101, cfields_, hebasto, instagibbs, Murch, sipa, b10c, lightlike, michaelfolkson. One developer, jeremyrubin, raised a mild procedural concern before stepping back from it.

One other observation was made. b10c, a developer in the channel, flagged it as a minor point: “Brink would then fund 3 maintainers. Not that this is a problem, I just want to mention it.” Another participant seconded the concern, adding that maintainers funded by different organisations is always better for a project like Bitcoin Core. The observations were not discussed further. The meeting moved on.

At 12:30, van der Laan settled the question of scoping: “We don't have that kind of precise scoping for maintainers, i don't think that's necessary.” Six weeks later, a detailed challenge from fanquake to the scope of Vasil Dimov's nomination would stall his PR for five months. The standard declared unnecessary in June became the mechanism of delay in August.

Gloria's nomination had also come from fanquake. Six months before he nominated her, Zhao had been on the public record endorsing an expansion of fanquake’s GitHub owner permissions, including the ability to block accounts, and dismissing concerns about it as misrepresentation. He was the same maintainer jonatack had named on the record as the primary vehicle of passive-aggressive and hostile responses to his work since June 2021, and the only one, in jonatack's characterisation, from that year or before who had not stepped down. He nominated Zhao, the person who had publicly backed him.

Jonatack was not there. He had disconnected from the channel hours before the meeting began. He left no comment on Zhao's trusted-keys PR when it was filed the following day. His silence on her nomination was total. Given what he describes of the atmosphere, it was itself a position.

One day after the meeting, Zhao filed PR #25524 to add herself to Bitcoin Core's trusted keys. She received substantive NACKs.

James O'Beirne had co-founded Bitcoin Optech alongside Newbery. He had watched the network being built from the inside, and he wrote what he saw.

His objection on Zhao's trusted-keys PR, filed the day after her nomination, amounted to a NACK. He was careful about it. He said Zhao was "an excellent coder and thinker" and that he was "hugely supportive of her work." Then he named his concerns precisely. His main worry was that Zhao was "a not-impartial participant in the development of mempool design" with "a number of outstanding proposals and PRs in that area." Giving her maintainer authority over the domain she was simultaneously proposing designs for created a structural problem: "Having a maintainer of the leading implementation who is both maintaining and proposing designs seems like a possible conflict."

O’Beirne then went further. There was, he wrote, "a pretty large plurality of young maintainers who don't really have a lot of experience in other projects." Furthermore, "this plurality seems pretty tightly linked in terms of funding, personal life, etc., to the point where I've heard concern expressed from other contributors that there may be a 'virtuous circle' of mutual ACKs among maintainers."

He closed by saying that if there was to be another maintainer, he would like to see "someone who is a little further removed, more experienced in the repo, and somewhat more disjoint from the funding and social graph."

The concern was specific, documented, and filed by a co-founder of Bitcoin Optech on the day the nomination was confirmed. Zhao did not respond to it. Luke-jr filed a meta-NACK requiring the objections to be addressed before merging. They were not addressed.

PR #25524 was merged on July 7, six days after filing, making Gloria Zhao a Bitcoin Core maintainer.

 

The Nominee

On August 18, 2022, six weeks after Zhao's trusted-keys PR was merged, Vasil Dimov proposed himself as P2P and Networking maintainer at the weekly developer meeting.

Vasil Dimov was not a newcomer. He had more than a decade of open-source experience before he turned to Bitcoin Core. He had found funding quickly. Within months of beginning Core work in 2020, Square Crypto backed him. He was the second Core developer the organisation had ever funded. The first was jonatack.

Jonatack described him simply: "He was that good." By the time he proposed himself as P2P maintainer in August 2022, he had already built Bitcoin Core's privacy networking infrastructure from the ground up. He had implemented BIP155, added Tor v3 and I2P support, and would later work on private transaction broadcasting, a mechanism to allow nodes to broadcast their own transactions through short-lived Tor or I2P connections without revealing the originating IP address. Without his work, jonatack would later say, Core would no longer support any privacy network at all.

Dimov's reasoning was simple: two maintainers with P2P expertise had recently stepped down, leaving the area without dedicated coverage. He had not been seeking the role. He would later describe the maintainer function as a janitor-like duty, technically executing the will of the developers to merge pull requests they had approved. The most interesting work, in his view, was writing new code. A maintainer role would take time away from that. But he was one of the most active developers in the area, two maintainers had stepped down, and he felt obliged to step up. There was, he noted, no defined process for how one becomes a maintainer. Discussing on IRC seemed to be how it started, so that is what he did. "So I step in coz I think I can help the project in that way," he said. "That's it. "

Laanwj's response: "I think it would make some sense. You've been the most active in P2P development for quite a while."

Broad concept ACKs followed from across the channel. Achow101, hebasto, lightlike, and others voiced their support. "Vasild is more than qualified and is a key reviewer in this area of the code," jarolrod wrote. "Thanks for volunteering to be maintainer." He was directed to file a PR. The following day he filed PR #25871.

It was never merged.

Six weeks earlier, at the June 30 meeting where Zhao had been nominated, the lead maintainer had settled the question of scoping explicitly: "we don't have that kind of precise scoping for maintainers, i don't think that's necessary."

On September 1, fanquake posted a detailed challenge to the scope of Dimov's nomination. He compiled a list of eighteen significant net processing PRs from the preceding two years and stated that Dimov had not been majorly involved in the discussion or review of any of them. He said it "seems a little odd" to make someone a maintainer over code they had not actively written or reviewed at that level, and suggested there was "a cohort of regular contributors" better positioned for the net processing scope.

He did not file a NACK. His comment expressed conditional opposition, explicitly limited to the net processing and peer interaction area. On the lower-level networking and sockets work, he conceded that Dimov was "pretty clearly one of the most active contributors." Dimov responded with statistical analysis and offered to narrow the scope to exclude net processing entirely. The scope was then narrowed to address fanquake's stated concern.

Fanquake then said nothing further: no ACK, no NACK, no acknowledgment of the change he had prompted. Dimov's own assessment of the scoping challenge: fanquake's objection was ungrounded, and he felt compelled to counter it. But he concluded his response did not matter and that there was nothing he could have done to change the direction this was heading.

As for why fanquake stayed silent after the scope was addressed, Dimov had a view: no other maintainer would merge the PR without fanquake acknowledging his “concerns” had been met. Silence sufficed. "Or worse," Dimov added, "if you like conspiracy theories — the outcome was pre-arranged behind the scenes."

Zhao, for her part, said nothing at all.

Both were asked, repeatedly and by name, to comment. The PR sat open. Weeks passed. Nothing came.

Dimov put his understanding of the silence on the record: "Silence on a pull request means indifference or that the person is unaware of the PR. I can't believe a maintainer would be indifferent on the topic of new maintainer or that they did not see the pull request. The silence was deafening. To me that meant disapproval, for reasons that cannot be publicly stated. This is when I realized my fellow dev was right — it was being sabotaged and something was happening behind the scenes. With 20+ years of experience in Open Source, I can say that this is not how Open Source works (or is supposed to work). That stunk."

After five months, Michael Folkson put it plainly on the public record: "I feel like Gloria's trusted keys merge was rushed through and I can only speculate on the reasons why. I feel like this merge has been deliberately stalled for months and I can only speculate on the reasons why. I'm still waiting on @fanquake and/or @glozow to comment despite multiple requests for them to do so."

He also drew the comparison the record now makes visible: "I remember the uproar when @luke-jr didn't merge a PR adding a new BIP maintainer within a month of it being opened. He was hounded on IRC by certain individuals. Here it is fine to have a Bitcoin Core maintainer PR dangling for 5 months." Certain people, he added, should be ashamed of themselves.

When the question reached the weekly developer meeting on January 12, Folkson had posted to the channel hours before it began: "fanquake glozow: If you're around can you attend today's IRC meeting. I'd like to discuss the vasild maintainer situation, seems like a farce at this point." Neither attended.

In the meeting he pressed again: "What is the reasoning? And why can't fanquake and/or glozow comment on the PR?" When no answer came he stated his conclusion: "The silence is absurd." And then: "What are next steps? Just let fanquake and glozow block whatever they want without disclosing why?"

He got an answer of sorts. achow101, chairing, declared lack of consensus without naming who dissented or why. When Folkson pressed for explanation, achow101 offered one: "frankly, I think opinions aren't being shared because of potential backlash from aggressive users such as yourself and bytes1440000."

The logic is worth pausing on. Fanquake and Zhao had not commented on a five-month-old PR despite being asked repeatedly by name. The explanation offered was not that they had no view, or that the process was ongoing, or that they would comment in due course. The explanation was that the people asking the questions were aggressive.

Fanquake had not explained his scope objection after Dimov addressed it. Zhao had not commented for five months despite direct requests. When contributors asked why, they received no answer. When they asked again, the asking itself became the problem. The demand for accountability was reframed as the cause of the silence. Those asking why decisions were not being explained were identified as the reason decisions were not being explained.

It is a closed loop. It cannot be broken from outside, because the act of trying to break it is used to justify keeping it closed.

The demand for accountability was reframed as the cause of the silence. Those asking why decisions were not being explained were identified as the reason decisions were not being explained.

AJ Towns stated the next steps plainly: "stop trying to make vasild a maintainer when there's no particular need, work on making good PRs and reviewing them."

Dimov responded directly: "If existent maintainers think there is no need for a new one, maybe it would be good to state so. And maybe some maintainer to claim that area? Btw that would put the discussion whether my skills are tuned to p2p or just networking in a strange light." Nobody responded to that point.

Towns then invoked the CIA's Simple Sabotage Field Manual, a declassified Second World War document advising operatives how to disrupt organisations from within. Its recommendations include demanding excessive procedure, insisting on committees, raising irrelevant objections, and slowing approvals through process.

His target was not the people doing the stalling. It was the people asking why the stalling was happening. Those who had been publicly pressing fanquake and Zhao to comment on a five-month-old PR were, in Towns's framing, the saboteurs. The people whose silence had produced the stall were not named. Folkson asked whether Towns was accusing fanquake and Zhao of being CIA operatives. Sipa's response was a single word: "wtf." Towns did not clarify.

Folkson's final words drew an explicit connection: "Vasil is being treated awfully. I hated when Luke was treated badly during Taproot activation and hate this." He closed with a conclusion: "I will consider Bitcoin Core a project where fanquake and glozow can make whatever decisions they want without communicating why from now on. I didn't think it was that way but apparently it is."

Shortly after the meeting ended, a contributor who had been absent from it posted to the channel. He linked fanquake's only comment on PR #25871, Newbery's aggressive response on PR #25923, and a third developer's scoping objections, then stated: “There is one thing common between all these developers and its Brink.” He immediately left the channel. The following morning, Folkson replied: “Indeed. It appears we have a Brink problem. We've lost Core as an open source project.”

The following morning, January 13, Newbery himself entered the channel at 11:16 UTC. He had left Bitcoin Core and Brink more than a year earlier. He arrived because he had been tagged in PR #25923, a pull request filed by jonatack concerning a change Newbery had made months earlier.

Dimov had commented on the PR in August, writing that "a bug is a bug, even if it was done on purpose." Newbery had read this as a personal accusation of deliberate misconduct and had responded on the PR itself with considerable force, writing that the attitude of "trying to shame code authors" was "certainly not something I'd expect to see from someone putting themselves forward as a potential project maintainer." Dimov had replied on the same day that he was not trying to "misinterpret, gotcha or shame" anyone, that he had coronavirus and "should probably not be at the computer today at all," and that he would be more careful with his wording in the future.

That was August 2022. Newbery arrived on the IRC channel in January 2023 still treating the exchange as an open accusation.

He denied involvement in any cabal. He agreed, in passing, that some of the processes around Bitcoin Core were broken. Then he turned to the people he held responsible for the disruption.

"It's striking," he wrote, "that neither of the two people making the accusations or pushing for vasild to become maintainer have made any meaningful contributions to Bitcoin Core. And yet they make incessant demands on contributors' and maintainers' time and attention and then demand justification when they don't get that attention."

The vocabulary is familiar. Article 1 of this investigation documents how Nadia Eghbal's book Working in Public was assigned as mandatory reading by Newbery to his mentees, and how its distinction between contributors and extractive users was then deployed publicly within weeks, by both Newbery and Uttarwar, against critics of the project. The word extractive does not appear in the January 13 log. The structure does. People who make demands without contributing are not raising legitimate concerns. They are consuming the project's resources. Their objections are not substantive. They are a drain.

He then told Folkson directly: "I'd wager most people here would find this project a lot more pleasant if you chose not to."

Dimov was in the channel. He interjected to clarify that he had tagged Newbery only to double-check his own comment, not to accuse him of anything, and thanked him for the correction. Newbery did not respond to him.

The man whose maintainer PR had been effectively killed the day before, through private consultations nobody had disclosed, with the endorsement of the outgoing lead maintainer still on record, had already apologised in August for upsetting people while sick with coronavirus. He showed up calmly in January to do it again. He was not answered.

Dimov later said he had forgotten the specifics of the meeting. Rereading the logs, he described it as nothing special, just making explicit what was already clear to him from the silence. He had not been consulted. He had not been told anything. The decision had been made somewhere he was not. The meeting was simply the moment it became public.

On January 13, 2023, one hundred and forty-eight days after filing, achow101 switched from Concept ACK to NACK. He had, in his own words, reached out to several contributors privately to form this opinion. A cascade of retractions followed the same day. Zhao posted her first substantive comment.

She set out a framework for what a P2P maintainer should be: someone capable of assessing security disclosures independently, whose judgment on a PR would override any number of community ACKs. "I would say a more important role of a maintainer is to understand when to not merge a PR that has any number of ACKs. If this is surprising to you because you thought it was 1 github account 1 vote, you are setting the bar for Bitcoin Core too low. Merging based solely on votes is not 'decentralized,' it's just irresponsible." On that framework, she said, Dimov was not the right person.

She had not NACKed the PR earlier, she explained, partly because NACKs are sometimes interpreted as personal attacks, and partly because "Brink has been antagonized on Twitter each time multiple grantees have similar opinions about this." She was the first person in the thread to name Brink as a factor in her conduct. She closed with a direct address to the funding criticism: "If you wish to have more decentralization in Bitcoin Core funding, you can start by creating a nonprofit, gathering donations, and funding somebody who works on Bitcoin Core."

The sentence was notable for what it conceded. You do not advise someone to create a competing institution unless the existing one already occupies the position they are concerned about. She had just named Brink as a reason for her own silence. She closed by telling critics of Brink's influence to build an alternative to it.

Decentralization, in her account, flows from competing funding institutions rather than from community ACKs, which maintainers may override at will.

At the time she wrote this, Brink funded six Core developers, three of them being maintainers, including Zhao. By 2025, a single Brink-funded engineer, fanquake,  merged 56% of all annual changes to Bitcoin Core. She told critics of Brink's influence that the path to decentralization was to create a competing nonprofit. The institution that would need competing with was the one she had just named as a reason for her own silence. Naming her position publicly would have drawn attention to the alignment between Brink grantees. The concern she was managing was the same concern her framework confirmed was legitimate.

Dimov had read Zhao's comment carefully. "It was one of those statements that politicians do — many polite words, little meaning. The takeaway — NACK." He would have closed the PR much earlier, but he felt that was not the will of the people who had ACKed it. He had kept it open for them, not for himself.

Dimov closed the PR himself on January 14. "Closing this as it is not going to be merged at the moment. Doing so feels like failing all the people who ACKed it, sorry." Laanwj's final comment: "I still think vasild would be the most suitable maintainer choice for net code." No maintainer has claimed the area since.

Fanquake and AJ Towns were both contacted with formal questions about the events documented in this article. Neither responded.

Gloria Zhao was the developer Jonas had cold-emailed, mentored by Newbery, voted into Brink's fellowship by Newbery without recusal, guided into the project by Uttarwar. She was now a Bitcoin Core maintainer. On her maintainership PR, substantive NACKs had been filed and left unanswered. A funding concentration concern had been raised at the nomination meeting and closed off. The PR was merged in six days regardless. She had said nothing for five months while a well-supported nomination from a longer-serving contributor stalled, then directed critics of that process to build their own institution.

Dimov drew the contrast himself. "I can never be sure, but it seems like Gloria's was pre-arranged — decided upfront and the IRC meeting and the PR discussion was just democracy theater. Seems like this is how new maintainers are being selected — existent ones decide privately and announce their decision to the public in the form of a nomination. At this point most people would be anxious to speak against the decision or against a most likely future maintainer. My process was different — I was not selected by anybody and did not secretly seek approval from the existent maintainers upfront. Just raised the topic in the open."

Jonatack, watching from outside the January 2023 meeting and the maintainer PR it sealed, described the episode in March 2026: "Vasil Dimov did volunteer to do it. What happened was unfortunate. I took away the lesson not to volunteer despite being interested." He had watched Zhao's trusted-keys PR merge in six days over NACKs she did not address. He had watched Dimov's equivalent PR stall for five months through silence from the same two people, then die through private consultations nobody disclosed. The succession and the blocking were the same mechanism, running in opposite directions. In a message the same day, he said it had "definitively confirmed to me what was unfortunately happening in Core.”

Dimov's maintainer PR was not the only thing that stalled. His private transaction broadcasting work, PR #29415, filed February 2024, sat open for twenty-three months. It would close privacy gaps the project had formally acknowledged since at least 2018, longstanding issues involving nodes leaking their IP address when broadcasting their own transactions. It finally merged on January 12, 2026, following a Core Dev meeting in October 2025 where Dimov presented the work and triggered renewed interest and review.

Becoming a Bitcoin Core maintainer typically takes many years of sustained, recognised contribution. Jonatack had been contributing for three years and had been top five in the world by commit count. He had been rejected for a Brink grant and watched his standing in the project diminish for twelve consecutive months following a confrontation with the man who co-founded that organisation. He had also watched what volunteering for a role without the right affiliations produced for someone else.

He had watched three contributors pushed to the margins, three cases of the network exercising its power.

Dimov had watched the same system from a different vantage point. When he began contributing in 2020, the maintainer role was what he had always said it was: a janitor deciding when a PR had enough review to merge. "Since then I think that role has subtly expanded to something like a project manager, or project owner, steering the project and influencing how and on what people work or not to work on. I do not like this. But I think this is limited to some extent and that it is reversible. It would become irreversible if new contributors that join accept it as a norm because they think this is how the project is."

On the state of the P2P area he had proposed to maintain: "In the last few years the idea of having a dedicated maintainer per area has blurred and diminished to some extent. Fanquake is merging a lot of PRs. Presumably he is qualified enough to judge based on technical merit instead of based on the people who approve pull requests."

Jonatack had described in El Salvador in early 2026, how the system that produced these outcomes actually worked. "In fact, maintainerships are practically pre-decided. It's not based on a vote of the people at the IRC meeting. To become a maintainer, you have to be approved by the existing maintainers. It's a little club. And if you question or criticize that, you're not a supportive person, and we've seen these people, how they get moved out of the project." He had been one of those people. He was still describing it from memory.

Dimov had come to the same conclusion as jonatack, though by a different route. "I don't easily accept Jon's claims and I prefer to keep wearing my pink glasses. Only to find out later that Jon was right. Happened more than once."

The network built between 2018 and 2021 did not require Newbery's continued presence to function. The maintainer the pipeline produced was now in position. The next thing to be documented is what that position was used for. Not in 2021 or 2022, but in 2023, when a one-line documentation change set in motion a sequence whose conclusion would arrive two years later as the most contested protocol change in recent Bitcoin Core history.

That sequence begins with a pull request, a documentation diff, and an omission that one of its principals has since described, on the record, as probably deliberate.

 

A Note on What This Story Is and Is Not

This article does not claim that Gloria Zhao is not a capable developer. It does not claim that the contributors who blocked Dimov’s maintainer nomination acted with malicious intent. People in positions of influence exercise judgment. Judgment reflects the values and social networks of the people exercising it. This is not automatically corrupt.

What this article documents is a pattern: three independent contributors who raised concerns the network found inconvenient, and who experienced the same sequence afterward. The sequence is documented through the public record: IRC logs, GitHub threads, mailing list posts, and named, on-record sources. No anonymous sources are required to establish what happened. It is all retrievable.

The question the pattern raises is not whether any individual acted in bad faith. It is whether an informal structure with this much influence over funding, review, and institutional access can be expected to produce outcomes that are fair to those outside it. The cases documented here suggest it cannot.

Right of reply was sought from John Newbery and Adam Jonas in March 2026. Neither responded by deadline or at any subsequent point. Right of reply was sought from fanquake (Micheal Ford) and AJ Towns in April 2026. Neither responded by deadline or at any subsequent point. Right of reply was sought from James O'Beirne; his response to Q1 has been incorporated and further responses are expected. Right of reply was sought from Vasil Dimov; his responses have been incorporated throughout this article. Contact details for Amiti Uttarwar and Gloria Zhao could not be established through public records; both are named and any response will be incorporated.

 

Sources

All quotations from named individuals are drawn from the public record unless otherwise attributed.

Primary sources: Bitcoin Core IRC logs, erisian.com.au archive: June 16, 2021 (log-2021-06-16.html); June 17–20, 2021; August 23, 2021 (log-2021-08-23.html#l-263); June 30, 2022. GitHub repositories: bitcoin/bips PR #1116 (jnewbery, merged June 11, 2021); bitcoin/bitcoin PR #22245 (Uttarwar, closed June 17, 2021); bitcoin/bitcoin PR #22791 (jnewbery, merged September 6, 2021; O’Beirne comment issuecomment-917050278); bitcoin/bitcoin PR #22831 (jonatack, merged September 2021; O’Beirne comments discussion_r706313089 and issuecomment-923207453; van der Laan comment issuecomment-918098033; Newbery rebuttal September 21, 2021). Bitcoin-dev mailing list, April 23–27, 2021, including Harding three-point plan and Newbery ACK (lists.linuxfoundation.org/pipermail/bitcoin-dev/2021-April/018872.html). Bitcoin Core dev weekly IRC meeting, June 30, 2022 (erisian.com.au archive, full log preserved). Bitcoin Core dev weekly IRC meeting log, January 12, 2023 (gnusha.org archive, full log preserved); Bitcoin Core IRC log, January 13, 2023 (gnusha.org archive, full log preserved). Brink Technology Inc IRS Form 990 filings FY2020–FY2021 (ProPublica Nonprofit Explorer). Mike Schmidt, Brink, formal right-of-reply responses, March 9 and March 17, 2026. Jonathan Bier, Brink board member, formal right-of-reply responses, March 16 and March 17, 2026. Vasil Dimov, written responses to formal right-of-reply questions Q1--Q12, April 2026. On the record. bitcoin/bips PR #1134 (vasild, merged July 2, 2021); bitcoin/bitcoin PR #25871 (vasild, closed January 14, 2023; Gloria Zhao comment January 13, 2023); bitcoin/bitcoin PR #29415 (vasild, merged January 12, 2026). Jon Atack (jonatack), written responses to formal questions (Q1–Q7), March 25, 2026, Signal DM to Magnus Granath (hodlonaut); Jon Atack (jonatack), Signal DMs to Magnus Granath (hodlonaut), April 4, 2026; Jon Atack (jonatack), PlanB Forum presentation, El Salvador, early 2026; Jon Atack (jonatack), Bitcoin Infinity Show #195 with Knut Svanholm, March 23, 2026. James O'Beirne, email response to formal right-of-reply questions Q1, April 16, 2026. David Harding (@hrdng), X, December 2023 (169,000 impressions). John Newbery, Stephan Livera Podcast SLP229, November 18, 2020; John Newbery, On the Brink with Castle Island EP150, November 24, 2020. Bitcoin Magazine, ‘Gloria Zhao Becomes First Female Bitcoin Core Maintainer,’ Namcios, July 2022.