za
bit-coins

Deweloper Bitcoina przeprowadza udany atak podwójnego wydania na Reddit/Coinbase

Deweloper Peter Todd, bo o nim mowa, jest dość kontrowersyjną postacią, jest też twórcą kodu odpowiedzialnego za mechanizm „replace by fee” (RBF) który ma pozwolić na „podmianę” transakcji, w przypadku gdy wyślemy ją ze zbyt małą opłatą i ta „utknie” w kolejce transakcji do zatwierdzenia.

  

 

Deweloper Peter Todd, bo o nim mowa, jest dość kontrowersyjną postacią, jest też twórcą kodu odpowiedzialnego za mechanizm „replace by fee” (RBF) który ma pozwolić na „podmianę” transakcji, w przypadku gdy wyślemy ją ze zbyt małą opłatą i ta „utknie” w kolejce transakcji do zatwierdzenia. 

 

Problem „utykających” transakcji dotknął prawie każdego, kto chciał przesłać małą kwotę i nie stracić jej części na opłaty. Ponieważ przy zbyt małej (często zerowej) opłacie transakcyjnej zwykle powstaje transakcja niestandardowa, nie jest ona prawidłowo rozgłaszana przez sieć (ma słabą propagację) oraz, ze względu na niski priorytet, jest daleko w kolejce transakcji które kopalnie dołączają do bloków.

 

Znajomość tego mechanizmu, wraz z skryptem dołączonym do kodu RBF,  pozwoliła mu na”cofnięcie” zapłaty za konto „premium” na serwisie Reddit obsługiwanym przez Coinbase który akceptuje transakcję bez potwierdzenia transakcji w sieci.

 

Domyślną logiką węzłów Core jest odrzucanie transakcji, które wydają wejścia użyte w transakcji którą węzeł już zna. Tak więc każda kolejna transakcja „poprawiająca” poprzednią jest domyślnie przez węzeł odrzucana. Jednak wysyłając transakcję o niskiej opłacie powodujemy, że nie pojawia się ona w całej sieci i jeżeli natychmiast wyślemy jej zmienioną formę (w tym przypadku wydanie na inny adres) z poprawną, a nawet wyższą, opłatą transakcyjną, ta nowa transakcja będzie się rozgłaszać znacznie lepiej i ma większą szansę na trafienie do kopalni i bycie zatwierdzoną.

 

W tym ataku, pierwsza transakcja Petera została zaakceptowana a druga została przyjęta do kopalni i zatwierdzona. Zasadniczo można uznać atak za udany, ponieważ usługa „VIP” została uruchomiona a środki ostatecznie trafiły na adres Petera.

 

Co z tego wynika? W sumie niewiele. Mechanizm który zastosował Peter nie jest niczym nowym, działa w sieci Bitcoin „od zawsze”, dlatego przyjętym jest, że dopiero 6 potwierdzeń (nawet 1 minimalizuje to ryzyko prawie do 0) w sieci daje 100% pewność, że transakcja nie zostanie podwójnie wydana. Tu trzeba zaznaczyć, że podwójne wydanie nie oznacza pomnożenia bitcoinów których nigdy nie będzie więcej niż 21mln, oznacza to, że odbiorca który odebrał transakcję bez czekania na potwierdzenie sieci, uznaje ją jako pewną po czym transakcja znika z jego adresu.

 

 

Wątpliwe jest też, żeby wykonując taki atak Peter przysporzył sobie nowych zwolenników – efekt jest raczej przeciwny. Zastosowanie proponowanego przez niego mechanizmu RBF (w jego obecnej formie) spowoduje wręcz, że ataki takie będą prostsze do przeprowadzenia. W przeprowadzeniu ataku pomaga duża ilość transakcji krążących w sieci, powodując „kolejkowanie” transakcji w obrębie kilku (a nawet kilkudziesięciu) bloków. Atak taki jest dużo trudniejszy do przeprowadzenia, gdy sieć jest „pusta” i transakcje na bieżąco są dołączane do bloków.

 

Problemem ataków podwójnego wydania interesują się wszystkie serwisy oferujące usługi za BTC nie wymagając żadnego potwierdzenia w sieci. Muszą one mieć wdrożone złożone mechanizmy wykrywania takich ataków. Odpowiednia analiza otrzymanej do zatwierdzenia transakcji wraz z analizą ruchu w sieci i transakcjach „wiszących” na innych węzłach powinna ustrzec przed udanym atakiem. Taki system ma np. polski procesor płatności InPay.

 

Dlaczego atak na Coinbase się udał? Wiedząc, że użyty został publicznie znany skrypt pozostaje tajemnicą, dlaczego programiści tak dużego serwisu nie wypróbowali go na sobie i nie wprowadzili mechanizmów, które będą ich zabezpieczały, a przynajmniej ostrzegały, przed atakiem.

 

Podwójne wydatkowanie jest zjawiskiem niezwykle rzadkim. Prawdopodobnie pierwszy taki przypadek odnotowany został w 2013 roku podczas przypadkowego forka sieci. Kolejny znany, miał miejsce w lipcu 2015 w serwisie ShapeShift (strata 3 BTC). Ogółem udanych ataków tego typu mogło być kilka lub kilkanaście, co świadczy o tym, że jest on bardzo trudny do przeprowadzenia a jednocześnie możliwy praktycznie wyłącznie w przypadku, jeśli odbiorca nie wstrzyma się z uznaniem transakcji się przynajmniej do 1 potwierdzenia.

 

Fotografia na licencji Creative Commons: Flickr.com

Bitcoina i inne kryptowaluty kupisz w prosty i bezpieczny sposób na giełdzie zondacrypto.

Tagi

Newsletter Bitcoin.pl

Więcej niż bitcoin i kryptowaluty. Najważniejsze newsy i insiderskie informacje prosto na Twój email.

Dbamy o ochronę Twoich danych. Przeczytaj naszą Politykę Prywatności