19.02.2017 | 10:11

Adam Haertle

Jak jeden dodatkowy znak w kodzie pozwolił komuś zarobić prawie 2 mln PLN

Czy uważna lektura kodu źródłowego możemy być opłacalna? Coś na ten temat wiedzą łowcy błędów, jednak nagrody wynoszące prawie dwa miliony złotych nie zdarzają sie codziennie i czekają głównie w kodzie źródłowym różnych nowych kleptowalut.

Twórcy Zerocoin, kryptowaluty która ma za zadanie zagwarantować całkowitą prywatność i kompletną anonimowość jej posiadaczom, ogłosili właśnie, że na skutek błędu w kodzie implementacji waluty ktoś był w stanie generować ją „z powietrza” i zarobił na tym ponad 400 bitcoinów. Warto także zauważyć, że złodziej jest kompletnie anonimowy i zachowuje pełną prywatność.

Coś z niczego

Ogłoszenie o incydencie pojawiło się w oficjalnym serwisie Zerocoin. Możemy się z niego dowiedzieć, że u podstaw problemu leżała literówka w postaci jednego dodatkowego znaku w kodzie programu. Miała ona bardzo specyficzny skutek – mianowicie pozwalała na ponowne użycie dowodu pracy „kopalni” do wygenerowania nowych monet. W założeniu kryptowalut praca obliczeniowa wykonywana przez „górników” może być nagrodzona tylko raz. W tym przypadku ktoś odkrył, że pracę może wykonać raz i wielokrotnie odbierać za nią nagrodę. Według dostępnych informacji autor odkrycia stworzył w ten sposób 370 tysięcy zerocoinów, co stanowi ok. 1/4 wszystkich wytworzonych do tej pory monet. 350 tysięcy z nich udało mu się wymienić na bitcoiny, warte ok. 1,75 mln PLN wg dzisiejszego kursu.

Najciekawsze chyba w całej sprawie jest to, że atak miał miejsce na przestrzeni wielu tygodni. Według dostępnych informacji atakujący rozłożył swój atak w czasie i kawałek po kawałku spieniężał wygenerowane zerocoiny – prawdopodobnie by nie załamać rynku i by wydłużyć czas potrzebny do wykrycia ataku. Co jednak dość zabawne, autorzy zerocoin informują, że byli w stanie wykryć atak ponieważ porównali ilość legalnie wytworzonych monet z ilością monet wydanych. I zorientowali się już w momencie, gdy 1/4 wszystkich dostępnych monet okazała się wygenerowana z powietrza…

Twórcy waluty informują, że nie zamierzają wycofać nieautoryzowanych transakcji, a jedynie opublikują aktualizację usuwającą możliwość przeprowadzenia ataku. Niestety do tej pory nie udało się nam ustalić, jak konkretnie wyglądał wspomniany błąd – w internecie jest na ten temat kilka teorii, ale żadna nie wyglądała wiarygodnie. Na zakończenie jeszcze tradycyjne podsumowanie.

Jedyny komentarz

Powrót

