Aby zrozumieć Bitcoin, należy najpierw porzucić ideę cyfrowych monet przechowywanych w wirtualnym skarbcu. W tradycyjnym świecie bankowym pieniądze są definiowane przez salda kont. Jeśli masz pieniądze w banku, centralna baza danych przechowuje konkretną liczbę obok twojego nazwiska. Bitcoin działa całkowicie inaczej. Nie ma fizycznych monet, ani plików cyfrowych reprezentujących poszczególne monety. Nie ma również kont na poziomie protokołu, które po prostu wymieniają saldo użytkownika.
Zamiast tego cały system opiera się na historii transakcji. To, co nazywamy „bitcoinem”, to zasadniczo łańcuch podpisów cyfrowych odzwierciedlających historię transferu wartości. Własność jest ustalana nie przez posiadanie statycznego obiektu, lecz przez możliwość utworzenia nowego wpisu w tym rejestrze. Kiedy użytkownik sprawdza saldo swojego portfela, oprogramowanie faktycznie skanuje cały łańcuch bloków, aby obliczyć sumę wszystkich niewydanych transakcji dostępnych za pomocą jego kluczy.
Ta różnica architektoniczna jest fundamentalna dla tego, jak sieć pozostaje zdecentralizowana. Bez centralnego banku aktualizującego główny rejestr sald, sieć polega na przejrzystym, weryfikowalnym łańcuchu pieczy. Każda transakcja wskazuje na poprzednią, łącząc się aż do momentu, gdy monety zostały po raz pierwszy wydobyte przez górnika. Ta struktura zapewnia, że wartość nie może być stworzona z niczego i że historia każdej frakcji bitcoina jest śledzona i niezmienna.
Podstawa własności: kryptografia klucza publicznego
Zrozumienie par kluczy
W sercu mechaniki transakcji Bitcoin leży kryptografia klucza publicznego. Ten matematyczny framework pozwala użytkownikom generować bezpieczną tożsamość cyfrową bez rejestrowania się w centralnym organie. Własność jest definiowana przez posiadanie pary kluczy: klucza prywatnego i klucza publicznego. Klucz prywatny to losowo wygenerowany sekret, podobny do hasła, ale znacznie bardziej złożony. Udziela on uprawnień do przenoszenia funduszy.
Klucz publiczny jest matematycznie wyprowadzony z klucza prywatnego. Może być otwarcie udostępniany bez kompromitowania bezpieczeństwa. Z tego klucza publicznego sieć generuje adres Bitcoin, który działa jako cel dla funduszy. Ta jednokierunkowa ulica jest kluczowa. Można łatwo wygenerować klucz publiczny z klucza prywatnego, ale niemożliwe jest odwrócenie procesu i wyprowadzenie klucza prywatnego z klucza publicznego.
Ta asymetria pozwala sieci działać bez zaufania. Kiedy użytkownik chce otrzymać fundusze, udostępnia swój adres. Kiedy chce wydać fundusze, używa swojego klucza prywatnego do kryptograficznego podpisania wiadomości. Ten podpis dowodzi, że posiada klucz prywatny związany z adresem przechowującym fundusze, bez kiedykolwiek ujawniania klucza prywatnego sieci lub odbiorcy.
Rola podpisów cyfrowych
Transakcja Bitcoin to efektywnie wiadomość stwierdzająca: „Przenoszę te konkretne bitcoiny na ten nowy adres”. Aby ta wiadomość była ważna, musi być podpisana cyfrowo. Podpis cyfrowy jest tworzony przez zastosowanie klucza prywatnego nadawcy do danych transakcji. Ten proces generuje unikalny ciąg danych specyficzny dla tej dokładnej transakcji.
Jeśli jakakolwiek część szczegółów transakcji zostanie zmieniona – taka jak kwota lub adres docelowy – podpis nie będzie już pasował. To zapewnia, że po podpisaniu i nadaniu transakcji nie może być manipulowana przez osoby trzecie. Uczestnicy sieci, czyli węzły, mogą użyć klucza publicznego nadawcy do matematycznej weryfikacji podpisu.
Jeśli matematyka się zgadza, sieć wie, że transakcja jest legalna i autoryzowana przez prawdziwego właściciela. Jeśli nie, transakcja jest natychmiast odrzucana. Ta weryfikacja odbywa się automatycznie na tysiącach komputerów na całym świecie, zabezpieczając sieć bez interwencji człowieka.
| Komponent | Funkcja | Widoczność |
|---|---|---|
| Klucz prywatny | Podpisuje transakcje, aby udowodnić własność | Tajny (tylko właściciel) |
| Klucz publiczny | Weryfikuje podpisy względem adresu | Publiczny (sieć) |
| Adres | Cel dla odbieranych funduszy | Publiczny (każdy) |
Model niewydanych wyjść transakcji (UTXO)
Jak Bitcoin obsługuje wartość
Większość ludzi jest przyzwyczajona do modelu „opartego na kontach” używanego przez banki i karty kredytowe. W tym systemie, jeśli masz 100 USD i wydasz 20 USD, bank po prostu aktualizuje swój wpis w bazie danych na 80 USD. Bitcoin używa innej logiki znanej jako model niewydanych wyjść transakcji (UTXO). W tym systemie nie ma trwałych sald, tylko fragmenty bitcoinów, które zostały otrzymane, ale jeszcze nie wydane.
Wyobraź sobie te UTXO jako cyfrową gotówkę lub grudki złota o różnych rozmiarach. Jeśli otrzymasz transakcję na 0.5 BTC i inną na 0.3 BTC, posiadasz dwa oddzielne UTXO w swoim portfelu. Nie łączą się one w pojedynczy „coin” 0.8 BTC na łańcuchu bloków, nawet jeśli oprogramowanie portfela wyświetla sumę dla wygody. Pozostają oddzielnymi, wyraźnymi zapisami wartości czekającymi na użycie.
Kiedy inicjujesz transakcję, twój portfel wybiera wystarczającą liczbę tych UTXO, aby pokryć kwotę, którą chcesz wysłać. Nie możesz podzielić UTXO na pół bez wydania go w całości. To podobne do działania fizycznej gotówki. Nie możesz rozerwać banknotu 20 USD, aby zapłacić za przedmiot za 10 USD. Musisz oddać cały banknot i otrzymać resztę w zamian.
Wejścia, wyjścia i reszta
Każda transakcja Bitcoin składa się z wejść i wyjść. Wejścia to odniesienia do poprzednich UTXO, które teraz wydajesz. Wyjścia to nowe cele dla tej wartości. Kiedy tworzysz transakcję, konsumujesz istniejące UTXO jako wejścia i tworzysz nowe UTXO jako wyjścia.
Na przykład, jeśli górnik zarobi nagrodę bloku w wysokości 6.25 BTC, to jest to pojedyncze UTXO. Jeśli górnik chce wysłać 1 BTC do Alice, nie może po prostu wysłać 1 BTC. Musi skonstruować transakcję, która bierze UTXO 6.25 BTC jako wejście. Transakcja będzie miała wtedy dwa wyjścia.
Pierwsze wyjście wysyła 1 BTC do Alice. Drugie wyjście wysyła pozostałe 5.25 BTC z powrotem na adres samego górnika. To drugie wyjście jest znane jako „wyjście reszty”. Na łańcuchu bloków oryginalne UTXO 6.25 BTC jest oznaczone jako wydane i nie jest już ważne dla przyszłych transakcji. Zamiast niego tworzone są i rejestrowane dwa nowe UTXO (1 BTC i 5.25 BTC). Ten łańcuch wejść i wyjść tworzy niezniszczalną historię waluty.
Bitcoin Script: język transakcji
Wykonywanie oparte na stosie
Transakcje Bitcoin to nie tylko proste przekazywanie wartości; to programowalne instrukcje. Te instrukcje są pisane w języku zwanym Bitcoin Script. W przeciwieństwie do złożonych języków programowania używanych do ogólnego rozwoju oprogramowania, Script jest celowo prosty. Jest „oparty na stosie”, co oznacza, że przetwarza dane, umieszczając elementy na liście (stosie) i wykonując operacje na górnych elementach.
Script nie jest również Turing-complete. Oznacza to, że brakuje mu zdolności do tworzenia pętli lub złożonej logiki, która mogłaby działać w nieskończoność. Ten wybór projektowy to celowa funkcja bezpieczeństwa. Ograniczając złożoność języka, sieć zapobiega nieskończonym pętlom, które mogłyby spowodować awarię węzłów lub pozwolić atakującym zablokować system kosztownymi obliczeniowo poleceniami.
Skrypt określa warunki, które muszą być spełnione, aby wydać UTXO. Kiedy tworzona jest transakcja, nadawca dołącza „Skrypt blokujący” (ScriptPubKey) do wyjścia. Ten skrypt zasadniczo mówi: „Te fundusze mogą być przeniesione tylko przez kogoś, kto może dostarczyć podpis pasujący do tego konkretnego hasha klucza publicznego.”
Odblokowywanie i weryfikacja
Aby później wydać te fundusze, właściciel tworzy nową transakcję zawierającą „Skrypt odblokowujący” (ScriptSig). Ten skrypt zawiera podpis cyfrowy i klucz publiczny. Kiedy węzeł weryfikuje transakcję, uruchamia oba skrypty razem. Umieszcza skrypt odblokowujący na stosie, a następnie skrypt blokujący z poprzedniej transakcji.
Węzeł wykonuje instrukcje sekwencyjnie. Jeśli ostateczny wynik to „True”, transakcja jest ważna i fundusze mogą być przeniesione. Jeśli wynik to „False”, transakcja jest nieważna. Ten mechanizm pozwala na warunki bardziej złożone niż prosta własność.
Na przykład skrypty mogą być napisane tak, aby wymagały wielu podpisów (Multi-Sig), gdzie dwa z trzech wyznaczonych kluczy muszą podpisać, zanim fundusze się ruszą. Skrypty mogą również wymuszać blokady czasowe, uniemożliwiając wydanie funduszy do osiągnięcia określonej wysokości bloku. Ta programowalność jest podstawą zaawansowanych funkcji, takich jak Lightning Network i sidechains, które używają złożonych skryptów do umożliwienia szybszych, tańszych rozliczeń poza łańcuchem.
Cykl życia transakcji: od portfela do łańcucha bloków
Tworzenie i nadawanie
Podróż transakcji Bitcoin zaczyna się w oprogramowaniu portfela użytkownika. Portfel zbiera niezbędne wejścia z dostępnych UTXO użytkownika i definiuje wyjścia. Oblicza różnicę między wejściami a wyjściami, która staje się opłatą transakcyjną. Po ustaleniu szczegółów portfel używa klucza prywatnego do wygenerowania podpisu cyfrowego.
Ten podpisany pakiet danych jest następnie nadawany do sieci. Węzeł użytkownika wysyła wiadomość do swoich rówieśników, które z kolei propagują ją na cały świat. Każdy węzeł, który otrzyma transakcję, wykonuje wstępną kontrolę. Weryfikują, czy podpis cyfrowy jest ważny, czy wejścia nie zostały już wydane i czy wartości transakcji są nieujemne.
Jeśli transakcja przejdzie te kontrole, węzeł dodaje ją do swojego tymczasowego obszaru przechowywania zwanego „mempool” (memory pool). Mempool to nie singularna centralna kolejka, lecz lokalna kolekcja ważnych, niepotwierdzonych transakcji przechowywanych przez każdy indywidualny węzeł. Na tym etapie transakcja jest znana sieci, ale jeszcze nie jest częścią stałej historii łańcucha bloków.
Rynek opłat i priorytetyzacja
Ponieważ bloki na łańcuchu bloków Bitcoin mają ograniczoną pojemność rozmiaru, nie każda transakcja w mempoolu zmieści się do następnego bloku. Ta rzadkość tworzy rynek opłat. Górnicy, którzy konstruują bloki, są finansowo motywowani do włączania transakcji płacących najwyższe opłaty za bajt danych.
Opłaty nie są określane przez wartość bitcoinów being sent, lecz przez rozmiar danych transakcji. Transakcja przenosząca 10 milionów USD może być bardzo mała pod względem rozmiaru danych, jeśli używa tylko jednego wejścia i jednego wyjścia. Odwrotnie, transakcja przenosząca 100 USD może być duża pod względem rozmiaru danych, jeśli zbiera kurz z pięćdziesięciu małych wejść, aby dokonać płatności.
Użytkownicy, którzy chcą szybkiego potwierdzenia swoich transakcji, muszą dołączyć opłatę wystarczająco konkurencyjną, aby skusić górników. W okresach dużego zatłoczenia sieci mempool wypełnia się niepotwierdzonymi transakcjami. Górnicy naturalnie wybierają najwyższych licytujących. Transakcje z niskimi opłatami mogą siedzieć w mempoolu przez godziny lub dni, aż ruch ustanie lub nadawca zwiększy opłatę.
Wydobywanie i konsensus
Górnicy odgrywają ostateczną rolę w utrwalaniu mechaniki transakcji. Górnik wybiera partię transakcji z swojego mempoolu, aby utworzyć kandydacki blok. Następnie angażują się w Proof of Work (PoW), proces intensywny obliczeniowo, w którym konkurują o rozwiązanie matematycznej zagadki opartej na danych w tym bloku.
Ten proces wymaga wielokrotnego hashowania nagłówka bloku z losową liczbą zwaną nonce, aż wynikowy hash spadnie poniżej określonej trudności docelowej. Trudność dostosowuje się automatycznie co 2016 bloków, aby zapewnić, że nowe bloki są znajdowane mniej więcej co 10 minut, niezależnie od ilości mocy obliczeniowej dołączającej do sieci.
Kiedy górnik znajdzie poprawne rozwiązanie, nadaje nowy blok do sieci. Inne węzły otrzymują blok i weryfikują rozwiązanie. Ponownie weryfikują również każdą transakcję włączoną do tego bloku, aby upewnić się, że żadne zasady nie zostały złamane. Po zweryfikowaniu węzły aktualizują swoją lokalną kopię łańcucha bloków, usuwając włączone transakcje z mempoolu. Transakcja jest teraz potwierdzona.
Rozwiązywanie problemu podwójnego wydawania
Wyzwanie cyfrowego duplikowania
W sferze cyfrowej informacje są łatwo kopiowane. Jeśli wyślesz zdjęcie e-mailem, nadal masz oryginalny plik. Dla waluty cyfrowej stanowi to krytyczną lukę znaną jako problem podwójnego wydawania. Bez mechanizmu zapobiegającego temu złośliwy aktor mógłby podpisać transakcję wysyłającą 1 BTC do sprzedawcy i jednocześnie podpisać inną transakcję wysyłającą te same 1 BTC do siebie lub innej strony.
W systemie scentralizowanym bank zapobiega temu, utrzymując główny rejestr. W sieci zdecentralizowanej nie ma centralnego organu, który powie, która transakcja była pierwsza. Bitcoin rozwiązuje to poprzez połączenie publicznego rejestru łańcucha bloków i Proof of Work.
Ponieważ każdy pełny węzeł utrzymuje kompletną kopię łańcucha bloków, cała sieć ma konsensus co do tego, które UTXO są obecnie ważne. Jeśli użytkownik spróbuje nadać dwie konfliktowe transakcje, węzły zaakceptują pierwszą, którą zobaczą, i odrzucą drugą jako próbę wydania już referencyjnych wejść.
Nieodwracalność dzięki Proof of Work
Jednak różnice w czasie mogłyby prowadzić do tymczasowego akceptowania przez różne węzły różnych wersji prawdy. Tu wydobywanie staje się decydujące. „Prawda” w Bitcoinie jest definiowana przez najdłuższy łańcuch z największą akumulowaną pracą Proof of Work. Kiedy transakcja jest włączona do bloku, staje się częścią tej oficjalnej historii.
Aby odwrócić lub podwójnie wydać transakcję już potwierdzoną w bloku, atakujący musiałby ponownie wydobyć ten blok i wszystkie kolejne bloki szybciej niż reszta sieci razem wzięta. Jest to znane jako atak 51%. Ogromny koszt energii i sprzętu wymagany do osiągnięcia tego czyni rejestr praktycznie niezmiennym.
Im więcej bloków jest dodawanych na wierzch bloku zawierającego konkretną transakcję, tym bezpieczeństwo rośnie wykładniczo. Transakcja z jednym potwierdzeniem jest generalnie bezpieczna, ale z sześcioma potwierdzeniami uważana jest za matematycznie niemożliwą do odwrócenia w normalnych warunkach sieci. Ten mechanizm zamienia dane cyfrowe, które normalnie są łatwe do skopiowania, w unikalny, skończony zasób cyfrowy.
Rola węzłów w integralności sieci
Weryfikacja vs. wydobywanie
Powszechnym błędem jest przekonanie, że tylko górnicy zabezpieczają sieć. Podczas gdy górnicy porządkują transakcje i produkują bloki, „węzły” to audytorzy egzekwujący zasady. Węzeł to dowolny komputer uruchamiający oprogramowanie Bitcoin, który przechowuje łańcuch bloków i weryfikuje ruch.
Pełne węzły pobierają każdy blok i transakcję. Sprawdzają podpisy cyfrowe, weryfikują, czy kwoty wejść pokrywają kwoty wyjść, i upewniają się, że żadne monety nie są podwójnie wydawane. Ważne jest, że węzły weryfikują również pracę wykonaną przez górników. Jeśli górnik wyprodukuje blok naruszający jakąkolwiek zasadę protokołu – taką jak przyznanie sobie zbyt dużo bitcoinów lub włączenie nieważnej transakcji – węzły natychmiast odrzucą blok.
To odrzucenie następuje niezależnie od ilości energii zużytej przez górnika na stworzenie bloku. Ten balans władzy zapewnia, że górnicy nie mogą zmieniać zasad systemu ani drukować dodatkowych pieniędzy. Są sługami protokołu, kontrolowanymi przez zdecentralizowaną sieć węzłów prowadzonych przez osoby i firmy na całym świecie.
Zdecentralizowanie i niezawodność
Wytrzymałość mechaniki transakcji Bitcoin opiera się na różnorodności i liczbie tych węzłów. Im bardziej rozproszone są węzły, tym trudniej jakiejkolwiek jednostce cenzurować transakcje lub wyłączyć sieć. Węzły komunikują się peer-to-peer, propagując dane transakcji jak plotkę rozprzestrzeniającą się w tłumie.
Nie ma centralnego serwera do zhakowania. Jeśli sekcja internetu wyjdzie offline, pozostałe węzły kontynuują działanie. Kiedy odłączone węzły wrócą, synchronizują się z siecią, aby pobrać brakującą historię. Ta architektura zapewnia, że rejestr pozostaje spójny i dostępny globalnie przez 24/7, bez przestojów.
Użytkownicy mogą uruchamiać własne węzły, aby uzyskać suwerenność finansową. Weryfikując własne transakcje zamiast polegać na usłudze portfela stron trzecich, eliminują potrzebę zaufania komukolwiek innemu co do stanu swoich finansów. To zgadza się z podstawową etyką Bitcoin: „Nie ufaj, weryfikuj”.
Opłaty sieciowe i waga danych
Obliczanie kosztów
Koszt transakcji Bitcoin jest często źle rozumiany. Nie jest to procent kwoty wysłanej, jak opłata za przetwarzanie karty kredytowej. Zamiast tego jest to ściśle płatność za miejsce w bloku. Miejsce w bloku to rzadki towar, ograniczony do określonej pojemności na blok (koncepcyjnie 1 MB, choć zaawansowany przez ważenie SegWit).
Ponieważ system używa modelu UTXO, rozmiar danych transakcji zależy od złożoności jej wejść i wyjść. Transakcja konsolidująca dziesięć małych wejść w jedno wyjście zawiera więcej danych podpisu cyfrowego niż transakcja używająca jednego wejścia. W konsekwencji zużywa więcej bajtów w bloku.
Górnicy pobierają opłatę za jednostkę danych, zazwyczaj mierzoną w satoshi na bajt (sat/vB). „Satoshi” to najmniejsza jednostka Bitcoin (0.00000001 BTC). Jeśli aktualna stawka rynkowa to 50 sat/bajt, prosta transakcja może kosztować 2 USD, podczas gdy złożona 10 USD, nawet jeśli przenoszą tę samą wartość.
| Czynnik | Wpływ na opłatę | Powód |
|---|---|---|
| Liczba wejść | Zwiększa opłatę | Każde wejście wymaga skryptu podpisu cyfrowego |
| Liczba wyjść | Zwiększa opłatę | Każde wyjście dodaje dane dla nowego adresu |
| Zatłoczenie | Zwiększa stawkę | Wysoki popyt podnosi cenę rynkową sat/bajt |
Zarządzanie zatłoczeniem
Opłaty sieciowe wahają się dziko w zależności od popytu. Kiedy mempool jest pusty, użytkownicy mogą zapłacić minimalną opłatę i nadal zostać potwierdzeni w następnym bloku. Kiedy sieć jest zajęta, użytkownicy muszą konkurować. Portfele zazwyczaj szacują wymaganą opłatę, patrząc na aktualne opóźnienie w mempoolu.
Dla użytkowników, którzy ustawią zbyt niską opłatę, transakcja nie jest stracona; po prostu wisi w mempoolu. Ostatecznie, jeśli nigdy nie zostanie wybrana przez górnika, zostanie usunięta z pamięci węzłów, a fundusze efektywnie pozostaną w portfelu nadawcy. W pilnych sytuacjach użytkownicy mogą skorzystać z akceleratorów transakcji lub protokołów „Replace-by-Fee” (RBF), aby zwiększyć opłatę utkniętej transakcji, efektywnie nadając ją ponownie z wyższym zachętą dla górników.
Podsumowanie
Mechanika transakcji Bitcoin reprezentuje zmianę z systemów finansowych opartych na zaufaniu na systemy kryptograficzne oparte na weryfikacji. Zastępując salda kont modelem UTXO, Bitcoin traktuje wartość jako łańcuch cyfrowej pieczy, który może być audytowany przez każdego. Kryptografia klucza publicznego zapewnia, że tylko właściciel klucza prywatnego może inicjować te transfery, zapewniając poziom bezpieczeństwa nieoparty na skarbcach bankowych czy weryfikacji tożsamości.
Ten system jest spajany przez współdziałanie węzłów, górników i specyficznych zasad Bitcoin Script. Język skryptowy, choć celowo ograniczony w zakresie, zapewnia niezbędną logikę do weryfikacji własności i umożliwiania złożonych warunków wydawania bez kompromitowania stabilności sieci. Konkurencyjny rynek opłat i mempool zapewniają, że ograniczony zasób miejsca w bloku jest alokowany efektywnie, podczas gdy Proof of Work zapewnia termodynamiczne bezpieczeństwo czyniące rejestr niezmiennym.
Zrozumienie tych mechanik ujawnia, dlaczego Bitcoin jest opisywany jako zdecentralizowany rejestr. Nie jest to jedynie waluta, lecz rygorystyczny, zautomatyzowany system księgowości utrzymywany przez globalny konsensus. Każdy aspekt, od matematyki kluczy po wejścia zbioru UTXO, jest zaprojektowany tak, aby pozwolić nieznajomym wymieniać wartość bez pośredników, rozwiązując problem podwójnego wydawania za pomocą kodu zamiast autorytetu.
Bitcoin zastępuje zaufanie do instytucji kryptograficznym dowodem, zapewniając, że transfer wartości jest weryfikowany, niezmienny i ściśle należący do posiadacza klucza.