Co to jest podwójne wydatki (podwójne odpady) w łańcuchu bloków

Jeśli zagłębisz się w historię tworzenia kryptowalut, może się okazać, że jeszcze przed pojawieniem się Bitcoinów wielu entuzjastów próbowało stworzyć zdecentralizowane środki płatnicze, ale wszyscy sprzeciwiali się niezdolności do zapobiegania podwójnym wydatkom w systemie. Rozwiązanie tego problemu znaleziono dopiero po latach.

Czym są podwójne odpady i jak to się dzieje

Głównym problemem w tworzeniu stabilnego systemu płatności zdecentralizowanych była możliwość kopiowania transakcji płatniczych, co powoduje ryzyko ponownego wydatkowania środków. Scentralizowane systemy płatności zapobiegają ponownemu transferowi środków dzięki obecności serwera kontrolnego, który sprawdza wszystkie transakcje za pomocą określonego mechanizmu.

Podwójne wydatki lub podwójne wydatki- ponowne wydatki. Często podwójne wydatki w systemach zdecentralizowanych występują w momencie, gdy jeden nadawca wysyła tę samą kwotę środków do kilku odbiorców w okresie przed włączeniem pierwszej transakcji do bloku.

Załóżmy, że w prawdziwym życiu osoba zdecydowała się kupić filiżankę kawy za 1 USD w jednej z kawiarni. Kiedy płacisz pieniądze, przekazujesz je do instytucji kasjerskiej i wydajesz je ponownie, jest to niemożliwe. Waluty cyfrowe różnią się również tym, że nie są fizycznie przekazywane, więc zanim transakcja zostanie sprawdzona i wykonana, środki pozostają w portfelu, co oznacza, że ​​w okresie pomiędzy wysłaniem transakcji a faktem jej zakończenia, po czeku, możliwa jest ponowna płatność.

Inprawdziwe życie może być także podwójnym marnotrawstwem. Na przykład pozbawieni skrupułów pośrednicy w handlu nieruchomościami mogą wielokrotnie sprzedawać jedną nieruchomość, a ta szansa jest tworzona ze względu na fakt, że ponowne wystawienie własności nowemu właścicielowi może zająć sporo czasu, ale na razie kupujący nie otrzymał tytułu własności.

Jak niebezpieczne są podwójne odpady

Podwójna strata pieniędzy powoduje straty materialne sprzedawcy, który wysłał towary i nie otrzymał środków. Dyskredytuje kryptowalutę jako środek płatniczy i zapobiega wszechobecnej dystrybucji. Ponadto problem podwójnego wydatkowania prowadzi do spadku wartości aktywów cyfrowych, ponieważ inwestorzy tracą zaufanie do bezpieczeństwa systemu.

Typy ataków

Wyścig

Jeśli sprzedawca współpracuje przy płatnościach, które mają zerowe potwierdzenia, może stać się ofiarą ataku wyścigowego, gdy dwie transakcje są tworzone dla tej samej kwoty i wysyłane do różnych sklepów. Tak więc tylko jeden z odbiorców faktycznie otrzyma środki. Monety zostaną przekazane przez pierwszą transakcję, która zostanie dodana dołańcucha bloków .

Atak Finneya

Strefa ryzyka dla tego ataku zawiera również usługi, które akceptują płatności z zerowymi potwierdzeniami, tylko w przypadku takiego ataku, współudział górnika będzie również wymagany do wysłania skopiowanej transakcji do bloku.

Atak Finny'ego jest fałszywym podwójnym marnotrawstwem, którego istotą jest to, że górnik wysyła powtórną transakcjęPierwsza płatność jest wysyłana do kontroli sieci, w którym to przypadku tworzony jest widelec, w którym tylko jedna transakcja zostanie zaakceptowana przez wspólną decyzję górników. W tym przypadku sprzedawca, czekając na pierwszą transakcję, już sprzedał towary.

Atak Vector76

Jest to połączony atak składający się z dwóch opisanych powyżej ataków. Vector76 opiera się na celowym rozgałęzianiu bloków transakcji i pozwala wydać pieniądze dwa razy z jednym potwierdzeniem. Tutaj wykorzystujemy fakt, że wraz z etapowym włączaniem różnych transakcji w bloki, część sieci będzie widzieć transakcje ważne, a druga część będzie nieważna. Atak trwa tylko 10 minut iw tym czasie atakujący może zdobyć usługi lub wypłacić środki z dwóch transakcji.

Brute force attack

