Bitcoin został stworzony, aby funkcjonować jako elektroniczna gotówka peer-to-peer. Niezależnie od tego, czy wydajesz, czy przyjmujesz go jako płatność, dobrze abyś wiedział jak działa transakcja w sieci Bitcoin. Właśnie dlatego w dzisiejszym artykule wyjaśnimy to pojęcie od postaw.
Transakcje w Bitcoinie to generalnie wiadomości, takie jak e-mail. Są one jednak cyfrowo podpisane przy użyciu kryptografii i wysyłane do całej sieci w celu weryfikacji. Informacje o transakcjach są publiczne i można je znaleźć na cyfrowej księdze znanej jako „blockchain„. Historia każdej transakcji Bitcoin prowadzi z powrotem do punktu, w którym Bitcoiny zostały po raz pierwszy wyprodukowane lub „wydobyte”.
W białej księdze Bitcoina z 2008, Satoshi Nakamoto napisał:
Definiujemy Bitcoin jako łańcuch cyfrowych podpisów. Każdy właściciel przekazuje Bitcoina następnemu, podpisując cyfrowo hash poprzedniej transakcji oraz klucz publiczny następnego właściciela i dodając je do końca monety. Odbiorca płatności może zweryfikować podpisy, aby sprawdzić łańcuch własności.
Bitcoiny nie „istnieją” same w sobie. Nie ma fizycznych Bitcoinów, ani właściciele Bitcoinów nie mają „konta”. Zamiast tego istnieje „blockchain”. Możesz myśleć o nim jako o księdze, wszystkich transakcji, które kiedykolwiek miały miejsce między adresami Bitcoin. Te zapisy transakcji są aktualizowane przez uczestników sieci Bitcoin (węzły) i dzielone przez każdy z węzłów, gdy salda rosną lub maleją. Jeśli chcesz zobaczyć historię, jak również aktualne saldo dowolnego danego adresu Bitcoin, możesz użyć tzw. eksploratora bloków.
Klucze publiczne i prywatne
Aby wysłać Bitcoina, musisz mieć dostęp do kluczy publicznych i prywatnych związanych z wartością kryptowaluty, którą chcesz wysłać. Kiedy mówimy o kimś „posiadającym” Bitcoiny, oznacza to, że osoba ta ma dostęp do „pary kluczy” składającej się z:
- klucza publicznego (adresu), do którego wcześniej wysłano pewną ilość bitcoinów
- odpowiadającego mu unikalnego klucza prywatnego (hasła), który upoważnia bitcoin wysłany wcześniej do powyższego klucza publicznego (adresu) do wysłania gdzie indziej.
Klucze publiczne, zwane również adresami, są losowo generowanymi ciągami liter i cyfr, które działają podobnie do adresu e-mail lub nazwy użytkownika witryny społecznościowej. Jak sama nazwa wskazuje, są one publiczne, więc dzielenie się nimi z innymi jest bezpieczne. W rzeczywistości, musisz podać swój adres Bitcoin do innych, gdy chcesz, aby ktoś wysłał ci kryptowalutę. Klucz prywatny to inna sekwencja liter i cyfr, również generowana losowo. Jednak klucze prywatne, podobnie jak hasła do poczty elektronicznej lub innych kont, muszą być utrzymywane w tajemnicy. Kluczem prywatnym nie powinieneś się dzielić z nikim. W przeciwnym przypadku możesz stracić wszystkie swoje pieniądze.
Adres Bitcoina może przyrównać do przezroczystego sejfu. Inni mogą zobaczyć, co jest w środku, ale tylko ci z kluczem prywatnym mogą go otworzyć aby uzyskać dostęp do środków.
Jak wygląda transakcja Bitcoin w praktyce?
Najpierw przeanalizujmy poniższy fragment białej księgi Bitcoina.
Chociaż byłoby możliwe, aby operować monetami indywidualnie, byłoby to nieporęczne, aby przeprowadzić oddzielną transakcję dla każdego centa. Aby umożliwić dzielenie i łączenie wartości, transakcje składają się z wielu wejść (input) i wyjść (output). Zazwyczaj mamy do czynienia albo z pojedynczym wejściem z większej poprzedniej transakcji, albo z wieloma wejściami łączącymi mniejsze kwoty, i co najwyżej dwoma wyjściami: jednym dla płatności i jednym zwracającym ewentualną resztę, która trafi z powrotem do nadawcy.
Teraz sprawdźmy jak będzie wyglądać transakcja w sieci Bitcoin w praktyce:
Tomek chce wysłać 1 BTC do Natalii. Aby to zrobić, używa swojego klucza prywatnego do „podpisania” wiadomości zawierającej szczegóły dotyczące transakcji. Ta wiadomość, która musi być rozesłana do sieci, będzie zawierać następujące elementy:
- Wejścia – Zawiera ona informacje o Bitcoinach wysłanych wcześniej na adres Tomka. Przyjmijmy, że Tomek otrzymał wcześniej 0,6 BTC od Alicji i 0,6 BTC od Patryka. Teraz, aby wysłać 1 BTC do Natalii, mogą być dwa wejścia: jedno wejście 0,6 BTC wysłane poprzednio od Alicji i jedno wejście 0,6 BTC od Patryka.
- Kwota – W tym przypadku kwota, którą chce wysłać Tomek wynosi 1 BTC.
- Wyjścia– W takiej sytuacji istnieją także wyjścia. Pierwsze z nich to 1,2 BTC (0,6 BTC + 0,6 BTC) na publiczny adres Natalii. Drugim jest 0,2 BTC zwrócone Tomkowi jako „reszta”.
Proces ten może wydawać się skomplikowany i bezsensowny. Satoshiemu przyświecał jednak pewien ważny cel – poprawa wydajności.
Oczywiście są to szczegóły mocno techniczne. Przy przeprowadzaniu transakcji nie będziesz musiał znać tych wszystkich zakulisowych informacji. Wszystkim zajmie się bowiem Twój portfel kryptowalut.
Rozgłaszanie i potwierdzenia
W powyższym przykładzie, Tomek (poprzez oprogramowanie swojego portfela) roześle swoją proponowaną transakcję do sieci Bitcoin. Specjalna grupa uczestników sieci znana jako „górnicy” weryfikuje, czy klucze Tomka są w stanie uzyskać dostęp do danych wejściowych (tj. adresu(ów), z których wcześniej otrzymał Bitcoina, który twierdzi, że kontroluje).
Górnicy zbierają również listę innych transakcji, które były transmitowane do sieci w tym samym czasie co transakcja Tomka i tworzą z nich blok. Każdy górnik, który ukończył „Dowód Pracy” ma prawo zaproponować nowy blok. Zostanie on dodany lub „dołączony” do łańcucha przez odniesienie do ostatniego bloku. Ten nowy blok jest następnie transmitowany do sieci. Jeśli inni uczestnicy sieci (węzły) zgadzają się, że jest to poprawny blok (tzn. transakcje w nim zawarte są zgodne ze wszystkimi zasadami protokołu i prawidłowo odnoszą się do poprzedniego bloku), przekażą go dalej.
Ostatecznie, inny górnik będzie budować na szczycie tego bloku, odnosząc się do niego jako poprzedniego bloku podczas proponowania następnego bloku. Wszelkie transakcje, które były w poprzednim bloku będą teraz „potwierdzone” przez następnego górnika. W miarę jak bloki są dodawane do łańcucha, rośnie liczba potwierdzeń transakcji Tomka.
Ile trwa przeprowadzenie transakcji Bitcoina? Dlaczego tak długo?
Każdy blok może zawierać tylko określoną liczbę transakcji, a liczba ta jest określona w dużej mierze przez przestrzeń dostępną w każdym bloku, lub „rozmiar bloku”. W przypadku Bitcoina wynosi on 1MB. Ograniczona przestrzeń daje początek rynkowi opłat, na którym górnicy, którzy pobierają prowizje, decydują się na umieszczenie w następnym bloku tylko tych transakcji, których nadawcy zdecydowali się ich sowicie wynagrodzić. Tak więc wyższe opłaty stanowią zachętę dla górników do priorytetowego traktowania Twoich transakcji.
Zauważ, że rozmiar bloku jest arbitralnym limitem. Społeczność Bitcoina wybrała jednak, aby utrzymać rozmiar bloku tak mały, jak to możliwe. Ułatwia to ludziom obsługę węzłów. Bitcoin Cash, który jest forkiem Bitcoina, ma większy rozmiar bloku i dlatego wiąże z dużo niższymi opłatami.
Jak wysokie są opłaty za transakcje Bitcoina?
Opłaty za wysłanie Bitcoina mogą wynosić od kilku centów aż do 100 dolarów. Powodem dużego zróżnicowania jest to, że opłaty te zależą zarówno od podaży i popytu (tzn. jak bardzo sieć jest przeciążona w danym czasie) oraz od „wielkości” transakcji. Na wielkość wpływają przede wszystkim dane wejściowe.
Tak więc jeśli Twoja transakcja ma wiele danych wejściowych, zajmie więcej miejsca w bloku i będzie wymagała wyższej opłaty. Na przykład, jeśli chcesz wysłać 10 BTC, istnieje duża szansa, że Twoja transakcja będzie wymagała więcej danych wejściowych niż w przypadku, gdy chcesz wysłać 1 BTC. Transakcja 10 BTC może składać się z 5+2+1+1+1 (więc w sumie 5 danych wejściowych), podczas gdy transakcja 1 BTC może mieć tylko dwa dane wejściowe, jak w naszym wcześniejszym przykładzie.
Wiele portfeli pozwala użytkownikom na ręczne ustawienie opłat transakcyjnych. Funkcja ta pozwala uniknąć niepotrzebnego przepłacania. Jeśli nie spieszy Ci się z realizacją przelewu, możesz ustawić niższą prowizję. Jeśli jednak Twoja transakcja jest pilna, wystarczy, że ustawisz większą opłatę i tym samym zmotywujesz górników do potraktowania jej priorytetowo.