
Czasami chcąc zaoszczędzić na opłacie transakcyjnej (fee) możemy narobić sobie kłopotu. Okazuje się, że kolejne bloki wpadają, a nasza transakcja nadal nie zostaje zatwierdzona. Postaramy się wyjaśnić dlaczego tak się dzieje i co można zrobić w takim przypadku.
Czasami chcąc zaoszczędzić na opłacie transakcyjnej (fee) możemy narobić sobie kłopotu. Okazuje się, że kolejne bloki wpadają, a nasza transakcja nadal nie zostaje zatwierdzona. Postaramy się wyjaśnić dlaczego tak się dzieje i co można zrobić w takim przypadku.
Każda transakcja ma swoją wielkość wyrażaną w bajtach. Wielkość transakcji nie zależy wcale od jej wartości (ile wysyłamy) a od ilości użytych w niej wejść i wyjść. Innymi słowy: im transakcja jest bardziej skomplikowana tym jest większa. Domyślną wartością opłaty jest 0.0001 BTC za każdy kilobajt transakcji. Zwykła transakcja mająca jedno wejście i dwa wyjścia zajmuje około 300 bajtów i zasadniczo za każdą transakcję powinniśmy uiścić tą minimalną opłatę. Wysyłanie 0.00001BTC "na próbę" traci całkowicie sens, bo opłata jest większa niż wartość transakcji.
Transakcje mogą być wysyłane bez opłaty tylko w szczególnym przypadku - gdy ich priorytet będzie odpowiednio wysoki. Priorytet transakcji zależy od kilku czynników:
- wielkości transakcji
- wartości transakcji
- wieku wejść
Oblicza się to następująco:
priorytet = suma (wartość * wiek + ….) / wielkość
Wartość podawana w satoshi, wiek w ilości potwierdzeń transakcji a wielkość w bajtach. Jeżeli priorytet jest wyższy niż 57`600`000 to Bitcoin Core traktuje ją jako darmową. Wszystkie inne transakcje powinny mieć naliczoną opłatę.
Na przykład wysyłamy łącznie 0.02 BTC które otrzymaliśmy w dwóch częściach po 0.01 wczoraj i przedwczoraj. Cała transakcja będzie miała 2 wejścia i jedno wyjście i zajmie około 380 bajtów. Jeden dzień to 144 bloki. Core liczy więc następująco:
(0.01*100000000*144+0.01*100000000*288)/380 = 1 136 845
Jest to zdecydowanie za mało, żeby poszło za darmo. Jeżeli jednak mieliśmy te monety przez trzy miesiące, kalkulacja będzie wyglądała następująco:
(0.01*100000000*12960+0.01*100000000*13104)/380 = 68 589 473 i transakcja może być darmowa.
Jeżeli na przykład wczoraj otrzymaliśmy całego bitcoina i wysyłamy go dalej:
(1*100000000*144)/234 = 61 538 461 i transakcja również może być bez opłaty (transakcja ma jedno wejście i jedno wyjście więc jest mniejsza niż poprzednia).
Ostatnie słowo ma jednak kopalnia która wykopuje bloki, ponieważ to od konfiguracji jej węzła zależy, jakie transakcje są w ogóle do bloku przyjmowane. Transakcje z odpowiednio wysokim priorytetem, a bez opłaty są zawsze przyjmowane, może jednak ich być w danym czasie tak dużo, że nie wystarczy miejsca w bloku na przyjęcie naszej transakcji. Będzie ona musiała czekać na kolejny blok/bloki. Dodatkowo, jeżeli nasza transakcja nie ma wysokiego priorytetu i nie ma opłaty trafia w kolejkę oczekujących, która właściwie nie ma końca - ilość transakcji czekających na potwierdzenie to średnio około 2000, około tysiąca wchodzi do każdego bloku.
Co więc robić w sytuacji, gdy nasza transakcja nie przechodzi od wielu godzin/dni?
- sprawdzić, czy od czasu jej wysłania w ogóle wpadł jakiś blok. Bloki wpadają średnio co 10 minut, ale są przypadki, gdy na blok czekamy nawet kilka godzin. Może się okazać, że niepotrzebnie się martwimy
- sprawdzić w przeglądarce bloków np. blockchain.info jak nasza transakcja jest traktowana. Transakcje które są niestandardowe mają stosowny komunikat w polu "priorytet"
Jeżeli nasza transakcja jest widoczna w przeglądarce blockchain, oznacza to że nie jest ona na tyle zła, aby być całkowicie odrzucaną przez sieć. Najczęściej wystarczy poczekać. Jeżeli jednak w kilka minut po wysłaniu nadal jest ona niewidoczna, oznacza to że najprawdopodobniej nie ma ona szans na zatwierdzenie.
Ponieważ żadna transakcja w sieci nie może być cofnięta, musimy poświęcić trochę czasu i wysiłku, aby to naprawić. Najpierw musimy się upewnić, że transakcja przestanie być rozgłaszana. Najprościej zrobić to przez wyłączenie własnego węzła, ponieważ będzie on naszą transakcję co pewien czas rozgłaszał. Jeżeli natomiast użyliśmy portfela online (np. z blockchain.info) musimy cierpliwie czekać (nawet 2-3 dni) aż serwis "podda się" i przestanie taką transakcję rozgłaszać. Wydane środki automatycznie znajdą się na naszym koncie ponieważ zniknie transakcja które je wydawała.
Aby jednak transakcja ponownie nie została wysłana z naszego portfela (np. Core) musimy przywrócić kopię portfela która jej nie zawiera. W innym przypadku zaraz po podłączeniu portfel ponownie wyśle taką transakcję i wrócimy do punktu wyjścia.
Innym sposobem jest import klucza prywatnego adresu z którego została wysłana transakcja do innego portfela (najlepiej nieużywanego bez środków) i ponowne wysłanie środków z tego adresu z poprawną (większą) opłatą. Operacja taka powoduje jednak zaistnienie w sieci dwóch różnych transakcji wykorzystujących te same wejścia, co jest interpretowane jako próba ataku "double spend" czyli podwójnego wydania środków. Powodując taką sytuację zmuszamy węzły kopalni do wybrania "lepszej" transakcji, czyli tej która zawiera większą opłatę/priorytet. Po jej zatwierdzeniu w bloku ta pierwsza wadliwa transakcja przestaje być rozgłaszana przez węzły, ponieważ wydaje ona już użyte wejścia.
Możemy też nic nie robić oprócz czekania, często taka transakcja przestaje być rozgłaszana i wraca do naszego portfela, jednak w skrajnych przypadkach może to potrwać nawet 2-3 tygodnie.
Portal bitcoin.pl nie ponosi odpowiedzialności z tytułu ewentualnych szkód jakie powstały w wyniku wykorzystania danych zawartych na łamach serwisu.
Wszelkie kopiowanie, dystrybucja, elektroniczne przetwarzanie oraz przesyłanie zawartości ze stron bitcoin.pl wymaga uprzedniej zgody portalu.

Pierwszy od 2 lat spadek trudności sieci Bitcoin

Członek brytyjskiej komisji parlamentarnej uważa, że nowe regulacje dla bitcoina są zbędne
Newsletter Bitcoin.pl
Najważniejsze newsy i insiderskie informacje prosto na Twój email.
Dbamy o ochronę Twoich danych. Polityka Prywatności

