Wyobraźcie sobie, że ktoś rozdaje pieniądze. Dużo pieniędzy i w dodatku robi to w najbardziej zatłoczonych miejscach - ruchliwe skrzyżowania ulic, dworce, lotniska, autostrady. Nietrudno przewidzieć, że taka “życzliwosć” spowoduje paraliż i chaos, gdyż zaburzona zostaje zwyczajna aktywność ludzi, którzy zamiast robić to co zawsze robią, koncentrują się tylko i wyłącznie na zbiórce prezentów. Różne są pobudki, którymi kierują się ludzie doprawadzający do tego rodzaju sytuacji. Czasami chodzi po prostu o reklamę. I o jednym takim przypadku właśnie opowiem
CoinWallet.eu i ataki na sieć Bitcoin
Pewna nowopowstała firma postanowiła się rozreklamować. Firma chciała, aby było o niej głośno, więc znalazła sposób - postanowiono wykorzystać znaną słabość sieci Bitcoin i pod przykrywką wykonywania “testów” uprzykrzyć życie wszystkim użytkownikom kryptowaluty.
Techniczne aspekty “testów” CoinWallet
Bitcoin umożliwia wykonywanie transakcji. To normalne. Każdy pieniądz powinien umożliwiać wykonywanie transakcji, tak jak np. za pośrednictwem banków możemy robić przelewy. Chodzi o to, aby pieniądz trafił z punktu A do B. Od strony technicznej Bitcoin grupuje wiele transakcji w “bloki”, a “bloki” są odpowiednio szeregowane (ustalana jest ich kolejność) i w ten sposób powstaje historia wszystkich transakcji. Mam na myśli naprawdę wszystkich - od początku istnienia Bitcoina :) Cała sieć posiada wbudowany mechanizm samoregulacji, który powoduje, że w dłuższej perspektywie czasu średni czas powstawania nowego “bloku” z transakcjami wynosi 10 minut. Jeśil teraz byśmy wykonali transakcję, to zostanie ona włączona jako część nowego bloku, który powstanie za mniej więcej 10 min.
Istnieje pewne ograniczenie. Rozmiar bloku może mieć maksymalnie 1MB. Może się wydawać, że całkiem dużo transakcji zmieści się w takim bloku, w końcu to ponad milion bajtów danych! Ale to zależy…. od rozmiarów samych transakcji, ponieważ każda transakcja również jest swego rodzaju blokiem (ale już jej tak nie będziemy nazywać) przechowującym pewne informacje i jej rozmiary mogą być bardzo zróżnicowane. Żeby wiedzieć dlaczego są zróżnicowane, musimy wejść w to wszystko jeszcze głębiej. Mówiłem o przesyłaniu pieniędzy z punktu A do B. Otóż punkt A nie musi jednorodny. Jest sumą otrzymanych i wydanych pieniędzy i składa się tak jakby z subkont, tzw. adresów Bitcoin. Transakcje zawierają informacje dotyczące adresów wejściowych i wyjściowych. Jeśli w transakcji jest wiele adresów wejsciowych lub wyjściowych, jej rozmiar staje się większy, ponieważ trzeba zapisać więcej informacji (wiele wejść/wyjść). Im większe transakcje, tym ich mniej się zmieści w bloku, który ma ograniczony rozmiar (1MB). I tę własność wykorzystuje CoinWallet.
Pierwszy atak, tfu, test (sic!) miał miejsce 22 czerwca. Wtedy to, z każdego adresu wchodzącego w skład “punktu A”, wysyłano małe ilości BTC na wiele adresów “punktu B”. Przykładowo: z adresu X wysyłano po 0,00001BTC na 100 adresów docelowych (które notabene cały czas należą do tej samej firmy). Taka transakcja zajmuje dużo więcej bajtów niż transakcja “standardowa”. Wykonując wiele takich operacji, “zapychamy” bloki, opóźniając tym samym dokonywanie transakcji zwykłych użytkowników.
Drugi test, który miał się rozpocząć 8 września, działa na tej samej zasadzie, lecz w odwrotnym kierunku. Przykładowo ze 100 adresów “punku A” przesyłamy po 0,00001BTC na adres X. I znowu powstaje duża transakcja. Wiele takich transakcji kolejny raz “zapycha” bloki. Lecz tym razem planowano wykorzystać ponad 2 razy więcej środków, co ma spowodować ponad dwutygodniowe opóźnienie dołączania standardowych transakcji do bloków.
Ogólne niezadowolenie
Testy firmy CoinWalet podniosły larum. Forma promocji serwisu nie przypadła ludziom do gustu. Z pewnych niedoskonałości sieci Bitcoin zdawano sobie sprawę od dawna i od dłuższego też czasu prowadzona jest debata, w jaki sposób dokonać poprawy. Wątpliwe etycznie “testy” nie ukazują niczego nowego, żadnej luki protokołu, dosłownie niczego o czym wcześniej nie wiedziano. “Eksperyment” można było również przeprowadzić w sieci testowej Bitcoina. Zaczęto się zastanawiać czy działania firmy są zgodne z prawem.
Atak odwołany, czyli zaczynamy atak
Reakcja CoinWallet na niezadowolenie jest ciekawa. Firma poinformowała, że jednak zaniechała przeprowadzenia “testów” i w zamian rozdaje bitcoiny… poprzez upublicznienie danych dostępowych do adresów wykorzystanych w poprzednim teście! I w ten sposób, umywając rączki i wykorzystując prosty zabieg socjotechniczny sprawili, że użytkownicy sami zaczynają “testować” sieć, próbując przelać środki z upublicznionych adresów na swoje prywatne. Rękami samych użytkowników zaczęto generowanie dużych transakcji. Bo skoro pieniądze leżą na ziemi, to kto się po nie nie schyli?
Co robić?
Najprościej jest zwiększyć prowizję za wykonywane transakcje, dopóki sytuacja się nie unormuje (czyli na ok. 2 tygodnie). Zwiększenie prowizji zwiększa jednocześnie priorytet, ponieważ nody zatwierdzające transakcje dostają więcej pieniędzy. Warto również monitorować sytuację. Status sieci, ilość niezatwierdzonych transakcji, etc. można śledzić na stronie https://tradeblock.com/bitcoin
Trochę do poczytania na bitcoin.pl:
0 komentarze: