SmartBillions place 450 000$ dans un contrat Ethereum…et se fait pirater deux jours après

05 octobre 2017 - 17:08

Temps de lecture : 3 minutes

Par Victor

SmartBillions est la première loterie entièrement décentralisée et transparente gérée par un contrat intelligent Ethereum. Tous les paris et les résultats sont publics et enregistrés sur la blockchain Ethereum sans intervention d’un tiers.

SmartBillions a peut-être été légèrement trop confiant concernant sa sécurité. Afin de prouver l’inviolabilité de son smart-contract et de tester sa sécurité, les organisateurs ont décidé de placer 1 500 Ethers soit 450 000 dollars dans un contrat intelligent.

L’idée est pourtant très respectable. Quelques jours avant le début de son ICO, SmartBillions a annoncé lancer un hackathon en défiant quiconque de pirater le smart-contrat. A la clé pour les pirates, un jackpot de près d’un demi million de dollars. Cette décision devait permettre d’avoir l’entière confiance des investisseurs, qui auraient eu la certitude que les fonds qu’ils placeraient durant la levée de fonds resteraient en sécurité.

Les personnes derrière le projet indiquaient :

« Afin de valider la sécurité du contrat, nous avons mis 1 500 ETH dans le smart contract SmartBillions 7 jours avant l’entrée en vigueur de l’ICO. Tout le monde est invité à pirater SmartBillions et retirer les fonds. Brisez le contrat intelligent et devenez riche! »

Et on peut dire que cette annonce n’est pas tombée dans l’oreille d’un sourd car manque de chance, il n’aura fallu que deux jours à un hacker pour vidanger l’argent.

En cause, certaines fonctions défaillantes. Si vous placiez un pari (fonction SystemPlay ()) en pariant sur la valeur numérique « 0 » puis appeliez la fonction won () plus de 256 blocs après avoir placé le pari, la valeur retournée sera « 0 » donc vous auriez parié sur « 000000 » et le résultat serait « 000000 ». Jackpot.

[adblockingdetector id= »5bbf1a00ae440″]

L’individu a dans un premier temps parié  « 1 » soit « 000001 » et le résultat après 256 blocs appelant la fonction win () fût « 000000 » . Le hackeur a donc trouvé correctement 5 chiffres soit un beau x20000 et avec 0.01ETH parié, le montant  gagné est de 200 ETH. Le pirate aurait réussi à effectuer cette manipulation 2 fois et a par la suite corrigé son attaque en entrant « 0 » ce qui lui aurait fait (faussement) gagner l’entièreté du contrat. Pour cette transaction il a dû attendre 256 blocs supplémentaires, mais 5 min avant qu’il ne puisse appeler la fonction won () les propriétaires ont retiré tous les fonds restants. Le hackeur est donc (seulement) reparti avec 400 ETH.

Les organisateurs récidivent et placent de nouveau 1 500 ETH

Sur le forum Bitcointalk, les organisateurs ont déclaré « nous félicitons la première personne à avoir retiré les fonds pendant le hackathon et soulignons notre bonheur avec le résultat. »

 » Le hackathon SmartBillions s’est tenu en tant que validation finale de la sécurité du contrat intelligent et pour sécuriser les fonds futurs des investisseurs. L’objectif le plus important du hackathon a toujours été et sera la protection des fonds des investisseurs. Nous avons été témoins du meilleur scénario possible, car la fuite a été signalée pendant le hackathon et non pas après le début de l’ICO. Nous croyons fermement en ce mécanisme de vérification communautaire et, par conséquent, le prochain hackathon débutera aujourd’hui, sur la base du nouveau contrat intelligent. »

Les hackathons sont des concours très efficaces et souvent utilisés dans l’industrie informatique afin de mettre à l’épreuve la robustesse d’une technologie. L’ICO de SmartBillions pouvant récolter  jusqu’à 252 000 ETH, cette décision a très certainement évité une catastrophe d’ampleur.

[adblockingdetector id= »5bbf1a00ae440″]

Recevez le top 3 de l'actualité crypto chaque dimanche