Czym jest Bitcoin Core i jaką rolę odgrywa w sieci Bitcoin?

Czym jest Bitcoin Core?
Bitcoin Core to oprogramowanie open-source, dzięki któremu samodzielnie łączysz się z siecią Bitcoin i w pełni kontrolujesz bloki oraz transakcje. Jeśli uruchomisz Bitcoin Core na swoim komputerze, działa on jako full node, który niezależnie sprawdza, czy transakcje i bloki spełniają zasady sieci Bitcoin.
Mówiąc prościej, Bitcoin Core jest ważnym elementem dla osób, które chcą samodzielnie weryfikować Bitcoin. Oprogramowanie odbiera transakcje i bloki od innych węzłów, sprawdza je i może przekazywać dalej poprawne informacje. W ten sposób wiele oddzielnych węzłów wspólnie pomaga zdecentralizowanie rozprowadzać dane Bitcoin.
Bitcoin Core jest oryginalnym klientem Bitcoin, czyli oprogramowaniem, które pozwala łączyć się z siecią Bitcoin oraz przetwarzać i kontrolować transakcje i bloki. Kod źródłowy jest publicznie dostępny na licencji MIT, dzięki czemu deweloperzy mogą go przeglądać, używać i współtworzyć.
Oprogramowanie składa się w przybliżeniu z dwóch części, które można rozpatrywać osobno:
- Węzeł: pobiera i waliduje dane z blockchaina Bitcoin.
- Wbudowany portfel crypto: umożliwia zarządzanie adresami i wysyłanie bitcoinów.
Bitcoin Core możesz używać jako programu z graficznym interfejsem, bitcoin-qt, albo bez okna, jako proces działający w tle, bitcoind. Ta druga opcja jest szczególnie przydatna dla osób, które chcą zarządzać swoim węzłem przez command line lub inne oprogramowanie.
Ważne: Bitcoin Core nie jest samym Bitcoinem i nie jest też centralną organizacją zarządzającą Bitcoinem. To jedna z implementacji protokołu Bitcoin. Węzły osiągają zgodność, ponieważ niezależnie stosują te same reguły konsensusu, czyli stałe zasady określające, które bloki są ważne.
Najważniejsze informacje
- Bitcoin Core to oprogramowanie open-source dla sieci Bitcoin.
- Działająca instalacja Bitcoin Core to zazwyczaj full node.
- Full node samodzielnie sprawdza bloki i transakcje.
- Bitcoin Core może odbierać poprawne dane i przekazywać je innym węzłom.
- Oprogramowanie opcjonalnie zawiera interfejs graficzny i wbudowany portfel crypto.
Jak działa Bitcoin Core?
Bitcoin Core działa, łącząc się z innymi węzłami Bitcoin i wymieniając z nimi transakcje oraz bloki. Zanim oprogramowanie może ocenić najnowsze dane, musi najpierw pobrać i zwalidować całą historię od bloku genezy, czyli pierwszego bloku Bitcoin.
Ten pierwszy duży etap nadrabiania zaległości nazywa się initial block download. Bitcoin Core buduje wtedy krok po kroku własny obraz poprawnego łańcucha Bitcoin, aż do najnowszego bloku, który węzeł uzna za ważny.
Następnie węzeł nadal nasłuchuje nowych transakcji i bloków. Gdy coś nadejdzie, Bitcoin Core najpierw to sprawdza. Dopiero jeśli dane spełniają zasady, węzeł może je zwykle przekazać innym peerom. Peery to po prostu inne komputery, z którymi połączony jest Twój węzeł.
Bitcoin Core uznaje blok za ważny tylko wtedy, gdy przejdzie on własne kontrole. Następnie węzeł określa zgodnie z regułami konsensusu, który poprawny łańcuch będzie śledzić. Jeśli wiele węzłów stosuje te same zasady i podąża za tymi samymi poprawnymi blokami, pozostają ze sobą zgodne. W ten sposób powstaje konsensus bez centralnej strony, która decyduje, co jest prawdą.
Istnieje jednak różnica między ważnością a lokalną polityką. Węzeł może na przykład nie chcieć przekazać transakcji dalej, ponieważ nie pasuje ona do jego własnej polityki mempoola. Mempool to tymczasowa poczekalnia dla jeszcze niepotwierdzonych transakcji. Taka transakcja nie musi więc automatycznie być nieważna według reguł konsensusu.
Jak Bitcoin Core waliduje transakcje?
Bitcoin Core waliduje transakcję, sprawdzając, czy bitcoin, który chcesz wydać, rzeczywiście istnieje, nie został wcześniej wydany i może być przez Ciebie użyty. Bitcoin nie działa tu na zasadzie prostego salda, które jest gdzieś aktualizowane. Płatność wykorzystuje wcześniej otrzymane kwoty, które nazywają się outputami.
Output, który nie został jeszcze wydany, nazywa się UTXO, od unspent transaction output. UTXO można traktować jako osobny fragment bitcoina, który nadal jest dostępny do wydania.
Przy nowej płatności Bitcoin Core sprawdza między innymi następujące kwestie:
- Użyte UTXO rzeczywiście istnieją.
- Te UTXO nie zostały wcześniej wydane.
- Dane odblokowujące spełniają warunki wcześniejszego outputu.
- Łączna wartość outputów nie jest wyższa niż łączna wartość inputów.
W przypadku wielu zwykłych transakcji kryptograficzny podpis potwierdza, że nadawca ma właściwy private key. Następnie Bitcoin Script sprawdza, czy ten podpis i powiązany z nim public key są poprawne. Bitcoin Script to ograniczony język skryptowy, który wykonuje warunki transakcji Bitcoin.
Przykład: Załóżmy, że wcześniej otrzymałeś 0,5 BTC i ten output nie został jeszcze użyty. Wtedy te 0,5 BTC mogą posłużyć jako input dla nowej transakcji. Jeśli spróbujesz później wydać ten sam output ponownie, Bitcoin Core odrzuci to jako „double-spending”.
W zwykłej transakcji nie może też powstać wartość z niczego. Jeśli łączne inputy wynoszą 0,5 BTC, a Ty wysyłasz 0,49 BTC na inny adres, różnica 0,01 BTC może stanowić opłatę transakcyjną. Specjalna transakcja coinbase w bloku działa inaczej, ponieważ służy do wypłaty nagrody blokowej i opłat.
Jak Bitcoin Core kontroluje bloki?
Bitcoin Core sprawdza blok, analizując zarówno dane w nagłówku bloku, jak i wszystkie transakcje w tym bloku. Tylko bloki spełniające reguły konsensusu są przez węzeł zachowywane jako część poprawnego łańcucha Bitcoin.
Blok składa się w przybliżeniu z transakcji i nagłówka bloku. W tym nagłówku znajdują się między innymi odwołanie do nagłówka poprzedniego bloku oraz merkle root. Merkle root to kryptograficzne podsumowanie wszystkich transakcji w bloku.
Odwołanie do poprzedniego bloku utrudnia zmianę historii. Jeśli zmienisz starą transakcję, zmieni się podsumowanie tego bloku. W efekcie trzeba byłoby ponownie zmienić także wszystkie kolejne bloki.
Bitcoin Core sprawdza również każdą transakcję w bloku. W ten sposób węzeł ponownie weryfikuje, czy output nie został już wcześniej wydany. Każdy blok zawiera też jedną transakcję coinbase. To dzięki niej nagroda blokowa i opłaty transakcyjne są przypisywane minerowi. Bitcoin z transakcji coinbase można wydać dopiero po 100 potwierdzeniach tej transakcji.
Czasami przez krótki czas istnieją obok siebie dwie poprawne wersje łańcucha Bitcoin. W takim przypadku model full node wybiera wersję z największą skumulowaną proof-of-work. Nie jest to coś, o czym decydują deweloperzy Bitcoin Core lub minerzy za wszystkich: każdy full node sam wykonuje kontrole i wybiera zgodnie z tymi samymi zasadami.
Kto stworzył Bitcoin Core?
Pierwsze oprogramowanie Bitcoin zostało opracowane i opublikowane pod pseudonimem Satoshi Nakamoto. Satoshi to więc pseudonim, nikt nie wie, kim jest ten tajemniczy twórca.
Bitcoin Core jest obecnie rozwijany jako projekt open-source. Ludzie mogą zgłaszać propozycje zmian, testy i recenzje. Nowy kod nie jest dodawany bezpośrednio: inni współtwórcy oceniają zmianę i potrzebne są testy.
Nie istnieje stała, uprzywilejowana grupa, która po prostu zarządza Bitcoin Core. Są jednak maintainerzy repozytorium. Mają oni praktyczne zadania, takie jak scalanie proponowanych zmian, koordynowanie wydań i moderowanie dyskusji. Nie czyni ich to centralnym właścicielem Bitcoina.
Do zwykłego użytku wybiera się stabilne wydanie. Główna wersja, nad którą współpracują deweloperzy, jest testowana, ale nie jest automatycznie stabilną wersją do codziennego użytku.
Jaka jest różnica między Bitcoin Core a Bitcoinem?
Bitcoin Core to oprogramowanie, natomiast Bitcoin może oznaczać sieć, protokół albo BTC jako kryptowalutę. Ta różnica jest ważna, ponieważ nazwy często są używane zamiennie.
Bitcoin to na przykład sieć peer-to-peer, w której uczestnicy wymieniają transakcje. BTC to jednostka bitcoina, którą przesyłasz jako wartość. Bitcoin Core to z kolei program, który instalujesz, aby działać zgodnie z zasadami tej sieci.
Można to porównać do przeglądarki i internetu. Przeglądarka daje dostęp do internetu, ale nie jest samym internetem. Podobnie Bitcoin Core pozwala uczestniczyć w Bitcoinie, ale samo oprogramowanie nie jest równoznaczne z całym Bitcoinem.
Również zmiana w Bitcoin Core nie zmienia automatycznie zasad Bitcoin dla wszystkich. Aby zmienić reguły konsensusu, inni uczestnicy muszą również zdecydować się na używanie zgodnych zasad lub oprogramowania.
Czym jest portfel Bitcoin Core?
Portfel Bitcoin Core to wbudowany portfel crypto w Bitcoin Core. Dzięki niemu możesz odbierać, zarządzać i wysyłać bitcoiny. Portfel współpracuje z Bitcoin Core, ale pełni inną funkcję niż sam węzeł. Węzeł kontroluje transakcje i bloki, natomiast portfel służy przede wszystkim do zarządzania bitcoinami i powiązanymi kluczami.
Portfel Bitcoin Core jest portfelem self-custody. Oznacza to, że sam odpowiadasz za swoje private keys, kopie zapasowe i bezpieczeństwo urządzenia. Portfel można też zabezpieczyć passphrase, czyli hasłem-wyrażeniem.
Dlatego ważne jest, aby regularnie tworzyć bezpieczną kopię zapasową portfela i nigdy nie udostępniać innym swoich private keys, kopii zapasowej ani passphrase. Osoba, która uzyska dostęp do tych danych, może również uzyskać dostęp do Twoich bitcoinów.
Jak można używać Bitcoin Core?
Bitcoin Core możesz używać jako program desktopowy, jako węzeł działający cicho w tle albo za pomocą narzędzi command-line i RPC. RPC to sposób, w jaki inne programy mogą wydawać polecenia Twojemu węzłowi.
Dla wielu osób najłatwiejsza jest wersja graficzna. Można w niej śledzić synchronizację, zarządzać portfelem i wysyłać transakcje. Bardziej techniczni użytkownicy często uruchamiają bitcoind bez interfejsu graficznego, na przykład na własnym komputerze, który służy głównie jako węzeł.
Twój węzeł może działać tylko dla Ciebie, ale możesz też zezwolić na połączenia przychodzące. Do własnego portfela i walidacji wystarczą połączenia wychodzące. Połączenia przychodzące pomagają jednak innym węzłom i lekkim klientom, dzięki czemu sieć peer-to-peer pozostaje lepiej dostępna.
Chcesz najpierw poćwiczyć bez używania prawdziwych bitcoinów? Możesz wtedy skorzystać z osobnej sieci testowej, takiej jak signet. Na Bitcoin mainnet błędy przy transakcji mogą prowadzić do nieodwracalnej utraty środków.
Jeśli korzystasz z RPC, zachowaj szczególną ostrożność przy dostępie zewnętrznym. Prawidłowe dane logowania RPC mogą dać komuś dużą kontrolę nad Twoim węzłem Bitcoin Core i, zależnie od konfiguracji, nad załadowanym portfelem. Nie udostępniaj więc dostępu RPC innym bez potrzeby.
Jak zainstalować Bitcoin Core?
Bitcoin Core można pobrać z oficjalnej strony Bitcoin Core. Wybierz tam wersję odpowiednią dla swojego systemu operacyjnego, takiego jak Windows, macOS lub Linux.
Po pobraniu instalujesz oprogramowanie i otwierasz Bitcoin Core. Przy pierwszym uruchomieniu możesz wybrać miejsce przechowywania danych blockchaina. Pamiętaj, że Bitcoin Core może wymagać dużo miejsca, ponieważ oprogramowanie pobiera i sprawdza kopię blockchaina Bitcoin.
Następnie Bitcoin Core zaczyna synchronizację z siecią Bitcoin. Przy pierwszym uruchomieniu może to potrwać pewien czas. Gdy synchronizacja się zakończy, Twój węzeł może samodzielnie kontrolować transakcje i bloki.
Chcesz samodzielnie zainstalować Bitcoin Core i szukasz dokładnych kroków technicznych? Sprawdź oficjalne instrukcje instalacji Bitcoin Core dla swojego systemu operacyjnego.
Jak Bitcoin Core synchronizuje się z blockchainem?
Bitcoin Core synchronizuje się, pobierając bloki od początku i walidując je jeden po drugim aż do najnowszego ważnego bloku. Proces ten nazywa się initial block download i odbywa się przy pierwszym uruchomieniu lub wtedy, gdy Twój węzeł jest mocno opóźniony.
Podczas tego procesu Twój komputer wykorzystuje przepustowość sieci, miejsce na dysku i moc obliczeniową. Czas trwania waha się od kilku godzin do kilku dni lub dłużej, w zależności od sprzętu i połączenia internetowego.
Twój portfel może podczas synchronizacji wyglądać na niepełny. Nowe transakcje lub saldo stają się w pełni widoczne dopiero wtedy, gdy Twój węzeł zostanie zaktualizowany do bloku, w którym znajduje się dana aktywność.
Jeśli chcesz zużywać mniej miejsca, możesz włączyć pruning. W przypadku pruning Bitcoin Core usuwa starsze surowe dane bloków i dane undo po tym, jak węzeł sam je zwaliduje. Węzeł nadal pozostaje full node, ponieważ nadal samodzielnie kontroluje bloki.
Jakie są zalety i ograniczenia Bitcoin Core?
Największą zaletą Bitcoin Core jest to, że możesz samodzielnie weryfikować Bitcoin. Nie musisz w pełni ufać zewnętrznemu dostawcy portfela, serwerowi ani firmie kryptowalutowej, jeśli chodzi o ważność bloków i transakcji.
Własny full node pomaga też sieci. Twój węzeł odbiera poprawne dane, sprawdza je i może je przekazywać dalej. Jeśli zbyt mało osób to robi, lekkie klienty szybciej stają się zależne od scentralizowanych usług.
Bitcoin Core może też być lepszy dla Twojej prywatności niż portfel, który musi dla każdego salda i każdej transakcji odwoływać się do zewnętrznego węzła. Nie czyni to jednak Bitcoina automatycznie anonimowym: transakcje nadal znajdują się na publicznym blockchainie.
Minusem jest to, że Bitcoin Core wymaga od Twojego komputera i od Ciebie jako użytkownika więcej niż prosty portfel crypto. Potrzebujesz dużo miejsca na dysku, pierwsza synchronizacja może trwać długo, a za aktualizacje, kopie zapasowe i bezpieczeństwo urządzenia odpowiadasz samodzielnie.
Możesz ograniczyć zużycie miejsca i internetu, ale może to odbywać się kosztem niektórych funkcji. Self-custody oznacza też, że sam odpowiadasz za swoje bitcoiny. Własny węzeł nie chroni Cię na przykład przed malware, utratą private keys ani błędnymi ustawieniami.
Podsumowanie
Bitcoin Core to sposób na samodzielne uczestnictwo w Bitcoinie zamiast polegania wyłącznie na infrastrukturze innych. Oprogramowanie pobiera i kontroluje bloki oraz transakcje zgodnie z zasadami Bitcoin, a poprawne dane może przekazywać innym węzłom.
To sprawia, że Bitcoin Core jest interesujący, jeśli chcesz większej niezależności, kontroli i potencjalnie większej prywatności. Z drugiej strony potrzebujesz czasu, miejsca na dysku i technicznej uwagi. Jeśli korzystasz też z wbudowanego portfela, bezpieczeństwo Twoich bitcoinów spoczywa w pełni na Tobie. Dla osób, które chcą wziąć tę odpowiedzialność na siebie, własny full node jest praktycznym sposobem samodzielnej weryfikacji Bitcoina.