Mity o Bitcoinie #02 - Bitcoin jest scentralizowany
Wielokrotnie spotykam się ze stwierdzeniem, że Bitcoin jest scentralizowany. Jest to bardzo popularne kłamstwo, które jest szerzone przez zwolenników altcoinów. Robią to w celu przekonania nieświadomych ludzi, że dana kryptowaluta jest pod tym względem "lepsza" od Bitcoina. Prawda jest dokładnie odwrotna. Bitcoin jest najbardziej zdecentralizowaną kryptowalutą i nie ma co do tego żadnych wątpliwości.
Dlaczego decentralizacja jest tak ważna?
Bitcoin jest siecią rozproszoną. Oznacza to tyle że nie istnieje jeden lub kilka serwerów dzięki którym sieć działa. Zamiast tego sieć składa się z wielu identycznych nodów (pełnych węzłów sieci), które mają uruchomione użytkownicy na całym świecie. Każdy z nodów pełni rolę "mini serwera" i posiada identyczną kopię całego blockchaina. Dzięki temu nikt nie jest w stanie wyłączyć takiej sieci, lub ograniczyć ludziom do niej dostęp. Nawet z pojedynczej kopii blockchaina można odtworzyć całą sieć. Im bardziej zdecentralizowana jest dana sieć, tym jest ona bezpieczniejsza i odporna na jakąkolwiek kontrolę czy manipulację. Wszystkie węzły bez przerwy się aktualizują i weryfikują poprawność bloków, oraz rozgłaszają pomiędzy sobą transakcje.
Prędkość dystrybucji bloku pomiędzy nodami w sieci Bitcoin. Spowolnione tempo x4:
Czym są mining poole?
Z pewnością widzieliście wiele razy grafikę przedstawiającą podział na procentowy udział największych kopalni Bitcoina:
Obecnie trudność kopania Bitcoina jest bardzo wysoka. Posiadając nawet kilkaset najszybszych koparek, prawdopodobieństwo że naszej kopalni uda się wykopać jakikolwiek blok jest praktycznie zerowe. Rozwiązaniem tego problemu są mining poole. Mając nawet jedną koparkę możemy podłączyć ją do wspólnego poola. Dzięki temu wiele małych kopalni kopie bloki wspólnie, jako jedna duża kopalnia. Jeżeli podłączymy się do poola którego moc wynosi np 5% całego hash rate sieci, to średnio uda się temu poolowi wykopać co 20 blok. Urobek z wykopanego bloku jest dzielony na wszystkie podłączone do poola kopalnie, współmiernie do procentowej mocy jaką użyczyliśmy poolowi. Jedynie niewielka ilość największych kopalni ma sens działać samodzielnie, nie będąc podłączonym do żadnego poola.
Z perspektywy sieci cały pool jest widoczny jako jedna wielka kopalnia. Realnie na pool mogą składać się tysiące niezależnych kopalni. Dużych i małych, rozsianych po całym świecie. Pool jest jedynie serwerem, który zrzesza te wszystkie kopalnie. Większość tych pooli ma umieszczone serwery w Chinach, przez co ludzie błędnie myślą że 3/4 wszystkich koparek jest tam fizycznie umieszczona. Poole najczęściej zarabiają na tym że pobierają niewielką prowizję wykopanych Bitcoinów ok. 0,5-1% lub zatrzymują dla siebie opłaty transakcyjne.
Jak już wspomniałem, takie zestawienie podziału mocy kopalni, jest błędnie przedstawiane nieświadomym użytkownikom jako bardzo scentralizowana sieć. Np. krąży po internecie grafika porównująca EOS do sieci Ethereum i Bitcoina. EOS jest całkowicie scentralizowanym projektem. Będzie się on składał z 21 master nodów, które będą wyspecjalizowanymi serwerami. Każdy po 128 CPU i 1TB ramu. Porównanie sugeruje odbiorcom, że podział EOSa jest dużo bardziej równomierny niż Ethereum i Bitcoina. Faktycznie EOS będzie posiadał jedynie 21 nodów, przy ponad 100 000 pełnych węzłach Bitcoina.
Zagrożenia ze strony kontrolowania pooli wydobywczych.
Ktoś może powiedzieć że właściciel poola, może używać całej jego mocy do różnych celów. Przełączać kopalnie na kopanie np. Bitcoin Casha, wykopywać puste bloki, lub użyć kilku pooli do ataku 51% na sieć. Nie jest to prawdą. Wbrew pozorom właściciele koparek cały czas nadzorują co one robią. Interes jest na granicy opłacalności. Jeżeli dany pool kopałby np. puste bloki, lub robił cokolwiek nieetycznego lub nieopłacalnego dla właścicieli koparek, oni szybko przełączyli by swoje koparki do innych pool. Zmiana poola to dosłownie chwila czasu, przy czym istnieją oprogramowania, które automatycznie zmieniają poole do których są podłączone koparki pod względem tego, gdzie w danym momencie bardziej się opłaca kopać. Gdyby jakiś pool manewrował mocą koparek użytkowników w niewłaściwy sposób, bardzo szybko byłoby to widoczne a pool byłby skompromitowany i stracił użytkowników.
Kilka największych pooli, jak np. btc.com i Antpool należą do Bitmaina. Pomimo tego, do wykopywania pustych bloków (w celu spowolnienia sieci bitcoina i podniesienia opłat transakcyjnych, aby pokazać przewagę bcasha nad oryginalnym Bitcoinem) Bitmain nigdy nie używał pool i mocy ich użytkowników. Do tego celu wykorzystywał swoją kopalnię ViaBTC.
Najistotniejszym dowodem na brak władzy nad siecią w rękach kopalni był soft fork SegWita. Rok temu, kiedy użytkownicy Bitcoina w większości chcieli wprowadzenia SegWita do Bitcoina, większość kopalni była temu przeciwna. Aby SegWit został wprowadzony 95% mocy całej sieci musiało wyrazić na to zgodę. Niestety jedynie ok 30% kopalni było za SegWitem. Wtedy użytkownicy zorganizowali UASF (User Activated Soft Fork), czyli BIP 148, po wdrożeniu którego węzły użytkowników odrzucałyby bloki wykopywane przez kopalnie nie wspierające SegWita. W efekcie tego powstałyby dwa oddzielne łańcuchy i społeczność używałaby Bitcoina z SegWitem a kopalnie kopałyby swój łańcuch, którego nikt by nie używał. Kopalnie pomimo swojej przewagi, oraz posiadania praktycznie całej mocy obliczeniowej sieci poddały się i zaczęły akceptować SegWit. Jak widać to liczebność nodów i społeczność użytkowników miała decydujący wpływ na rozwój Bitcoina a nie właściciele pooli i dużych kopalni.
Ile naprawdę jest nodów Bitcoina?
Poza kopalniami, zwykli użytkownicy na całym świecie mają uruchomione pełne węzły. Aby mieć noda i wspierać sieć, nie trzeba kopać Bitcoinów. Zazwyczaj możemy trafić na statystyki ilości nodów Bitcoina, takie jak na stronie www.bitnodes.earn.com Z niej wynika że nodów jest obecnie ok 10 000.
Faktycznie jest ich znacznie więcej, ponieważ tutaj widoczne są jedynie węzły z zewnętrznym numerem IP. Nody znajdując się za NATem (np podłączone do jakiegoś routera, access pointa), gdzie mają wewnętrzny nr IP w podsieci, nie są widoczne w takich zestawieniach. Całkowita liczba wszystkich nodów Bitcoina wynosi ponad 100 000 a ich ilość jest widoczna np. na stronie www.luke.dashjr.org
Podejście użytkowników Bitcoina do decentralizacji
Społeczność Bitcoina od zawsze dba o decentralizację sieci, najbardziej ze wszystkich kryptowalut. Z tego powodu nie zwiększamy rozmiaru bloku ani szybkości ich wykopywania jak robią to inne kryptowaluty. Zamiast tego implementujemy rozwiązania takie jak Lightning Network oraz różnego rodzaju sposoby kompresji transakcji w blokach. Bardzo ważne jest aby zachować jak najmniejszy rozmiar blockchaina, oraz niewielki rozmiar pojedynczych bloków, żeby użytkownicy w przyszłości nadal mieli uruchomionych wiele węzłów a bloki były szybko rozsyłane pomiędzy węzłami.
W społeczności Bitcoina jak w żadnej innej sieci, można się spotkać z zachętami do stawiania nodów i tłumaczenia jak jest to istotne. Ja sam mam uruchomionego noda i bezinteresownie wspieram sieć, jak i wiele znanych mi osób, które również są entuzjastami Bitcoina. Takie podejście nie jest spotykane wśród użytkowników żadnej innej kryptowaluty.
Jeżeli chcesz wesprzeć sieć, możesz pobrać Bitcoin Core ze strony: www.bitcoincore.org
Niezaawansowanym użytkownikom nie zalecam używania tego, oraz żadnego portfela na PC do transakcji bitcoinowych. Nieistotne czy korzystasz z Linuxa czy z Windowsa. Najbezpieczniej jest używać portfela sprzętowego, lub sprawdzonych portfeli pod Androida lub iOSa z zachowaniem szczególnych zasad bezpieczeństwa. Zalecam używanie Bitcoin Core jedynie jako noda.