Komentarze

  • 2017.02.19 12:13 Maciej

    „źródłowym różnych nowych kleptowalut.” – chyba chodziło o kryptowaluty ;-)

    Odpowiedz
    • 2017.02.19 12:17 Adam

      Nie, chodziło o kleptowaluty.

      Odpowiedz
      • 2017.02.19 12:44 Xn

        A co to są te kleptowaluty? To tak jak kleptomania?

        Odpowiedz
        • 2017.02.19 20:52 Kurczak Pindol

          WITAMY NOWEGO KOLEGĘ W INTERNETACH!

          PS. Kleptowaluty to takie pieniążki dla ludzi, którą mają kłopoty z pamięcią. Tak jak zresztą wynika z nazwy.

          PPS. To prawda :)

          Odpowiedz
          • 2017.03.04 00:05 gretzky

            Nie wprowadzaj w błąd. Klepto- nie ma nic wspólnego z pamięcią. Klepto- wywodzi się z starożytnej greki, gdzie kléptēs oznaczało złodzieja, tudzież kléptō – kradzież.

    • 2017.02.19 12:34 Marcin

      Adam od dawna używa tych 2 zamiennie, z tymże kleptowaluty jako określenie pejoratywne :)

      Odpowiedz
  • 2017.02.19 12:25 Xn

    Skoro to zerociony to nie rozumiem problemu (-; 370000 * 0 = 0. więc o co chodzi? skąd zarobek? (-;

    Odpowiedz
  • 2017.02.19 12:31 Maks

    Zerocoin? Tak to jest jak się używa jakiś shitcoinów a nie bitcoina.

    Odpowiedz
    • 2017.02.19 12:46 Xn

      Pomyśl, że mogło to powstać celowo właśnie do wygenerowania bitcoinów zamiast tych nędznych farm koparek. Tymbardziej, że autorzy wiedzieli, że coś jest nie tak.

      Odpowiedz
      • 2017.02.19 14:08 Dadam

        Tu nawet nie trzeba myśleć. Wał perfekcyjny. Stworzyć pseudowalutę i omamić łosi, że bezpieczna, anonimowa i super hiper. Po cichu zrobić furtkę. Następnie pompujemy bańkę i w odpowiednim momencie autorzy stają się bogaci, reszta traci czas i ew. kasę. Za jakiś czas nabiorą się na inny wał :)

        Odpowiedz
        • 2017.02.19 15:26 Xn

          I pomyśleć, że już nawet nazwa Zero-Coin nie podpowiada by pomyśleć choć trochę. Nazwaliby ShitCoin i też by łosie to łyknęły.

          @Adam, czy możemy prosić o fragment kodu, gdzie był ten nadmiarowy znak z jego wskazaniem?

          Odpowiedz
        • 2017.02.19 17:28 Dupak

          tzw. pump and dump

          Odpowiedz
        • 2017.03.10 12:19 wrotek

          Tez mi sie tak wydaje , ze walek jest podobny do tworzenia „gield” bitcoinow, a potem ich tworcy mowia ze niby padli atakowi hacherskiemu i zamykaja interes bogaci

          Odpowiedz
  • 2017.02.19 14:15 Jan

    Zerocoin to protokół, błąd był w Zcoin (jednej z implementacji).

    Odpowiedz
    • 2017.02.19 15:28 Xn

      To jeszcze lepiej. To w takim razie biorę się za pisanie kolejnej implementacji. Ha ha. Dziurawy protokół komunikacyjny. Raj dla tych co chcą na tym nieźle zarobić.

      Odpowiedz
  • 2017.02.19 17:56 mpan

    Brak spadku ceny XZC pokazuje tylko, że zerocoiny walutą są tylko z nazwy. Nie mają pod sobą rynku, który regulowałby ich wartość. Jakby ktoś dodrukował 33% więcej złotówek i puścił to w ruch, to nikt nie musiałby monitorować sytuacji, żeby to wyłapać — wszyscy wiedzielibyśmy dosyć szybko. W przypadku XZC przez te kilka ostatnich tygodni ich wartość nawet rosła.

    Z drugiej strony, jeśli faktycznie autorzy sami stoją za tym atakiem, to kryptowaluty coraz bardziej przypominają tradycyjne: ile to mamy państw, które dodrukowywały sobie kasę ;).

    @Z3S: “prawie 2 mln” vs “ponad 1.5 mln”. Fakt, wartość była idealnie w połowie, można było wybrać każdą z tych opcji.

    Odpowiedz
  • 2017.02.20 07:54 Mike

    Nie pisano już o tym jakiś rok temu? Nie pamiętam czy chodzi o tą walutę czy inną. Błąd programu polegał wtedy na tym, że stan konta był aktualizowany w momencie kończenia sesji przez górnika. Ktoś napisał skrypt który „zakańczał” sesję wiele razy.

    Odpowiedz
    • 2017.02.20 21:05 as

      mowisz o bitcoinie i to nie był bład typu race condition, tylko możliwosc podwojnego wydania tych samych bitcoinow (double spent), ktory nie wynika z samej implementacji bitcoina, tylko serwisów obsługujących kryptowaluty – np realizacja płatności (wymiana chociażby btc na pln) bez czekania na potwierdzenia tej transakcji z sieci (przyjeło się zasadę że minimum dwa podpisy w przypadku bitcoina starczą żeby atak był niemożliwy).
      przykladem takiego serwisu w polsce ktory (potencjalnie) zleca wykonanie przelewu bez oczekiwania na potwierdzenie transakcji z sieci jest np inpay.pl z opcją „Opłać rachunki”, na szczęscie przelew wychodzi znacznie pozniej niz potwierdzenie jego zlecenia ktore otrzymuje sie na maila, wiec „za kulisami” prawdopodobnie skrypt czeka na potwierdzenia z sieci.
      podsumowując – rozgłaszano dwie różne transakcje dla tych samych srodkow, z czego pierwsza szła normalnie w sieć, a druga była wpuszczana i odrazu podpisywana przez górnika – siec BTC uznaje za prawidłową transakcję już podpisaną na wejsciu mimo że została ona rozgłoszona później niż pierwsza.
      żeby jednak przeprowadzić taki atak w praktyce trzeba mieć do dyspozycji znaczną moc „kopiącą” (ileś % wszystkich kopalni BTC razem wzietych) – Chiny dałyby radę ;)

      Odpowiedz
  • 2017.02.20 15:25 haha

    Widze, ze adam w formie, pozdrowienia dla fiata :D

    Odpowiedz
  • 2017.02.20 15:43 haha

    P.S przejebane byc januszem

    Odpowiedz
  • 2017.02.20 22:58 SasQ

    Tylko dlaczego autor sztuczki nazywany jest „złodziejem”? :P Z opisu wynikałoby raczej, że jest „fałszerzem”, a może nawet „cudotwórcą” (jako że tworzył coś z niczego, a nie kradł coś co już istnieje).

    Odpowiedz
    • 2017.04.10 14:05 Marcin

      Raczej nic z niczego.

      Odpowiedz

Zostaw odpowiedź do Xn

Jeśli chcesz zwrócić uwagę na literówkę lub inny błąd techniczny, zapraszamy do formularza kontaktowego. Reagujemy równie szybko.

Jak jeden dodatkowy znak w kodzie pozwolił komuś zarobić prawie 2 mln PLN

Komentarze