Four information points. One speaker. Zero code commits.
On an unremarkable day, Justin Bons β founder of the investment firm Cyber Capital β repeated a claim that has circulated through crypto for a decade: that the XRP Ledger forces its validators to run closed-source code. The claim arrived as a fragment, quoted inside a single-source brief. No repository link. No commit hash. No validator testimony. No rebuttal from Ripple. No rebuttal from anyone.
I have audited enough codebases to distrust claims that arrive without artifacts. When someone tells me a system is closed-source, my first instinct is not to believe them or to disbelieve them. My first instinct is to run git log. When someone tells me a validator set is coerced, my first instinct is to read the configuration file that defines the validator set.
So I did both. The result is more useful than the accusation itself: the claim, as stated, is a category error β but the concern underneath it is real, and it lives in a configuration file, not a license. Let me show you where.
The XRP Ledger has run mainnet since 2012. That is not a footnote. Twelve years of continuous operation is the single strongest technical credential any chain can hold, and it is the credential that XRP critics most reliably ignore. Bitcoin predates it by three years. Ethereum postdates it by three. XRPL is not a young experiment. It is infrastructure with a track record.
The ledger does not mine. It does not stake. Its consensus protocol β the Ripple Protocol Consensus Algorithm, or RPCA β sits in a family that academic literature calls federated Byzantine agreement. The design is closer to Stellar's consensus protocol than to either Bitcoin's proof-of-work or Ethereum's proof-of-stake, and conflating the three is the first mistake casual critics make.
History matters here, because the accusation has a context the brief erased. XRPL was launched in 2012 by OpenCoin, a company founded by Chris Larsen and Jed McCaleb β the latter of whom had already built the failed Mt. Gox and would go on to co-found Stellar. OpenCoin became Ripple Labs. The XRP supply was created at genesis: 100 billion units, no mining, no inflation. Ripple retained a large share, escrowed the bulk of it, and sold into the market over years. That distribution decision is the origin of half the criticism the project has faced since.
The other half traces to December 2020, when the SEC sued Ripple Labs and two executives, alleging that XRP was an unregistered security. That case is the single largest variable in XRP's existence, larger than any governance dispute, and its resolution β a partial summary judgment in 2023 that found programmatic exchange sales did not constitute securities offerings while institutional sales did β reshaped the token's legal standing. Hold that thread. It becomes the contrarian pivot of this entire analysis.
Now the mechanical skeleton, because the entire decentralization controversy lives inside it.

