Opłaty transakcyjne Bitcoin: sats/vB, mempool i podbijanie opłaty
Dowiedz się, jak rozmiar transakcji Bitcoin, sat/vB, popyt w mempoolu, szacunki opłat, RBF i CPFP wpływają na koszt oraz szansę potwierdzenia płatności on-chain.
W tym przewodnikuOpłata jest ceną za miejsce w bloku Bitcoin
Krótkie podsumowanie
Opłata za transakcję Bitcoin jest zwykle obliczana na podstawie jej rozmiaru wirtualnego i stawki: opłata w satoshi = rozmiar wirtualny w vB × satoshi na wirtualny bajt. Sama kwota wysyłanych BTC nie stanowi podstawy opłaty. Szacunki odzwierciedlają zmieniające się warunki sieci i nie gwarantują czasu potwierdzenia.
Opłata jest ceną za miejsce w bloku Bitcoin
Transakcja Bitcoin wydaje co najmniej jedno niewydane wyjście transakcji i tworzy nowe wyjścia. Różnica między sumą wartości wejść a sumą wartości wyjść to opłata transakcyjna. Otrzymuje ją górnik, który tworzy blok zawierający daną transakcję. Protokół nie potrąca określonego procentu od wysyłanej kwoty, a sama opłata nie jest tym samym co koszt usługi dostawcy portfela.
Transakcje konkurują o ograniczoną przestrzeń w blokach. Budując blok kandydujący, górnik może brać pod uwagę opłaty oferowane przez transakcje oraz zależności między nimi. Przy podobnych pozostałych warunkach wyższa stawka opłaty może uczynić transakcję atrakcyjniejszą, ale nie rezerwuje jej konkretnego miejsca w następnym bloku. Wynik zależy od rynku opłat, zależności między transakcjami, wyboru górnika oraz tego, czy transakcja dotrze do odpowiednich węzłów.
Ten poradnik dotyczy transakcji Bitcoin on-chain przeprowadzanych w sieci Bitcoin. Wypłata z giełdy może obejmować osobną opłatę ustaloną przez giełdę, a płatność Lightning korzysta z innej ścieżki i struktury opłat. Portfel może pokazywać kilka kosztów łącznie, dlatego sprawdź, czy widoczna kwota oznacza opłatę sieciową, opłatę za usługę, czy obie. Poradnik opłat Bitcoin.org wyjaśnia zależność między rozmiarem transakcji, sat/vB i popytem na przestrzeń w bloku.
Łączna opłata i stawka opłaty odpowiadają na różne pytania
Łączna opłata to liczba satoshi płacona za transakcję. Stawka opłaty określa ją w satoshi na wirtualny bajt i jest zapisywana jako sat/vB. Podziel łączną opłatę przez rozmiar wirtualny transakcji, aby obliczyć stawkę; pomnóż rozmiar wirtualny przez wybraną stawkę, aby oszacować łączną opłatę. Portfele często pozwalają wybrać lub sprawdzić stawkę, bo transakcje o różnym rozmiarze mogą mieć różne łączne opłaty nawet przy tej samej stawce.
Załóżmy hipotetycznie, że transakcja ma 140 vB i stawkę 25 sat/vB. Opłata wynosi wtedy 140 × 25 = 3500 satoshi. Ponieważ 1 BTC to 100 000 000 satoshi, 3500 sats odpowiada 0,000035 BTC. Przy stawce 40 sat/vB transakcja o tym samym rozmiarze zapłaciłaby 5600 sats, czyli 0,000056 BTC. To przykładowe obliczenia, a nie bieżące szacunki ani zalecana stawka.
Stawka opłaty nie jest procentem kwoty płatności. Dwie transakcje wysyłające różne kwoty BTC mogą mieć taką samą opłatę, jeśli ich rozmiar wirtualny i stawka są identyczne. Mała płatność może kosztować więcej niż większa, jeśli wymaga większej ilości danych wejściowych albo używa wyższej stawki. Znaczenie ma też wyjście reszty: gdy łączna wartość wejść przewyższa płatność, transakcja może zwrócić nadwyżkę nadawcy jako resztę, a dodatkowe wyjście zajmuje miejsce.
Rozmiar wirtualny odzwierciedla ilość miejsca zajmowanego przez transakcję
Portfele Bitcoin zwykle obliczają opłaty z użyciem rozmiaru wirtualnego, czyli vsize, zamiast traktować każdy serializowany bajt tak samo. W SegWit dane transakcji mają wagę. BIP 141 definiuje wagę transakcji jako trzykrotność rozmiaru bazowego plus rozmiar całkowity, obejmujący dane witness. Rozmiar wirtualny to waga podzielona przez cztery i zaokrąglona w górę do następnego pełnego wirtualnego bajtu. Wzór uwzględnia różną wagę danych witness; nie jest to po prostu surowy rozmiar pliku.
Wejścia i wyjścia dodają różne ilości danych. Wejście wskazuje poprzednie wyjście i dostarcza dane spełniające warunki jego wydania. Dokładny rozmiar zależy od typu wyjścia i danych odblokowujących, w tym podpisów. Wyjście określa wartość i skrypt blokujący. Dlatego transakcja z kilkoma małymi wejściami może być większa niż transakcja z jednym wejściem, nawet jeśli obie wysyłają tę samą łączną kwotę.
Liczba wejść może mieć szczególne znaczenie, gdy portfel łączy wiele małych otrzymanych wyjść, aby sfinansować płatność. Transakcja musi wydać każde wybrane wyjście, a każde wejście dodaje dane. Portfel może również utworzyć wyjście reszty, które zwiększa rozmiar. Różne typy adresów i skryptów mogą mieć różne rozmiary, a długość podpisów może się zmieniać. Podawany rozmiar „typowej transakcji” jest więc tylko przykładem, a nie stałą wielkością każdej płatności Bitcoin.
Szacunek portfela może się zmienić po wybraniu innych monet, dodaniu odbiorców, wyborze innego typu adresu reszty lub zmianie stawki. Dlatego sprawdzenie samej kwoty płatności nie wystarczy. Skład transakcji określa jej vsize, a stawka opłaty wyznacza liczbę satoshi oferowanych za każdy vB. BIP 141 definiuje obliczanie rozmiaru wirtualnego z uwzględnieniem danych witness.
Mempool śledzi niepotwierdzone transakcje, ale nie istnieje jedna globalna kolejka
Po rozgłoszeniu transakcja może trafić do puli pamięci, czyli mempoola, węzłów, które ją otrzymały i zaakceptowały. Mempool to lokalny zbiór niepotwierdzonych transakcji danego węzła, a nie jedna zsynchronizowana kolejka wspólna dla całej sieci. Węzły mogą widzieć transakcje w innej kolejności, stosować różne zasady przekazywania, mieć różne limity pojemności albo w ogóle nie otrzymać danej transakcji.
Górnicy wybierają znane sobie transakcje do bloków kandydujących zgodnie z regułami konsensusu i własnymi zasadami selekcji. Transakcja wydająca wyjście utworzone przez inną, niepotwierdzoną transakcję jest od niej zależna. W takiej sytuacji górnik może oceniać transakcję nadrzędną razem z jednym lub kilkoma potomnymi, zamiast traktować każdą z nich jako osobną pozycję o samodzielnej stawce. Prosty „numer w kolejce” pokazywany przez zewnętrzną stronę może więc być niepełny lub tymczasowy.
Gdy więcej użytkowników konkuruje o miejsce w bloku, stawki, które mogą sprzyjać szybszemu włączeniu, mogą rosnąć. Gdy popyt słabnie, niższe stawki mogą zyskać na konkurencyjności. Poziom konkurencji i transakcje znane portfelowi lub węzłowi mogą szybko się zmieniać. Obecność transakcji w widoku mempoola jednego eksploratora bloków lub portfela nie oznacza, że wszyscy górnicy i węzły widzą to samo.
Transakcja, która nie jest oznaczona jako potwierdzona, nadal pozostaje niepotwierdzona; sam status nie oznacza, że zaginęła lub jest nieważna. W zależności od zasad węzła i zmieniających się warunków mempoola transakcja może przestać być widoczna w puli jednego węzła, a później zostać ponownie rozgłoszona lub zaakceptowana. Jeśli portfel nadal oznacza ją jako oczekującą, nie zakładaj, że jej wejść można już użyć w innej płatności. Przed kolejną próbą wydania sprawdź status transakcji i oficjalne instrukcje portfela.

Szacunek opłaty to cel, a nie gwarancja potwierdzenia
Portfel może oferować opcje takie jak ekonomiczna, standardowa lub priorytetowa albo podawać docelową liczbę bloków. Są to szacunki stawki, która może być konkurencyjna w zaobserwowanych warunkach. Dokumentacja Bitcoin Core dotycząca szacowania opłat opisuje przybliżoną stawkę, która ma zapoczątkować potwierdzenie w zadanym przedziale, jeśli estymator ma wystarczającą historię. Gdy brakuje niedawnych danych, szacunek może być niedostępny. Inne portfele i usługi mogą korzystać z innych danych, modeli, częstotliwości odświeżania i definicji celu.
Cel „następny blok” nie oznacza obietnicy włączenia transakcji do kolejnego bloku. Transakcja może dotrzeć po zmianie warunków użytych w szacunku, a nowe transakcje z wyższymi opłatami mogą konkurować o miejsce. Na wybór bloku mogą również wpływać zależności transakcji. Docelowa liczba bloków jest parametrem szacunku, a nie umową z górnikiem.
Sprawdź, kiedy odświeżono wycenę i czy portfel pokazuje stawkę, czy tylko łączną opłatę. Jeśli transakcja nie jest pilna, niższa stawka może być świadomym wyborem, ale czas potwierdzenia pozostaje niepewny. Jeśli liczy się czas, porównaj szacunek portfela z aktualnym źródłem informacji o opłatach i sprawdź, co portfel może zrobić, gdy warunki się zmienią. Podniesienie opłaty „na wszelki wypadek” może zwiększyć koszt, nie gwarantując włączenia do konkretnego bloku.
Stawka z estymatora nie określa też minimalnej stawki akceptowanej przez każdy węzeł do przekazywania transakcji. Zasady przekazywania, limity mempoola, ustawienia portfela i szacunki potwierdzenia dotyczą powiązanych, ale odrębnych kwestii. Dokument dotyczący projektu mempoola Bitcoin Core opisuje, jak zależności między transakcjami wpływają na selekcję i zasady zastępowania. Nie traktuj zasad jednej wersji oprogramowania ani jednego węzła jako stałej reguły dla całej sieci.
RBF może pozwolić portfelowi zastąpić oczekującą transakcję wersją z wyższą opłatą
Replace-by-fee, czyli RBF, umożliwia zastąpienie niepotwierdzonej transakcji konkurencyjną transakcją z wyższą opłatą, jeśli pozwalają na to portfel i zasady odpowiednich węzłów. Zastępcza transakcja wydaje co najmniej jedno z tych samych wejść, więc obie konkurencyjne wersje nie mogą zostać potwierdzone jako prawidłowe wydanie tego samego wejścia. Portfel może mieć opcję „podbij opłatę”, ale jej dostępność, wymagania i końcowa opłata zależą od portfela i transakcji.
Nie polegaj na nieaktualnej regule, według której transakcja zawsze musi w określony sposób sygnalizować RBF, by dało się ją zastąpić. Aktualna polityka Bitcoin Core wskazuje, że full RBF jest domyślną polityką od wersji 28.0 i że w ramach tej polityki sygnalizowanie nie jest już wymagane do zastąpienia transakcji. Inne węzły, portfele, usługi lub starsze wersje oprogramowania mogą działać inaczej. Brak przycisku w portfelu nie oznacza, że wszystkie węzły mają tę samą politykę; przyczyną może być ograniczenie portfela albo struktura transakcji.
Transakcja zastępcza zwykle musi spełnić więcej warunków niż tylko „dodać jedno satoshi”. Zgodnie z aktualną polityką Bitcoin Core musi zapłacić co najmniej łączną bezwzględną kwotę opłat (w satoshi) pierwotnych transakcji, pokryć dodatkową przepustowość przekazywania wymaganą przez transakcję zastępczą oraz poprawić diagram stawek opłat mempoola. Powiązane transakcje mogą sprawić, że obliczenie będzie bardziej złożone niż samo wybranie wyższej liczby. Aktualna polityka zastępowania opisuje te warunki.
RBF nie jest przyciskiem cofania i nie odwraca potwierdzonej transakcji. To konkurujące ze sobą niepotwierdzone wydania. Odbiorca, który traktuje niepotwierdzoną płatność jako ostateczną, może ponieść ryzyko zastąpienia; transakcja niepotwierdzona nie jest więc równoważna potwierdzonej płatności. Przy odbieraniu środków stosuj zasady potwierdzeń obowiązujące w usłudze odbiorcy zamiast zakładać, że zostanie potwierdzona pierwsza widoczna wersja.
CPFP może zwiększyć zachętę do wspólnego wydobycia transakcji nadrzędnej i potomnej
Child pays for parent, czyli CPFP, wykorzystuje nową transakcję potomną, która wydaje wyjście niepotwierdzonej transakcji nadrzędnej. Potomna może zaoferować na tyle wysoką stawkę, by zachęcić górnika do wspólnego włączenia obu transakcji. Znaczenie mają łączna opłata i łączny rozmiar wirtualny; transakcja potomna nie usuwa opłaty transakcji nadrzędnej ani nie pozwala połączyć ich bez kosztu.
Portfel musi kontrolować odpowiednie niepotwierdzone wyjście i obsługiwać tworzenie transakcji potomnej. Liczą się relacja rodzic–potomek, zasady przekazywania i pakietów oraz wybór górnika. Łączna opłata może być wyższa niż opłata, którą wybrałbyś dla jednej transakcji, a włączenie nadal nie jest gwarantowane. Nie twórz ręcznie transakcji potomnej, jeśli nie rozumiesz, które wyjście wydaje i jak portfel zarządza resztą.
RBF i CPFP rozwiązują podobne, lecz różne sytuacje. RBF tworzy konkurencyjną wersję oczekującej transakcji. CPFP dodaje transakcję zależną, która może zwiększyć zachętę do wydobycia pakietu rodzic–potomek. Portfel może obsługiwać jedną metodę, obie albo żadnej. Projekt mempoola i zasady konkretnej wersji Bitcoin Core określają, co węzeł zaakceptuje; są to mechanizmy, a nie obietnice dotyczące czasu potwierdzenia.
Opłata za wypłatę z giełdy może różnić się od opłaty sieciowej Bitcoin
Giełda może ustalać opłatę za wypłatę we własnym cenniku. Może ona być stała, okresowo aktualizowana albo zależeć od sposobu grupowania wypłat klientów. Taka kwota nie musi odpowiadać stawce opłaty dla jednej osobno rozgłaszanej transakcji. Giełda może łączyć kilka wypłat w jedną transakcję, a portfel self-custody zazwyczaj tworzy transakcję dla wybranych przez użytkownika wyjść.
Przed wypłatą sprawdź opłatę, kwotę, która dotrze do odbiorcy, oraz sieć docelową. Nie zakładaj, że opłata giełdy pokazuje bieżącą stawkę sat/vB. Nawet jeśli platforma nazywa ją „opłatą sieciową”, może to być kwota obliczona przez platformę, a nie bezpośredni szacunek dla konkretnej transakcji. Sprawdź opublikowany cennik i szczegóły podglądu wypłaty.
Z drugiej strony portfel może pokazywać opłatę sieciową bez opłaty dostawcy. Opłatę Bitcoin on-chain ponosi transakcja uwzględniona w bloku; interfejs portfela nie pobiera jej jako procentu przelewu. Porównując wypłatę z giełdy z wysyłką on-chain z portfela, porównaj kwotę otrzymywaną przez adresata, wybraną sieć i osobne pozycje opłat. Przed wysyłką sprawdź sieć i adres za pomocą listy kontrolnej transferu krypto. Inny model opłat gas w Ethereum opisuje poradnik opłat gas Ethereum.
Przed podpisaniem sprawdź szczegóły transakcji
Przed zatwierdzeniem płatności Bitcoin sprawdź sieć, adres odbiorcy, kwotę, łączną opłatę i stawkę, jeśli portfel ją pokazuje. Upewnij się, że chodzi o transakcję Bitcoin on-chain, a nie inną ścieżkę płatności. Obejrzyj podgląd opłaty po wybraniu odbiorców i wejść, ponieważ zmiana transakcji może zmienić jej rozmiar wirtualny, a tym samym łączną opłatę przy tej samej stawce.
Jeśli transakcja oczekuje na potwierdzenie, przed działaniem sprawdź, czy portfel obsługuje RBF lub CPFP i jakie warunki obowiązują. Nie wysyłaj tej samej płatności ponownie jako osobnej transakcji, dopóki nie rozumiesz, że pierwotna nadal może zostać potwierdzona. Zapisz identyfikator transakcji i sprawdź jej status w portfelu albo zaufanym eksploratorze bloków. Zniknięcie transakcji z jednej usługi nie dowodzi samo w sobie, że została potwierdzona, anulowana lub można ją bezpiecznie zastąpić.
Wybierz stawkę odpowiednią do pilności i tego, jak długo możesz czekać, pamiętając, że żadna wycena nie obiecuje miejsca w konkretnym bloku. Jeśli opłata wydaje się wyjątkowo wysoka, sprawdź liczbę wejść i strukturę wyjść; kwota przelewu sama nie wyjaśnia rozmiaru. Jeśli portfel pokazuje tylko sumę, otwórz szczegóły lub dokumentację, aby sprawdzić, które pozycje kosztów uwzględniono. Liczby w tym artykule to przykłady hipotetyczne, a nie bieżąca wycena.
Częste pytania
Q1Czy opłata Bitcoin jest procentem wysyłanej kwoty?
Nie. Opłatę sieciową oblicza się zwykle na podstawie rozmiaru wirtualnego transakcji i stawki. Kwota płatności może być inna, a opłata pozostać taka sama, jeśli vsize i stawka się nie zmienią.
Q2Czy moje bitcoiny przepadły, jeśli transakcja nie jest potwierdzona?
Niekoniecznie. Transakcja może nadal oczekiwać, a widok mempoola danego węzła może się zmieniać. Sprawdź identyfikator transakcji i jej status w portfelu; nie zakładaj, że oczekująca transakcja została anulowana lub można ją bezpiecznie wysłać ponownie.
Q3Czy wyższa stawka sat/vB gwarantuje następny blok?
Nie. Wyższa stawka może poprawić konkurencyjność transakcji przy podobnych warunkach, ale rynek opłat, zależności transakcji, przekazywanie i wybór górników się zmieniają. Szacunek nie może obiecać konkretnego bloku. ---
Źródła i dalsza lektura
Zgłoś problem
Przygotujemy e-mail z linkiem do tego artykułu. Mark otrzyma zgłoszenie dopiero po jego wysłaniu
Szybki test
Przeczytano? Sprawdź się w 3 pytaniach
Pytanie 01
Hipotetyczna transakcja ma rozmiar 140 vB i płaci 25 sat/vB. Jaka jest łączna opłata?
Wybierz odpowiedź, aby zobaczyć wyjaśnienie