Op 21 november 2025 ondervond Cardano een onverwachte splitsing van zijn mainnet als gevolg van een kwetsbaarheid in de nieuwe nodesoftware. Een malafide staking-delegatie transactie, die een fout in de software demonstreerde, resulteerde in de creatie van twee concurrerende blockchains: een ‘vervuilde’ versie die de ongeldige transactie accepteerde en een ‘gezonde’ versie die het verwierp. In de 14,5 uur dat deze situatie aanhield, werden exchange-activiteiten voor ADA gepauzeerd, conflicterende saldi verschenen in wallets, en ontwikkelaars razendsnel gepatcheden node-versies uitgerold om de ledger onder één uniforme geschiedenis te herenigen. Hoewel er geen fondsen verloren gingen en de netwerkfunctionaliteit niet volledig stopte, was dit een pijnlijke herinnering aan de risico’s van consensus splitsingen die ontstaan door software-inconsistenties, in plaats van door opzettelijke forks.
Charles Hoskinson, mede-oprichter van Cardano, gaf aan dat hij de FBI en relevante autoriteiten had ingeschakeld toen een voormalige stake-pool operator toegaf de defecte delegatie-transactie te hebben gepubliceerd. Dit wijst op de complexiteit van blockchain-netwerken, waarbij elke daad binnen een protected computer network een potentieel juridische implicaties kan hebben, vooral als de acties als een test worden gepresenteerd maar daadwerkelijk een ongeoorloofde verstoring veroorzaakten.
De governance-organisatie Intersect ontdekte dat de splitsing het resultaat was van een legacy deserialisatiebug in de hash-behandeling van delegatiecertificaten. Deze bug, die zijn oorsprong vond in 2022, bleef slapend totdat nieuwe uitvoeringspaden deze blootstelden in nodesoftwareversies 10.3.x tot 10.5.1. Toen de malafide delegatie-transactie rondom 08:00 UTC werd verzonden, accepteerden de nieuwere nodes deze als geldig, terwijl oudere nodes het als ongeldig afwezen. Hierdoor ontstond een onoverbrugbare kloof tussen de netwerkgroepen, waarbij de stake pool operators met de verziekte versie de vervuilde keten verder uitbreidden.
Cardano’s consensusprotocol, Ouroboros, vraagt elke validator de zwaarste geldige keten te volgen die zij waarnemen. Echter, wat ‘geldig’ was, varieerde afhankelijk van de nodeversie. Dit resulteerde in een live partitionering waar beide takken hun respectieve blocks bleven produceren, maar niet konden verzoenen zonder handmatige interventie. Een vergelijkbaar patroon had zich nog eerder voorgedaan op de Preview testnet, wat uiteindelijk leidde tot de ontdekking van de bug in een omgeving met lagere inzet.
De splitsing werd opgelost door middel van vrijwillige upgrades in plaats van door een noodcoördinatie. Intersect en de kernontwikkelaars lanceerden gepatchte nodeversies, 10.5.2 en 10.5.3, die de malafide transactie correct afwezen en zich weer op de gezonde keten richtten. Naarmate steeds meer stake pool operators en exchanges de patches adopteerden, kantelde het consensusgewicht geleidelijk terug naar een enkele ledger. Aan het einde van de dag was de keten samengevoegd en werd de vervuilde tak verlaten.
Dit incident gaf blijk van een belangrijke maar ongemakkelijke realiteit: twee canonieke ledgers bestonden gelijktijdig zonder dat dit leidde tot een diepe reorganisatie of een permanente verlies van finaliteit, dankzij verschillende randvoorwaarden. De bug bevond zich niet in de cryptografische basiselementen van Cardano of de ketenselectieregels van Ouroboros, maar in de toepassing van validatielogica. Cruciale actoren zoals oudere stake pool operators, die de defecte transactie afwezen, waarborgden een substantieel stakegewicht achter de gezonde keten.
Ethereum benadert clientdiversiteit als een essentieel kenmerk van veerkracht. Na de Merge opereert Ethereum met gescheiden uitvoering- en consensuslagen, elk ondersteund door meerdere onafhankelijke implementaties. Dit opzet maakt het mogelijk dat één enkele codebase niet in staat is om een ongeldige block op het netwerk af te dwingen; bugs in één client leiden tot lokale gevolgen in plaats van wereldwijde storingen.
De werkwijze is effectief gebleken, zoals aangetoond in een incident begin 2024 waarbij een consensus-beïnvloedende bug in Nethermind validators die dat client gebruikten, veroorzaakte dat ze achterbleven in blockverwerking. Deze validators ondervonden misgelopen beloningen, maar de canonieke keten bleef intact op de meerderheid van de clientimplementaties, waardoor een fork voorkomen werd.
In sterk contrast met Cardano en Ethereum, kiest Solana voor een enkele validatorbinary en runtime. Wanneer deze implementatie faalt, stopt de consensus doorgaans volledig. Het netwerk beleefde eerder een langdurige uitval van 17 uur als gevolg van een grote hoeveelheid botverkeer, waardoor validators niet langer in staat waren om stemmen door te geven. Ook recentere incidenten bewijzen een consistent patroon van volledige stilstand bij netwerkproblemen, wat de voorkeur bevestigt voor keten uniekheid boven continuïteit.
Cardano’s splitsing benadrukt het belang van intensieve fuzzing en foutinjectie rondom serialisatiecodes. De bug zat verscholen in een hash-deserialisatie routine die pas werd geactiveerd door een specifieke klas van delegatietransacties, wat het type sluimerende fout vertegenwoordigt dat vaak aan standaardtests ontsnapt. Derhalve is differiële testing cruciaal bij het waarborgen dat meerdere implementaties van een protocol bestand zijn tegen ongewenste splitsingen.
Ethereum’s onderzoek benadrukt nu het meten en stimuleren van clientdiversiteit, niet louter als aanbeveling maar als randvoorwaarde, om ervoor te zorgen dat geen enkele bug de hele keten kan beïnvloeden. De voorbereide noodherstelplannen onder CIP-135 en de transparante communicatie tijdens het voorval hielpen te voorkomen dat het incident escaleerde naar een coördinatiefalen.
Bovendien legt de situatie een culturele kloof bloot rond het bekendmaken van bugs. De aanvaller koos ervoor een testnet-exploit op de mainnet uit te voeren in plaats van deze via het bug bounty-programma in te dienen. Dit herinnert eraan dat heldere, goed beloond disclosurepaden de beste manier blijven om de houding ’te proberen op de mainnet en te zien wat er gebeurt’ te vermijden.
Wat was de oorzaak van de splitsing in Cardano?
De splitsing was het resultaat van een malafide staking-delegatie transactie die een sleepende bug in de nieuwe nodesoftware exploiteerde, waardoor twee concurrerende ketens ontstonden.
Hoe heeft Cardano de splitsing opgelost?
De splitsing werd opgelost door vrijwillige upgrades van de nodesoftware te implementeren, waardoor de malafide transactie correct werd afgewezen en het netwerk weer convergente op een enkele hiërarchie.
Wat zijn de implicaties voor andere blockchains?
De situatie benadrukt het belang van diversiteit onder clients en effectieve herstelstrategieën. Het laat zien hoe cruciaal het is om kwetsbaarheden te identificeren en te verhelpen voordat ze leiden tot significante netwerkproblemen.
