Transakcja Bitcoin to wiadomość, którą portfel wysyła do sieci, gdy chcesz komuś zapłacić lub przenieść bitcoiny między własnymi portfelami. Określa, które wcześniej otrzymane kwoty zostaną użyte i pod jakimi warunkami będzie można wydać nowe. Sieć sprawdza Twoje uprawnienie i to, czy nie wysyłasz więcej, niż masz do dyspozycji. Samo naciśnięcie Wyślij nie oznacza jeszcze potwierdzonej płatności.
Masz jedną niewydaną kwotę 100 000 sat i chcesz wysłać 60 000 sat. Sat jest najmniejszą jednostką bitcoina: 1 BTC zawiera 100 000 000 sat. Portfel może przygotować transakcję przekazującą odbiorcy 60 000 sat, zwracającą Ci 39 000 sat i pozostawiającą 1 000 sat jako opłatę dla górnika. Przypomina to płacenie większym banknotem i otrzymanie reszty. Pierwotne 100 000 sat zostaje wykorzystane w całości, a powstają dwie nowe kwoty. Reszta zwykle trafia na nowy adres Twojego portfela, nie do obcej osoby. Opłata jest różnicą między sumą wykorzystanych a utworzonych kwot, a nie osobnym wyjściem. Pominięcie reszty mogłoby niechcący bardzo podnieść opłatę. [2]
Bitcoin zapisuje niewydane wyjścia wcześniejszych transakcji, czyli UTXO. Możesz je sobie wyobrazić jako osobne kwoty dostępne dla Twojego portfela. Wejście nowej transakcji wskazuje takie wcześniejsze wyjście; nowe wyjście ustala kwotę oraz warunki jej następnego wydania. Portfel może połączyć kilka kwot lub podzielić płatność między wielu odbiorców. Wejście nie podaje więc po prostu adresu nadawcy: zawiera identyfikator poprzedniej transakcji txid i numer jej wyjścia. Ta para nazywa się outpoint. Wskazane wyjście musi istnieć i nadawać się do wydania. Nie wolno wydać go dwa razy ani policzyć przez dwa wejścia w jednej transakcji. [1] [2]
Przy zwykłej płatności portfel tworzy podpis cyfrowy za pomocą klucza prywatnego. Potwierdza on uprawnienie do transferu i można go sprawdzić bez ujawniania klucza. Warunki mogą też wymagać kilku podpisów lub odczekania do określonego momentu. Technicznie transakcja dostarcza potrzebne dane w scriptSig oraz, gdy ma to zastosowanie, w osobnej części witness. Węzły na tej podstawie sprawdzają warunki wydawanego wyjścia. Ustawienie SIGHASH określa, które części transakcji podpis chroni przed zmianą. Nawet prawidłowy podpis nie pozwala jednak wydać nieistniejących środków, zwiększyć łącznej kwoty ani ominąć niespełnionej blokady czasowej. [2]
Po podpisaniu portfel rozsyła transakcję. Węzły ją sprawdzają i mogą umieścić w swoim mempoolu, poczekalni transakcji niepotwierdzonych. Przyjęcie tam nie oznacza jeszcze zapisu w bloku. Pierwsze potwierdzenie pojawia się po włączeniu do prawidłowego bloku; każdy kolejny blok dodaje następne. Zasady przekazywania i przechowywania transakcji oczekujących mogą się różnić między węzłami i nie są tym samym co reguły prawidłowości bloku. Transakcję oczekującą może zastąpić inna, wydająca te same środki. Nawet potwierdzenie może zniknąć podczas reorganizacji, gdy sieć przyjmie inną prawidłową gałąź historii. Odbiór sprawdzaj więc we własnym portfelu, we właściwej sieci, według kwoty, celu i potwierdzeń, zamiast ufać cudzemu zrzutowi ekranu. [4]
Portfel zwykle pokazuje txid, identyfikator służący do odnalezienia transakcji. Technicznie powstaje on przez dwukrotne zastosowanie SHA-256 do zapisu transakcji bez danych witness. Drugi identyfikator, wtxid, obejmuje też dane witness; jeśli ich nie ma, oba identyfikatory są takie same. Identyfikują zapis, ale same nie dowodzą potwierdzenia płatności. Opłata zależy przede wszystkim od wielkości danych i wybranej stawki, a nie od wartości przesyłanych bitcoinów w zwykłej walucie. Stawkę odnosi się do wirtualnego rozmiaru vsize: tak zwanej wagi transakcji podzielonej przez cztery i zaokrąglonej w górę. Połączenie wielu małych wejść może więc kosztować więcej niż przesłanie jednej większej kwoty. [3]
Wejścia minus wyjścia to opłata
Jeśli zwykła transakcja wykorzystuje łącznie 250 000 sat i przydziela odbiorcom, wraz z resztą, 248 200 sat, pozostałe 1 800 sat to opłata dla górnika. Nie wysyła się jej osobno na adres opłat.
Pełniejszy obraz uzyskasz, czytając to hasło razem z UTXO, Private Key, Mempool, Transaction Fees, SegWit. Do tego hasła prowadzą również odsyłacze z Bitcoin Whitepaper, Timechain / Blockchain, Full Node, UTXO.
01Czy można cofnąć potwierdzoną transakcję Bitcoin?+
Bitcoin nie ma przycisku Anuluj ani administratora, który na życzenie cofnie potwierdzony przelew. Aby odzyskać pieniądze, odbiorca zwykle musi odesłać je nową transakcją. To co innego niż reorganizacja łańcucha, podczas której płatność może chwilowo utracić potwierdzenia. Każdy kolejny blok zwiększa pracę górników, czyli Proof of Work, potrzebną do zastąpienia historii. Więcej potwierdzeń zwiększa więc pewność, ale nie daje absolutnej gwarancji.