Zcoin, une extension du Bitcoin au centre d'une énorme fuite estimée à 400 000 $,
Les failles d'un projet open source

Le , par Patrick Ruiz, Chroniqueur Actualités
Depuis novembre 2008, le concept de monnaie cryptographique dénommée Bitcoin a connu bien de reproductions. On en dénombre à ce jour au moins 700 variantes. Celle au centre de notre attention aujourd’hui est Zcoin et pour cause, une erreur de saisie dans l’implémentation du protocole Zerocoin a permis à des hackers de s’emparer de l’équivalent de 400 000 $.

De Bitcoin à Zcoin


Le concept de Bitcoin se résume en une phrase simple : « la possibilité d'échanger de l’argent via internet comme on le ferait avec des courriels ». Comme pour un échange de courriels, on fait donc usage d’adresses (pour envoyer de l’argent à Jerry, Amy a besoin de connaitre son adresse ou Public Key). Elles sont générées automatiquement par un portefeuille Bitcoin (dans la figure ci-dessus, Amy et Jerry disposent de portefeuilles installés sur leurs téléphones respectifs). Transférer des bitcoins d’un portefeuille à un autre prend le nom de transaction dans la terminologie du concept Bitcoin. La totalité des transactions est enregistrée dans la blockchain (chaine de blocs), laquelle est rendue publique à chaque nœud (utilisateur) du réseau. On peut bien voir qu’une transaction encapsule au moins une information cruciale, celle d’adresse. Celle-ci peut permettre de « tracer » les activités d’un utilisateur sur le réseau et de fil en aiguille de retrouver sa véritable identité.

Le Bitcoin est donc un système permettant de transférer de l’argent dans un pseudoanonymat. Le protocole Zerocoin est une extension du Bitcoin mis en place pour lever cette limitation majeure c’est-à-dire permettre aux utilisateurs du réseau Bitcoin de pouvoir transférer leurs avoirs dans un réel anonymat, ce, par l’utilisation d’un portefeuille compatible Zcoin (Zcoin est une implémentation pratique du protocole Zerocoin). Faisons simple, utilisez un portefeuille compatible Zcoin pour opérer sur le réseau Bitcoin tout en vous affranchissant du risque de vous faire pister.

Les failles dans le projet Zcoin

Le projet Zcoin est open source. Son code source est disponible sur GitHub. Des sections particulières de celui-ci ont été dévoilées par le biais de cryptocentral. Elles mettent en exergue les failles exploitées par les hackers pour pouvoir dérober des fonds. L’usage de l’opérateur de test d’égalité (==) à la place de celui d'affectation (=) dans diverses sections du code source aura permis aux hackers de déjouer le système pour s’emparer de fonds estimés à 400 000 $.

Les auteurs du code source et les contributeurs auraient-ils tous fait fi d’un principe fondamental du test de logiciel qui stipule que « l’absence de bogue dans une application est une utopie » ? Un contributeur malhonnête aurait-il détecté la faille et profité pour extorquer des fonds ? En tout cas voilà qui remet sur la table le débat sur la pertinence de faire d’un projet un « open source ». Zcoin a pour sa part annoncé avoir corrigé le problème.

Sources : weusecoins, github, cryptocentral

Et vous ?

Pensez-vous qu'un contributeur au projet soit derrière cet acte ?

Finalement, mettre un projet dans le domaine public aurait-il plus d'inconvénients que d'avantages ?

Voir aussi :

La cryptomonnaie bitcoin connaît une envolée dépassant les 800 dollars pour un bitcoin en cette fin d'année, peut-on l'utiliser comme valeur refuge ?

Le système de paiement de Bitcoin aurait-il atteint ses limites ? Plusieurs transactions n'auraient pas été validées après des heures d'attente


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de micka132 micka132 - Membre émérite https://www.developpez.com
le 08/03/2017 à 17:55
Citation Envoyé par Patrick Ruiz Voir le message
Finalement, mettre un projet dans le domaine public aurait-il plus d'inconvénients que d'avantages ?
En tout cas ca ne le rend en rien plus sécurisé!
Prochain scandale ca sera les chevaux de troyes dans nos navigateurs avec un code source pourtant bien visible par "tout le monde".
Avatar de JackJnr JackJnr - Membre confirmé https://www.developpez.com
le 08/03/2017 à 18:07
L’usage de l’opérateur de test d’égalité (==) à la place de celui d'affectation (=) dans diverses sections du code source
Ca me rappelle une histoire au sujet du noyau Linux. Quelqu'un avait tenté de faire passer une modif pour s'octroyer les droits root en transformant le test d'égalité en affectation, mais dans ce cas ça avait été remarqué
Avatar de NSKis NSKis - Membre émérite https://www.developpez.com
le 08/03/2017 à 18:31
Ce n'est pas la première histoire de ce type dans le petite monde merveilleux du "Bitcoin and Company" et ce ne sera pas la dernière!

