Kao što smo to objasnili u prijašnjem članku, pametni ugovori Ethereum blockchaina čine Ether programabilnim novcem. No, bez testiranja i pažljivog razvoja, mnogo toga može poći po zlu. U to se nedavno uvjerio Hacker News korisnik masterspy7 koji je lansirao stranicu CryptoButton.

Cryptobutton radi na sljedeći način: ukoliko imate instaliranu ekstenziju MetaMask (Ethereum wallet za preglednik) možete platiti da izvršite klik na gumb koji resetira odbrojavanje na 30 minuta. Onaj tko zadnji klikne na gumb automatski dobiva ukupno poslana sredstva od pametnog ugovora (minus 20% koje zadržava autor stranice).

No, izgleda da Masterspy7 nije isprobao svoj rad i pustio ga je u javnost s greškom u kodu:

    // The winner is responsible for withdrawing the funds
    // after the button expires
    function Win() public {
        require(msg.sender == winner);
        require(now > deadline);
        reward = 0;
        winner.transfer(reward);
    }

Vrijednost nagrade isprogramirana je na 0, što znači da zadnji koji klikne gumb dobiva točno toliko – $0, bez obzira na to koliko je Ethera do tada poslano.

Korisnici su ga upozorili na grešku, no ne prije nego je na gumb poslano ukupno oko $246 u Etheru koji su sada izgubljeni zauvijek. Srećom, greška je popravljena prije nego je više ljudi stiglo sudjelovati

Lekcija? Uvijek testirajte svoj kod prije lansiranja proizvoda i dajte ga drugim ljudima da ga pogledaju!


Zanimljiv članak? Saznali ste nešto novo? Razmislite o tome da nas podržite u daljnjem radu donacijom.

LEAVE A REPLY

Please enter your comment!
Please enter your name here