Część IV – Problem podwójnego wydatku

Czyli wykorzystywanie naturalnej luki w zabezpieczeniu systemów P2P.

Standardowo już, na początku naszych rozważań posłużmy się abstrakcyjnym przykładem, który przedstawi nam problem Części IV.

Pewna sieć P2P została założona, aby prowadzić rejestr nieruchomości. Jak na zdecentralizowaną sieć P2P przystało, rejestry te są przechowywane przez każdy komputer podłączony do sieci zamiast być przechowywane przez jeden, centralny komputer. W momencie w którym, zostanie przeniesiona własność domu na innego właściciela, zmiana ta musi zostać wprowadzona do sieci i odnotowana przez każdego peera, aby każdy z nich dysponował aktualnym stanem informacji. Jednakże, aby wprowadzić tą informację do jednego peera, aby zostały przekazywane przez siebie między peerami – wymagana jest pewna porcja czasu. Niektóre peery dysponują już nową informacją, a te do których aktualizacja rejestru nie dotarła – nie. Do momentu, w którym zaktualizowany rejestr nie pojawi się we wszystkich komputerach, system nie jest spójny w tym względzie. Fakt, że zachodzi różnica w stanie aktualizacji, czyni system P2P bardzo podatny na manipulację przez peery, które już zaktualizowane informacje posiadają. Wejdźmy jednak w bardziej szczegółowy przykład.

Osoba X ma dom. Przychodzi do niego osoba Y, która chce ów dom zakupić. Przekazanie własności odbywa się za pomocą oficjalnego rządowego rejestru w sieci P2P. W tym celu osoba X zgłasza zakup domu od osoby Y i na jednym peerze aktualizuje się rejestr. Ten rządowy rejestr, do którego zostały wprowadzone zmiany na jednym komputerze, teraz musi poinformować inne komputery (peery w sieci) o transferze, które to następnie informują następne i następne, aż każdy peer będzie poinformowany. Jednakże, osoba X jest na tyle sprytna i zna się na sieciach P2P i za pomocą innego komputera, wprowadza do rejestru zmianę informując, że sprzedała taki sam dom osobie Z. Zakładając, że ten peer nie został poinformowany o przeniesieniu własności domu z osobę X na osobę Y która miała miejsce, oznacza to że peer do którego się zgłosił ponownie zaktualizuje rejestr o sprzedaż na rzecz osoby Z. Tym samym X zdołał sprzedać dom dwukrotnie, wykorzystując poślizg czasowy w przekazywaniu informacji między peerami. Niestety, zarówno Y jak i Z nie mogą posiadać wspólnie tego samego domu, zawierając dwie różne umowy sprzedaży. Problem przekazywania informacji między peerami i aktualizowania danych pozostaje taki sam, niezależnie od konkretnego zastosowania. Czy to przy sprzedaży nieruchomości, czy przy wymianie kryptowalut.

Problem podwójnego wydatku jest przykładem naruszenia integralności rozproszonych sieci P2P prowadzących rejestry. Technologia Blockchain jest narzędziem, które oferuje rozwiązanie problemu podwójnego wydatku. W jaki sposób? Tego dowiecie się w następnych częściach, poznając szczegółową budowę całego łańcucha bloków w samym Blockchain 😉

Tym samym doszliśmy do końca IV-częściowego wstępu do Blockchain i od tej pory zajmiemy się konkretnym opisem technologii. Rozważania teoretyczne oraz przedstawianie abstrakcyjnych problemów zostawimy na jakiś czas. Jednakże, były one ważne, abyście zrozumieli po co Blockchain został stworzony i że w przeciwieństwie do wielu zdań, Blockchain to nie tylko Bitcoin jako waluta cyfrowa 😉

Od teraz czas na technologię oraz trochę kodu, ponieważ napisałem prosty Blockchain w JavaScript abyście zobaczyli, jak Blockchain wygląda od środka 😉

0 komentarzy:

Dodaj komentarz

Chcesz się przyłączyć do dyskusji?
Feel free to contribute!

Dodaj komentarz