Cela n'empêchera pas les "afficionados" de la monnaie numérique de dire qu'il ne s'agit que d'une exception absolument exceptionnelle qui ne tâche en rien le grand avenir de la solution...
Avatar de Lcf.vs Lcf.vs - Membre éprouvé https://www.developpez.com
le 08/03/2017 à 18:32
Citation Envoyé par Patrick Ruiz Voir le message
Zcoin a pour sa part annoncé avoir corrigé le problème.
Ben, encore heureux
Avatar de Matthieu Vergne Matthieu Vergne - Expert confirmé https://www.developpez.com
le 08/03/2017 à 18:50
Je ne sais pas si les adeptes de cette crypto-monnaie sont des croyants du "zéro test parce que zéro défaut", mais penser que trouver un bogue dans un projet open-source relance le débat sur la pertinence de faire un projet en open-source ne me semble pas plus mature. Si on devait remettre en cause l'idée de faire des projets propriétaires à chaque fois que M$ bogue, on n'aurait jamais le temps de dormir.
Avatar de Lcf.vs Lcf.vs - Membre éprouvé https://www.developpez.com
le 08/03/2017 à 19:11
@Matthieu Vergne: Ouep, et on peut en dire tout autant de l'association de ces bugs, aux crypto-monnaies... les systèmes basés sur des monnaies réelles n'en sont pas plus à l'abri, loin de là...
Avatar de monwarez monwarez - Membre actif https://www.developpez.com
le 09/03/2017 à 9:29
Ce bug aurait pu être évitée en compilant avec -Wall . Je viens de faire un test avec le code suivant
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
10
int main()
{
    int a = 5;
    int b = 6;

    a == b;

    return 0;
}
Qui donne lors de la compilation avec les warnings
Code : Sélectionner tout
1
2
3
4
5
6
7
8
9
main2.cpp:6:7: warning: equality comparison result unused [-Wunused-comparison]
    a == b;
    ~~^~~~
main2.cpp:6:7: note: use '=' to turn this equality comparison into an assignment
    a == b;
      ^~
      =
1 warning generated.
Avatar de Matthieu Vergne Matthieu Vergne - Expert confirmé https://www.developpez.com
le 09/03/2017 à 10:05
Citation Envoyé par monwarez Voir le message
Ce bug aurait pu être évitée en compilant avec -Wall .
Vu que ce ne sont que des warnings, il ne suffit pas d'utiliser l'option. Encore faut-il faire l'effort de corriger les causes des warnings. Et si l'équipe n'a pas cette habitude (ce qui me semble relativement commun) le projet doit avoir une quantité phénoménale de warnings. Ce qui bien entendu amène à les ignorer purement et simplement, rendant l'option totalement inutile. Je n'ai pas compilé leur code, donc je ne sais pas si ça s'applique à leur cas, mais ce serait une explication possible (ce qui ne n'efface pas leur responsabilité, on est bien d'accord).
Avatar de kain_tn kain_tn - Membre chevronné https://www.developpez.com
le 09/03/2017 à 22:03
Citation Envoyé par Patrick Ruiz Voir le message
En tout cas voilà qui remet sur la table le débat sur la pertinence de faire d’un projet un « open source »
Wouaou... Heureusement que l'on est entre professionnels de l'informatique...
Avatar de paidge paidge - Membre éprouvé https://www.developpez.com
le 13/03/2017 à 9:29
Citation Envoyé par NSKis Voir le message
Cela n'empêchera pas les "afficionados" de la monnaie numérique
Parce que c'est quoi l'Euro à ton avis ???? Tu crois que y'a du "vrai argent" derrière les chiffres que le site de ta banque t'affiche ? lol

Citation Envoyé par Lcf.vs Voir le message
les systèmes basés sur des monnaies réelles n'en sont pas plus à l'abri
L'euro n'est pas plus "réel" que le bitcoin ! Une monnaie devient réelle à partir du moment où les gens l'utilisent....

Attention, je ne défends pas le bitcoin. Pour preuve :

Le logiciel bitcoin (et surtout la blockchain) a ouvert la voie. Il a permis de montrer qu'on pouvait faire le travail des banques. C'est-à-dire enregistrer informatiquement les transactions des citoyens. Ni plus, ni moins.
Le problème du Bitcoin et de ses dérivés est que la monnaie est créée sur du temps machine. Ainsi plus vous disposez d'une grande puissance de calcul et plus vous aurez de chance de "trouver" des Bitcoins. De plus, l'algorithme simule le "minage" de l'or. Alors il existe une asymétrie fondamentale dans la création de la monnaie (les premiers arrivés sont les mieux servis : la moitié des bitcoins en circulation a été créée pendant le 1er mois).

Depuis maintenant une semaine, un nouveau type de monnaie a vu le jour. Il s'agit de ce qu'on appelle une monnaie libre (à l'instar du logiciel libre), respectant les 4 libertés fondamentales économiques. Les monnaies libres sont définies dans la Théorie Relative de la Monnaie, qui n'est qu'une démonstration mathématique prouvant qu'il existe une forme de création monétaire respectant l'égalité spatio-temporelle entre les individus.

Une monnaie libre est co-créée par Dividende Universel indexé sur l'espérance de vie humaine. Ainsi la monnaie respecte le renouvellement des hommes et des valeurs échangées (la valeur des encyclopédies a été, par exemple, remplacée par Wikipedia). Pour vérifier que les utilisateurs sont bien des êtres humains, les monnaies libres utilisent le principe de la toile de confiance (théorie des graphes, intelligence collective...)

Pour plus d'infos : http://rml9-lehavre.tk
Offres d'emploi IT
Ingénieur statisticien H/F
Safran - Ile de France - Moissy-Cramayel (77550)
Ingénieur conception électrique / électronique H/F
Safran - Ile de France - Villaroche
Responsable de lot vérification et qualification (IVVQ) H/F
Safran - Alsace - MASSY Hussenot

Voir plus d'offres Voir la carte des offres IT
Contacter le responsable de la rubrique Accueil