Zcash-ontwikkelaars hebben vorige week met spoed patches uitgebracht na de ontdekking van een kritieke kwetsbaarheid in de Orchard shielded pool, waarmee een aanvaller onbeperkt valse ZEC kon creëren. De bug werd op 29 mei ontdekt door beveiligingsonderzoeker Taylor Hornby met behulp van AI-ondersteunde formele methoden, wat leidde tot een crisis die vier dagen later eindigde met een hard fork. Maar omdat de privacyarchitectuur van Zcash voorraadcontrole onmogelijk maakt, kan het team niet bewijzen of de exploit ooit is gebruikt — of niet.
De bug en zijn ontdekking
De fout zat in een onderbeperkt element binnen de elliptische-kromme-vermenigvuldigingscomponent in de halo2_gadgets crate, onderdeel van het nul-kennis bewijssysteem dat Orchard ondersteunt. Het zat er al sinds de mainnet-activatie van Orchard in mei 2022 — ongeveer vier jaar. Dat betekende dat iedereen die ervan wist, in theorie ZEC uit het niets kon aanmaken zonder een spoor on-chain achter te laten.
Hornby vond het probleem met behulp van formele verificatietools die getraind waren op cryptografische code. De kwetsbaarheid had invloed op alle versies van halo2_gadgets vóór v0.5.0, orchard vóór v0.14.0, en zcashd-versies v5.0.0 tot en met v6.12.3.
Spoedreparaties uitgebracht
Binnen enkele uren na de openbaarmaking bracht het team een soft fork uit via Zebra 4.5.3 die Orchard-transacties tijdelijk volledig uitschakelde. Een permanente oplossing kwam met de NU6.2 hard fork — Zebra 5.0 — die op 2 juni bij blok 3.364.600 werd geactiveerd en het circuit zelf corrigeerde. Gebruikers op getroffen nodes moesten onmiddellijk upgraden om op de juiste keten te blijven.
Shielded Labs, dat bijdraagt aan de ontwikkeling van Zcash, verklaarde dat zij achten dat eerdere exploitatie onwaarschijnlijk is, maar dit niet definitief kunnen bewijzen. Die onzekerheid zit ingebakken in het systeemontwerp: shielded pools verbergen transactiebedragen en saldi, waardoor het cryptografisch onmogelijk is om de totale voorraad te controleren.
De onbeantwoordbare vraag
Ripple CTO David Schwartz gaf zijn mening over het praktische risico. Passieve houders die hun munten nooit verplaatsen, zullen veilig zijn, zei hij — aangenomen dat de bug nooit is geactiveerd. Maar die voorwaarde kan niet worden geverifieerd. De enige manier om zeker te zijn, zou zijn om de shield te breken die Zcash juist moest beschermen.
Het is een zeldzaam moment waarop een kernfunctie van een privacycoin zijn grootste aansprakelijkheid wordt. Als een aanvaller valse ZEC heeft aangemaakt en in omloop heeft gebracht, is er geen manier om dat te achterhalen. De voorraad zou opgeblazen kunnen zijn en niemand zou het weten.
Marktreactie
ZEC wachtte niet op antwoorden. De prijs daalde meer dan 30% in één sessie na de openbaarmaking op 29 mei, en bereikte kort het laagste niveau in meer dan een maand. De verkoopgolf weerspiegelde niet alleen de bug zelf, maar ook de onzekerheid over de mogelijke impact. Een privacycoin die zijn eigen voorraad niet kan verifiëren, is moeilijk te verkopen, tenminste op korte termijn.
De patches zijn nu live en Orchard-transacties zijn weer online. Maar de vraag die overblijft — is de bug ooit geëxploiteerd? — is er een die de architectuur van Zcash misschien nooit zal laten beantwoorden.




