Siła sieci peer-to-peer Bitcoina opiera się na rozległej siatce węzłów. Słynne powiedzenie „not jour keys, not your money”, można z powodzeniem sparafrazować w kierunku „nie twój węzeł, nie twoje zasady”. Jak uruchomić pełny węzeł Bitcoin?
Pełne węzły Bitcoin chronią prywatność użytkowników i wzmacniają rozproszony charakter konsensusu sieci. Niedawno sieć osiągnęła historyczny rekord w kontekście aktywnych węzłów, co czyni ją jeszcze bardziej niezawodną.
Running a node in crypto is analogous to having eyes in the fiat world. Without eyes, you rely on others to verify a bill you received is not counterfeit. Without a node, you rely on others to verify your coins and protect their immutability. Why would you give up your eyes?! 🤔
— Charlie Lee [LTC⚡] (@SatoshiLite) October 15, 2018
Po dokładnym zbadaniu sprawy okazuje się, że skonfigurowanie go jest nie tylko łatwe, ale niezwykle ważne dla trwałości i niezmienności stanu sieci Bitcoin. Ponadto sieć Lightning Network (LN) zapewnia sposób na motywowanie operatorów węzłów Bitcoin i dostawców płynności kanałów (LP).
Czym jest węzeł Bitcoin?
Węzeł Bitcoin to struktura, która weryfikuje transakcje i bloki. Istnieją różne typy węzłów: od pełnego węzła (light node), przez lekki węzeł (light node) do „przyciętych” pełnych węzłów (pruned node). Pomiędzy każdą z powyższych klas węzłów istnieją określone różnice techniczne. Tak czy inaczej, bitoinowe węzły pomagają w egzekwowaniu zasad konsensusu w sieci bez względu na postać, w jakiej wystepują.
Generalnie rzecz biorąc, reguły konsensusu to zestaw warunków zakodowanych w sieci. Węzeł Bitcoin egzekwuje te zasady, weryfikując prywatny adres i saldo podczas wysyłania płatności BTC. Pełny węzeł jest połączony z siecią innych węzłów, które tworzą rozproszoną sieć konsensusu.
Węzeł nie musi ufać innym węzłom w celu weryfikacji płatności. Sprawdza je sam przed rozgłoszeniem transakcji w sieci.
Sieć węzłów Bitcoin szybko ignoruje węzeł, który próbuje propagować nieprawidłowe informacje, blokując je na co najmniej 24 godziny lub nawet dłużej, w zależności od liczby nieprawidłowych propagacji.
Węzły Bitcoin a portfele
Portfel lub adres Bitcoin to zestaw dwóch zaszyfrowanych struktur – klucza publicznego i klucza prywatnego. Z wykorzystaniem obydwu z nich, użytkownicy sieci Bitcoin wysyłają transakcje. Portfel generalnie współdziała z węzłem Bitcoin, który weryfikuje i rozgłasza transakcję w sieci.
Portfele można łączyć z serwerami i węzłami online obsługiwanymi przez portfel lub węzeł hostowany samodzielnie przez użytkownika. Użytkownik może wybrać jedną z następujących opcji:
Portfel giełdowy:
portfel innej firmy, w którym klucz prywatny portfela jest często ukryty przed użytkownikiem lub udostępniany aplikacji innej firmy. Te portfele są podatne na zagrożenia bezpieczeństwa i hacki, które zdarzały się już w historii Bitcoina wiele razy.
Portfele z uproszczoną weryfikacją płatności (SPV):
są to portfele programowe, które współdziałają z pełnymi węzłami za pośrednictwem nagłówków łańcucha bloków. Portfel SPV może potwierdzić dodanie transakcji do bloku za pomocą tych nagłówków bloków. Przykłady obejmują Electrum, Blockstream’s Green Wallet i kilka innych.
Węzły własne (self-owned):
górnicy, firmy i użytkownicy dbający o prywatność polegają na własnych, pełnych węzłach, które łączą się bezpośrednio z łańcuchem bloków bez pośrednika/ strony trzeciej. Stąd zapewnienie prywatności i bezpieczeństwa adresów Bitcoin.
Jeśli transakcja jest nieprawidłowa, przykładowo wskazuje na nieprawidłowy adres, czy dotyczy niewystarczającego salda, wówczas węzeł ignoruje taką transakcję.
Jaka jest różnica między pełnym węzłem a węzłem górniczym?
Walidatorzy (alternatywne określenie na węzły) w sieci Bitcoin rozwiązują trzy podstawowe problemy. Potwierdzają autentyczność transakcji, chronią prywatność osób przeprowadzających transakcje i zapobiegają przypadkom podwójnego wydatkowania (double spending).
W manifeście Bitcoina Satoshiego Nakamoto, węzły górnicze były nieodłączne w stosunku do węzłów pełnych:
„System jest bezpieczny, o ile uczciwe węzły kontrolują łącznie większą moc procesora niż jakakolwiek współpracująca ze sobą grupa węzłów atakujących”.
Ze względu na silną konkurencję i rozwój wyspecjalizowanych maszyn górniczych, górnicy stali się „wyspecjalizowanymi węzłami”, które wykonują dodatkową pracę poza samą weryfikacją transakcji.
Gwoli uściślenia: wszyscy górnicy są węzłami Bitcoin, ale nie wszystkie węzły są górnikami Bitcoin.
Górnicy pracują nad rozwiązaniem energochłonnego problemu natury Proof of Work (PoW), aby dodać bloki do głównego łańcucha bloków. Oprogramowanie wydobywcze odbiera transakcje z węzłów, porządkuje je w liniowym zestawie danych (bloku), a na koniec konkuruje z innymi górnikami, aby dodać swój blok do łańcucha bloków.
Podwójne wydatkowanie odnosi się natomiast do sytuacji, gdy adres wydaje więcej bitcoinów niż rzeczywiście posiada, duplikując cyfrowe monety lub wysyłając transakcje jednocześnie. Na przykład osoba A z jednym BTC wysyła dwie transakcje po jednym BTC do osoby B i osoby C.
Satoshi Nakamoto rozwiązał ten problem, projektując sieć jako „timestamp server”.
Węzły górnicze porządkują transakcję w stosie danych opartym na znaczniku czasu, stanowiącym blok. Stąd, gdy tylko pierwsza transakcja zostanie zarejestrowana w bloku, powiedzmy, że A do B jednego BTC jest wysyłane i rejestrowane; wtedy druga, niewystarczająca transakcja zostanie odrzucona.
Gdy górnicy pomyślnie dodają blok do sieci, pełny węzeł niezależnie i autorytatywnie weryfikuje wszystkie transakcje w tym bloku. Tak więc, jeśli górnik doda nieprawidłową transakcję do bloku, węzły odrzucą ten blok.
Transakcja otrzymuje swoje pierwsze potwierdzenie tylko wtedy, gdy blok zawierający transakcję zostanie ratyfikowany przez pełny węzeł.
Liczba potwierdzeń transakcji jest miarą otrzymywaną przez odjęcie numeru bloku, w którym przechowywana jest płatność, od bieżącej wysokości bloku. Co więcej, nie trzeba być węzłem, jeśli działa się w duchu PoW dla puli wydobywczej. W takim przypadku pula wyszukiwania dodaje blok na podstawie stosownych reguł konsensusu.
Podsumowując, górnicy są odpowiedzialni za przechowywanie transakcji w bloku, podczas gdy węzły określają, czy transakcje i bloki są zgodne z regułami konsensusu.
Węzły Bitcoin a prywatność
Wszystkie informacje na temat Bitcoin są publicznie rejestrowane. Dotyczy to salda oraz historii wszystkich transferów przy użyciu wszystkich adresów. Publiczny charakter rejestru sprawia, że użytkownik sieci Bitcoin jest narażony na naruszenie prywatności, jako że adres może, niejednokrotnie, skutecznie wskazywać na osoby.
Z drugiej strony, w pełny węzeł Bitcoin odbiera i przesyła dane bez żadnego rozróżnienia, co sprawia, że ustalenie adresu IP węzła przychodzącego nie jest łatwe.
Co więcej, użytkownik może chcieć rozważyć ukrycie swojego adresu IP poprzez implementację sieci Tor. Chociaż jest tylko około 11500 widocznych pełnych węzłów, eksperci twierdzą, że w rzeczywistości wiele z nich działa za zamkniętymi zasłonami sieci Tor.
Uruchomienie węzła Bitcoin chroni również użytkowników przed wydawaniem monet w sieci powstałej na skutek forków.
Przykładowo, ponieważ Bitcoin Cash jest forkiem bitcoina, dzielą ten sam adres. W związku z tym, jeśli portfel nie obsługuje Bitcoin Cash lub odwrotnie, wysyłanie transakcji do niewłaściwych portfeli może prowadzić do utraty środków, szczególnie jeśli zostaną wysłane na giełdę lub portfel strony trzeciej bez kopii zapasowej klucza prywatnego.
W najgorszym przypadku wątpliwe aplikacje i hakerzy mogą sprawić, że użytkownik uwierzy, że otrzymuje BTC, podczas gdy w rzeczywistości może to być BCH.
Jak skonfigurować węzeł Bitcoin?
Pełny węzeł Bitcoin to serwer, który przechowuje wszystkie transakcje kiedykolwiek wykonane w łańcuchu bloków. Full node weryfikuje saldo portfela przy użyciu tej historii i weryfikuje transakcje zgodnie z regułami konsensusu.
Dlatego też, od hostujących pełny węzeł Bitcoina wymagane jest posiadanie określonej przestrzeni pamięci. Rozmiar łańcucha bloków Bitcoin rośnie liniowo w czasie; obecnie jest to około 320 GB. Średni rozmiar bloku to 1,3 MB. Cała przestrzeń węzła zwiększa się, w ciągu tygodnia, o nieco więcej niż jeden GB przy zachowaniu mniej niż dziesięciu minut na blok.
Właściciele węzłów mogą wybrać starszą wersję dysków twardych HDD lub nowsze dyski półprzewodnikowe (SSD). Procesowanie pobierania i weryfikacji jest w przypadku tych drugich o wiele szybsze.
Inne wymagania dotyczące uruchomienia pełnego węzła to:
- Urządzenie sprzętowe z systemem operacyjnym i portfelem. Istnieje również oprogramowanie typu open source dla samodzielnych urządzeń, takich jak Raspberry Pi.
- Dysk twardy / dysk SSD 500 GB
- Pamięć RAM co najmniej 2 GB
- Połączenie internetowe z wysokimi limitami wysyłania i pobierania.
Najbardziej popularnym GUI do konfiguracji węzła jest Bitcoin Core. Zrzesza w sobie czołowych deweloperów blockchain, wydaje nowe oprogramowanie klienckie z poprawkami błędów i aktualizacjami protokołów. Ostatnio społeczność pracowała nad znaczącą aktualizacją Schnorr / Taproot.
Jeżeli chcesz przeczytać wyczerpującą instrukcję konfiguracji pełnego węzła za pomocą Bitcoin Core zajrzyj tutaj.
Pobranie całej historii dla pełnego węzła, zwanego także węzłami archiwalnymi, może zająć kilka dni. Do sprawdzania zadań i wysyłania transakcji oprogramowanie wymaga połączenia internetowego.
Bitnodes zbudował publiczne repozytorium wszystkich, aktualnie działających węzłów Bitcoina. W tej swoistej bibliotece online, użytkownicy mogą znaleźć swoje węzły, a także łączyć się z innymi węzłami na całym świecie.
Istnieją również inne sposoby uruchamiania węzła…
Pruned node to taki węzeł, w którym oprogramowanie Bitcoin Core przechowuje pełne dane tylko najnowszych bloków.
Jego działanie opiera się na mechanizmie usuwanie niechcianej lub zbędnej części z aktywnych składników sieci. W takim węźle usuwa się znaczną część informacji z 350 GB do 5 GB, zastępując dane blokowe nagłówkami indeksu.
Użytkownik może określić miejsce na dysku przypisane do takiego węzła. musi ono jednak zawierać więcej niż 288 MB, to minimum na co najmniej dwa dni przechowywania pełnych danych bloku.
Lekki węzeł Bitcoin (light node) to alternatywa, która wymaga mniej miejsca niż pełne węzły. Zamiast całej historii, lekki węzeł pobiera wyłącznie nagłówki bloków.
Węzły tego typu zależą od pełnych węzłów w celu weryfikacji transakcji; sieć pełnych węzłów traktuje je jako przedłużenie ich pracy.
BTCPayServer i RaspiBlitz to popularne rozwiązania typu open source, które zapewniają pełne możliwości hostowania węzłów na mikroprocesorowym Raspberry Pi. Instrukcje konfiguracji BTCPayServer na Raspberry Pi, możnecie znaleźć tutaj.