Atak jest wykonalny, nawet jeśli sprzedający wysyła towary dopiero po otrzymaniu kilku potwierdzeń, ale jego wdrożenie wymaga dużej mocy atakującego sprzętu. Jego istota polega na tym, że atakujący wysyła transakcję, aby zapłacić za towary, kontynuując sprawdzanie bloków transakcji, w których będą one zawarte.

Po tym, jak sklep otrzyma wymaganą liczbę potwierdzeń, wysyła towary, a atakujący w tym momencie rozrywa łańcuch, jeśli znajdzie więcej potwierdzeń i otrzyma fundusze. Jeśli nie uda ci się zebrać więcej potwierdzeń dla innej transakcji, atak nie nastąpi, a środki zostaną przelane na konto odbiorcy.

Sukces tego ataku zależy bezpośrednio odmoc oszusta i liczba żądanych potwierdzeń. Na przykład, jeśli siła atakującego wynosi 10% całkowitej mocy sieci, a odbiorca czeka na 6 potwierdzeń, sukces ataku wynosi 0,01%.

51% ataku

Jeśli atakującyposiada większość mocy sieci , podwójne wydawanie monet jest możliwe zgodnie ze schematem opisanym powyżej, tylko z absolutną gwarancją sukcesu. Atakujący ma możliwość generowania bloków szybciej niż reszta sieci i tworzy ich łańcuchy blokowe dla nieuczciwych transakcji, które są dłuższe niż prawidłowe.

Jak zrobić podwójne odpady

Informacje w rejestrze blockchain są dostępne dla wszystkich. Każdy może skopiować cyfrowe monety i spróbować zapłacić im dwa razy. Górnicy mogą sprawdzić dostępność środków na koncie nadawcy tylko w określonym czasie, więc jeśli skorzystasz z tej chwili, te same monety można wysłać dwa razy, aż środki zostaną pobrane z poprzedniej transakcji.

W systemach niezabezpieczonych podwójne marnotrawstwo ogranicza się do wysyłania powtarzających się transakcji w odstępie czasu, dopóki poprzednia transakcja nie została jeszcze potwierdzona. W takim przypadku odbiorca otrzyma monetę, której transakcja została po raz pierwszy włączona do bloku.

W przypadku bardziej bezpiecznych systemów osoba atakująca będzie musiała mieć wystarczająco dużą pojemność, aby znaleźć więcej dowodów na niewłaściwą transakcję i zwrócić środki po odrzuceniu pierwszej transakcji.

Jak zapobiec podwójnemuwydatki

Obecnie systemy płatności działające na blockchain mają dwa systemy zapobiegania podwójnemu wydatkowaniu pieniędzy:

  • otwarty rejestr transakcji;
  • specjalny mechanizm weryfikacji.

Blockchain prowadzi chronologiczny zapis wszystkich rejestracji płatności, a każdy nowy blok zawiera informacje o wszystkich poprzednich transakcjach, poczynając od momentu jego utworzenia. Wszystkim transakcjom przypisywany jest czas transakcji i pomaga dowiedzieć się, która z transakcji jest podstawowa i która jest kopiowana.

Na przykład nadawca chce dokonać podwójnej straty pieniędzy, mając na koncie 1 BTC. Wysyła tę monetę do pierwszego sprzedawcy i korzystając z faktu, że środki nie zostały jeszcze odpisane, chce oszukać drugiego sprzedawcę i ponownie przesyła mu tę samą monetę.

Obie transakcje są tłumaczone na pulę niepotwierdzonych transakcji i są poddawane przeglądowi, tylko pierwsza transakcja zostanie wykonana, a druga transakcja zostanie uznana za fałszywą, ponieważ nie zbierze wymaganej liczby potwierdzeń.

Dlatego też, aby nie dać się oszukać, sprzedawca musi wysłać towary dopiero po otrzymaniu potwierdzenia z sieci, a nie faktu wysłania płatności od kupującego. Transakcje z 6 potwierdzeniami są uważane za bezpieczne przed podwójnymi odpadami.

Wnioski

Podwójna strata monet cyfrowych jest możliwa ze względu na fakt, że do momentu potwierdzenia transakcji środki pozostają na koncie nadawcy. W tym przypadku stworzenie zdecentralizowanych systemów płatności stało się możliweze względu na fakt, że tylko transakcje z większą liczbą potwierdzeń są rejestrowane w blokach, a druga gałąź z powtarzającymi się odpadami jest uważana za nieważną i jest odrzucana.

Jednak w łańcuchu bloków możliwe jest zrobienie podwójnego marnotrawstwa, ale wymaga to odpowiednio dużej mocy. Bez nich sprzedawca może zostać oszukany tylko wtedy, gdy wysyła towary przy płatnościach z 0 potwierdzeniami.