Each server on the network maintains a Unique Node List β a UNL. That list contains the public keys of the validators this server chooses to trust. Servers propose candidate transaction sets. Validators validate them. Consensus is reached when a supermajority of a server's UNL agrees on the same ledger. The threshold is not 51%. It is roughly 80%, and the safety analysis assumes the UNLs of honest validators overlap heavily β the literature often cites 90% or more.
The word that matters is "chooses." In theory, every operator picks their own UNL. In practice, Ripple publishes a recommended list β the default UNL, or dUNL β and a large fraction of operators adopt it without modification. The rippled server ships with a default configuration. You edit validators.txt, or you don't. Most don't.
That single behavioral fact β not a license, not a binary, not a hidden backdoor β is where the real decentralization question for XRP has always lived. It is a governance question wearing a configuration file as a costume. And it is precisely the question that a claim about "closed-source code" fails to ask.
Let me begin with the strongest version of Bons's claim, because steelmanning is the only honest way to evaluate a technical accusation.
Steelman: If validators cannot verify what they run, and if the recommendation of which validators to trust comes from a single corporate entity, then the network's security is not distributed across independent operators β it is concentrated in the entity that writes the recommendation. Under that reading, "closed source" is a proxy for "unverifiable trust," and "forced" is a proxy for "no realistic alternative."
That reading is coherent. It is also imprecise. And imprecision in a bug report is itself a bug.
The XRP Ledger's core server, rippled, is open source. It has been open source for years, under a permissive license, hosted publicly, with external contributors. I have read portions of it β the consensus module, the ledger-state handling, the transaction-processing path. If someone claims the core client is closed-source, they are factually wrong, and a single git clone settles the argument in under a minute.
So the claim must be pointing at something narrower. Three candidates exist.
First, the default UNL publication mechanism β the pipeline that generates the recommended validator list. This is operational, partly manual, and not obviously reproducible by outsiders. That is a governance-transparency gap, not a code-licensing gap.
Second, a specific toolchain or signing utility used in validator operations. Plausible but unverified. No artifact was provided.
Third, the claim is a loose restatement of "you cannot practically run a validator that diverges from Ripple's recommendation." That is closer to a real problem, but it is not a closed-source problem. It is a coordination and incentive problem.
The brief specified none of the three. An accusation with three possible targets and no evidence is not a finding. It is a hypothesis with the confidence dial turned past the calibration point. Code is law, but bugs are reality. And the first bug here is in the claim itself: it names the wrong subsystem.
To run a validator on XRPL, you install rippled, the open-source C++ server. You configure it with a rippled.cfg. You tell it where to find its UNL β either a static list you maintain by hand, or a URL pointing at a signed dUNL that you fetch and apply. You generate a validator key pair. You start the process. The server connects to peers, exchanges proposals, and begins participating in consensus rounds.
Those rounds have a defined structure. There is an open phase, where servers broadcast candidate transaction sets. There is an establish phase, where consensus converges toward a set that a supermajority of trusted validators agree on. There is an accept phase, where the agreed set is applied to the ledger and the next round begins. The whole cycle completes in three to five seconds.
Nothing in that pipeline requires closed-source software. Nothing in it prevents you from maintaining your own UNL. What the pipeline does is reward conformity: if your UNL diverges too far from everyone else's, you risk being on the wrong side of consensus and stalling. That is the soft coercion. It is real. It is also not a license problem. It is the gravitational pull of a safety requirement, and it is the same pull that makes every federated system drift toward a few trusted anchors.
I have seen this exact dynamic before. When I spent six weeks in 2021 mapping the composability between Lido's stETH and Aave's lending markets, the finding was never that a single actor was malicious. The finding was that a permissionless system can grow a centralization vector through the ordinary pursuit of efficiency. Lido's node operators could, in principle, censor stETH transfers. Nobody had to intend it. The structure permitted it, and the market rewarded the structure because it was liquid and convenient.
XRPL's dUNL is the same species of problem. Nobody has to force anyone. The default is simply easier than the alternative, and the safety requirement rewards convergence. That is how you get a validator set that looks decentralized on a block explorer and behaves like a curated list in practice. The concern is real. "Closed source" is just the wrong name for it. "Forced" is accurate only in the soft sense β which is the most effective sense, because soft coercion requires no enforcement mechanism to maintain.
Let me dissect the default UNL, because it is the load-bearing wall of the entire debate and it almost never gets explained properly.
The dUNL is a signed JSON structure. It contains a list of validator public keys, a sequence number, an expiration timestamp, and a signature from Ripple's infrastructure. Nodes can fetch it over HTTPS, apply it, ignore it, or replace it entirely with their own list. The rippled configuration lets you point at a URL for the dUNL and also lets you add or remove validators from your effective UNL by hand.
Structurally, then, the dUNL is a recommendation, not a mandate. Nothing in the code compels adoption. That is the honest defense of XRPL, and it is correct as far as it goes.
But the technical pressure is where the argument actually bites. For consensus to be safe, honest validators need overlapping UNLs. If your UNL and my UNL share almost nothing, we can diverge, and a divergent network can fork. So there is a genuine engineering incentive toward convergence β toward everyone adopting a similar list. That incentive is not malicious. It is a correctness requirement. But correctness requirements that push toward uniformity are exactly how federated systems drift into de facto centralization, one reasonable decision at a time.
This is the mechanism I return to again and again. When I hand-traced the constant-product invariant in Uniswap v1 back in 2019, ignoring the unit tests and reading the algebraic structure directly, I found an integer overflow in eth_to_token_swap_input that automated tooling had missed. The lesson was not about that specific overflow. The lesson was that defaults and shortcuts hide assumptions, and hidden assumptions are where systems break. The dUNL is a default. Its hidden assumption is that Ripple's recommendation is trustworthy and that operators will verify it. Most operators do not verify it. Most operators adopt it.
So: is the concern real? Yes. Is "closed source" the right name? No. Is "forced" accurate? Only in the sense that defaults are a form of coercion β the most effective form, because it requires no enforcement to sustain.
I think in trade-off matrices. It is a personal pathology, and it is also the honest way to present a system that is genuinely excellent at some things and genuinely compromised at others. Here is XRPL's consensus design laid against its two most common comparators.
Dimension | XRPL (RPCA + UNL) | Bitcoin (PoW) | Ethereum (PoS) Validator entry | Curated via UNL recommendation | Fully permissionless via hashrate | Semi-permissionless via 32 ETH stake Finality | 3-5 seconds, deterministic | Probabilistic, ~6 blocks | ~12-15 minutes to epoch finality Throughput | ~1500 TPS | ~7 TPS | ~15 TPS base layer Security source | UNL overlap + 80% threshold | Longest chain + accumulated work | Stake weight + slashing Centralization vector | dUNL recommendation authority | Mining-pool concentration | Staking-pool and client diversity Energy footprint | Negligible | High | Low Governance change | 80% validator amendment approval | Rough consensus / forks | EIP process + fork
Read the matrix honestly and two things jump out. XRPL wins on finality, throughput, and energy by a wide margin. It loses on validator permissionlessness and on the openness of its trust-anchor selection. Neither column is a moral verdict. They are engineering trade-offs, and XRPL chose throughput and finality at the cost of permissionless validation breadth.
The mistake critics make is treating XRPL as a failed attempt at Bitcoin. It is not. It is a deliberate design that accepts a curated validator set in exchange for speed and institutional usability. You can dislike that trade. You cannot call it a bug while ignoring that it was the specification.
The mistake defenders make is pretending the trade-off is free. It is not. The cost is that a single entity's recommendation carries systemic weight. That is the honest version of the "XRP is centralized" critique, and it is far stronger than "the code is closed."
There is a second governance surface the brief never mentioned, and it matters more than the licensing question.
XRPL upgrades through amendments. An amendment is a code change gated behind a network-wide vote. For an amendment to activate, it must be supported by at least 80% of trusted validators, sustained for two weeks. Once that threshold holds, the change activates automatically. Until it does, the feature is dormant.
On paper, that is decentralized governance. In practice, it inherits the same concentration as the UNL. If a large fraction of validators copy Ripple's default UNL, and Ripple's own validators are a meaningful bloc within that set, then the amendment threshold is effectively gated by Ripple's own position. The vote is real, but the electorate is curated by the same recommendation pipeline that curates consensus.
I watched this pattern in a different form when I audited an oracle network that fed AI-generated predictions on-chain. The network claimed deterministic execution. It was not deterministic β a language model's outputs are probabilistic, so the system quietly reintroduced a trusted third party to resolve the ambiguity it claimed to have eliminated. The governance was decentralized on the diagram and centralized in the arbitration path. XRPL's amendment vote is decentralized on the diagram and concentrated in the recommendation path. Same structure, different layer.
This is why I keep insisting the real XRP question is not "is the code open" but "who defines the set of validators whose votes count." Answer that, and you have answered the decentralization question. The license is a distraction.
In RPCA, a validator set operating with an 80% agreement threshold and high UNL overlap tolerates roughly up to one-fifth of its trusted validators being faulty without losing safety. The Chase-MacBrough analysis of the protocol tightened these bounds and showed the model is sound when the UNL-overlap assumption holds. The math is not the problem. The math is elegant.
The punchline is this: the security guarantee is only as strong as the diversity of the UNLs that actually overlap. If the effective validator set is curated by one party, then the honest-validator assumption is not distributed across the world β it is concentrated in the judgment of one organization. The math does not care about the license. The math cares about who holds the keys and how independent their incentives are.
That is the entire critique, stated precisely. It is a key-distribution problem, not a source-code problem. And it is measurable. You can pull the current dUNL, compare it against the UNLs that operators actually run, and compute the real overlap and diversity. Nobody in the brief did that. That is the work that would have turned an opinion into a finding, and its absence is the tell.
Zero-knowledge isn't mathematics wearing a mask. It is mathematics wearing a mask, and the mask is the trusted setup. I spent four months in the 2022 bear market buried in the zk-SNARK proving system, hand-writing a minimal groth16 prover in Rust to feel the elliptic curve pairings under my fingers. The lesson that stuck was not about the curves. It was that the ceremony β the trusted setup β is where human trust re-enters a system that claims to have removed it. Every system that hides trust has a ceremony, a config, or a committee somewhere. For XRPL, the ceremony is the dUNL. For a zk rollup, it is the toxic waste of the setup. For a threshold-signature bridge, it is the key-share distribution. The primitive changes. The shape does not.
Now the part the brief completely missed, and the reason I bothered writing this at all.
The most dangerous consequence of a "XRP is centralized" allegation is not reputational. It is legal. And it runs in a direction most people do not expect.
Under the Howey test, one of the four prongs is "expectation of profit derived from the efforts of others." The SEC's long-running case against Ripple turned, in part, on exactly this question: how much of XRP's value depends on Ripple's efforts versus the decentralized network's own operation. The 2023 summary judgment drew a line between programmatic exchange sales, which the court found did not constitute securities offerings, and institutional sales, which it found did. The line ran through the degree of decentralization and the buyer's reliance on Ripple's efforts.
Follow the logic. The more centralized XRP is judged to be β the more its operation depends on a single company's recommendation and stewardship β the more that prong tilts toward a securities finding. A critique intended to harm XRP by calling it centralized can, in a regulatory frame, hand ammunition to the argument that XRP is a security.
That is the hidden transmission chain: centralization allegation to governance perception to Howey prong to securities exposure. The brief not only missed it; it missed it while discussing decentralization, which is the exact variable that feeds the chain. The single most important downstream consequence of the accusation was invisible to the accusation's own framing.
I have audited systems where the same structural trap appeared in a different costume. In the AI-oracle network I examined, the model's non-deterministic output violated the consensus requirement, so the system quietly reintroduced a trusted third party to resolve the ambiguity it claimed to have eliminated. Whenever you find a system that says "trustless," look for the committee, the config, or the ceremony. XRP's is the dUNL. The regulator's version of that committee is the question of whose efforts drive the value. And a decentralization accusation feeds directly into it.
There is a second contrarian point, about the source. Three of the brief's four information points are the same person's same sentence, disassembled into pieces. A source that produces four claims but one viewpoint has an information density of approximately one. Real analysis would have sought the counter-position: Ripple's response, a validator's testimony, a code audit. None appeared. A brief that quotes only the prosecution is not a finding. It is an indictment with the defense excused.
And the third contrarian point is the one that stings defenders most. Even if the licensing claim is wrong, the dUNL concern is not. And it is checkable. Anyone can pull the current default validator list, compare it against the lists operators actually run, and compute the diversity. If the overlap is high because the operator set is genuinely independent, the concern is overblown and can be dismissed with data. If the overlap is high because everyone copies one list, the concern is confirmed with data. The fact that this check is trivial and was not done is the real indictment β not of Ripple, but of the discourse that keeps arguing about a license instead of measuring a key set.
Here is where I part ways with the framing of the entire controversy. The decentralization of the ledger and the value of the token are two different systems, and treating them as one is a category error that infects most XRP discourse.
XRP is a utility and settlement token. It has a hard cap of 100 billion, no inflation, and no staking yield. There is no "new money pays old money" structure, so the Ponzi label β thrown around casually by people who have never opened the ledger β simply does not apply. XRPL has no staking mechanism at all, which means there is no yield-farming incentive to distort behavior. The token economics are, structurally, cleaner than most of the market.
The real token-level risks have always been elsewhere. Ripple's escrow releases roughly a billion XRP a month, with unused portions returning to escrow, which caps the release but keeps a steady supply drip in place. The early founder allocations β the McCaleb dumps, which ran for years β were a genuine supply overhang. And value capture depends almost entirely on real usage of On-Demand Liquidity corridors, not on governance quality.
So here is the contrarian read on the brief's own framing: even if XRPL were fully centralized tomorrow, the XRP token's price logic would barely move, because that logic is driven by regulatory outcomes and commercial adoption, not by validator diversity. The decentralization controversy is loud, but it is decoupled from the token's actual value drivers. The brief never noticed this, because the brief never mentioned token economics at all. It spent four information points on a governance accusation and zero on the thing that actually prices the asset.
Context matters. We are in a sideways market. Chop is not a direction; it is a positioning regime. In a tape like this, single-source governance allegations do not move price β they move sentiment for a news cycle and then decay.
"XRP is centralized" is a decade-old narrative. It has been repeated, rebutted, and repeated again. Its marginal pricing power is near zero, because it is not new information. The brief's own language gives this away: "again faces centralization accusations." The word "again" is the whole story. This is a rerun, not a revelation.
The honest pricing hierarchy for XRP runs: regulatory progress first, commercial adoption second, governance controversy a distant third. This event sits at the bottom of that hierarchy. Without a second source, a code artifact, or a validator speaking on the record, it will not form an independent trend. It is a sentiment event wearing the costume of a fundamental event.

And the source itself blunts the impact. Bons is a known, long-standing XRP critic who runs an investment firm. That does not make him wrong. It does mean his view is not neutral, and a market that has watched him criticize XRP for years has already priced his criticism into the noise floor. A fresh voice would have moved more. A familiar voice moves less.
Here is the part the decentralization debate misses entirely, and it connects to a broader pattern I have been tracking for three years.
XRPL's ecosystem moat is not its developer community. It is not its DeFi composability, which is thin. Its moat is institutional relationships β the SBI partnership in Japan, the cross-border payment corridors, the settlement integrations. That is a business moat built on compliance and speed, not on validator diversity.
This is the uncomfortable truth about real-world-asset tokenization and institutional adoption that the industry refuses to admit: traditional institutions do not need your public chain. They need settlement finality, regulatory clarity, and a counterparty they can call. XRPL offers all three. Whether its validator set is diverse is a question no bank's compliance department has ever asked. They ask about KYC, about audit trails, about legal recourse.
So the institutional transmission path for a decentralization allegation is narrow. An SBI or a Santander cares about whether XRPL settles a payment reliably and defensibly. It does not care whether the dUNL is curated. If anything, a curated validator set is easier for an institution to reason about than a permissionless one, because it has a known counterparty. The critique that XRP is centralized may be the very feature that makes it institutionally palatable. That is the irony the brief walked straight past.
The only way a decentralization allegation reaches the ecosystem is if it touches the regulatory question β which is why the Howey coupling is the real story and the license is a sideshow.
XRPL is not alone in the federated-consensus family, and the comparison is instructive. Stellar, co-founded by the same Jed McCaleb who left Ripple, runs a structurally similar model: a set of trusted nodes, a quorum-based consensus, a curated trust graph. Stellar's Stellar Core is open source. Stellar has also faced the same centralization critique. Neither project's controversy has ever been about the license. Both have been about who defines the trusted set.
That pattern is the giveaway. When two independent projects built by overlapping founders, running overlapping consensus designs, draw identical accusations, the accusation is not about code secrecy. It is about the federated-consensus model itself and its inherent tension with permissionless ideals. You can criticize that model. It is a legitimate criticism. But you have to name it correctly, and "closed source" names it incorrectly.
The same mistake shows up in the Layer 2 debate, where the fight between OP Stack and ZK Stack is sold as a technical contest. It is not. The real difference is distribution β who can convince more projects to deploy chains on their stack first. The technical differences matter at the margins; the adoption flywheel matters at the center. XRP's decentralization fight is the same shape: a technical-sounding argument that is really a governance and distribution argument in disguise.
There is a mirror worth holding up here. Bitcoin, post-ETF, has become a Wall Street instrument. The custodians hold the coins. The spot ETFs run through the same rails as any other equity product. Satoshi's peer-to-peer electronic cash vision is, functionally, dead β replaced by a ticker that trades during market hours. XRP made a similar institutional pivot years earlier, courting banks and payment corridors instead of retail sovereignty. Both assets converged on the same destination: institutional infrastructure with a crypto veneer. When an asset's adoption depends on institutions, its decentralization is measured by what institutions need, not by what cypherpunks want. That is the frame in which the XRP debate should be read, and it is a frame the brief never constructed.
Before the takeaway, let me do the thing the brief refused to do: state what would change my mind.
If Ripple published a fully reproducible, third-party-audited pipeline for generating the dUNL, and independent operators demonstrably ran divergent UNLs with high mutual overlap, the centralization concern would collapse. That is a falsifiable condition. It can be tested.
If, instead, a measurement showed that operator UNLs cluster tightly around the published default with little independent variance, the concern would be confirmed. That is also falsifiable.
Either way, the argument is decidable by data. It is not a matter of opinion, and it is not a matter of licensing. The fact that a decade of discourse has produced neither measurement is the most damning fact in this entire episode β more damning than anything Bons said, and more damning than anything Ripple's defenders have offered in reply.
Here is my forward-looking read.
The XRP decentralization debate will not be resolved by another round of accusations. It will be resolved, if at all, by two artifacts that do not yet exist: a reproducible, third-party audit of the dUNL publication pipeline, and a public measurement of real UNL overlap across independent operators. Until those exist, every claim in either direction is a hypothesis, and a hypothesis dressed as a finding is the most dangerous artifact of all.
Watch the coupling, not the claim. The variable that matters is not whether a critic calls XRP centralized. It is whether a regulator or a court starts using that characterization to answer the Howey question. That is where the narrative stops being noise and starts being price. That is the line to track.
And remember the shape of the thing. Code is law β but bugs are reality, and here reality is a signed JSON file that most operators adopt without reading. The most consequential line of code in this entire controversy is the one nobody ran: the measurement that would have told us who actually trusts whom.