Il a suffi d’une faute de frappe dans le code source de la crypto-monnaie Zcoin pour qu’un escroc génère autant de paiements qu’il le souhaitait. Un vol estimé à 410 Bitcoin, soit 437 000 dollars.
Zerocoin est un protocole de paiement créé par des universitaires pour répondre aux défauts de sécurité des protocoles Bcoin, en améliorant le cryptage des données. L’objectif était notamment de corriger les manques de Bitcoin sur l’anonymisation des transactions. En utilisant des techniques de chiffrement avancé, ZeroCoin propose des paiements qui ne peuvent être tracés par qui que ce soit.
ZeroCoin a attendu vainement d’être adopté par la communauté Bitcoin, et ses créateurs ont fini par changer son code source pour en faire une véritable crypto-monnaie, et donc un concurrent de Bitcoin. La monnaie virtuelle a été nommée Zcoin.
Un certificat de paiement pour un nombre illimité de transactions
Mais une erreur de frappe dans ce code source a eu des effets dévastateurs pour la monnaie : un simple caractère, laissé par erreur dans le code, a généré un bug qui permettait de contourner la sécurité de paiement de Zcoin. Un hacker en a profité pour réutiliser des certificats valides pour générer autant de transactions qu’il souhaitait : un seul certificat de paiement lui permettait d’obtenir plusieurs fois la même somme.
L’escroc a pris la double précaution de créer plusieurs comptes et d’échelonner ces paiements frauduleux sur plusieurs semaines. Il a fallu que l’équipe de Zcoin se rende compte que sa balance était fausse pour découvrir la faille. Mais le voleur avait déjà réussi à revendre 350 000 ZeroCoin sur les 370 000 qu’il avait dérobés, soit un bénéfice d’environ 437 000 dollars.
Un voleur qui restera introuvable
L’équipe de ZeroCoin a immédiatement mis en place un patch pour corriger le bug. Mais le voleur ne sera probablement jamais retrouvé car, ironie de l’histoire, son identité est resté protégée par le protocole d’anonymisation qui fait la fierté de ZeroCoin.