Obecnie transakcje Bitcoina są bardzo tanie i nie stanowią one znacznego wydatku. Jednak kiedy transakcji na sieci wykonywanych jest dużo, to opłaty mogą urosnąć do sporych wartości, jak w grudniu 2017 roku, kiedy masa ludzi zaczęła nagle korzystać z Bitcoina. Na wszelki wypadek lepiej się przygotować na ewentualne ponowne zapchanie mempoola ;)

Na wstępie zachęcam wszystkich do korzystania z adresów bech32 (zaczynających się od "bc1"), czyli z adresów SegWitowych. Transakcje z takiego adresu są tańsze niż ze zwykłych. Niestety wiele giełd jeszcze nie wspiera tych adresów i nie ma możliwości wysłania na nie środków. Wtedy najlepiej używać adresów P2SH (zaczynających się od "3"), czyli przejściowych i kompatybilnych adresów SegWit. Jeżeli jednak mamy możliwość odebrania środków na adres bech32, zawsze go wybierajcie. Z tego adresu możecie wysłać transakcje na wszystkie adresy bez problemu a opłaty są niższe niż przy wysyłaniu środków ze starszych standardów adresów. Ponadto pomagacie w zwiększeniu przepustowości sieci i przyczyniacie się do wolniejszego przyrostu wielkości blockchaina. Jeżeli zależy wam na Bitcoinie, zachęcajcie do korzystania z nowoczesnych rozwiązań a najlepiej korzystajcie z Lightning Network, jeżeli macie taką możliwość.

Dla zobrazowania jak dużo można zaoszczędzić na wielkości transakcji (więc i opłat) przygotowałem porównanie. Przykład transakcji z dwoma outputami i jednym inputem. Im więcej w transakcji outputów, lub inputów, oszczedność tym bardziej rośnie i może być dużo większa niż na tym przykładzie! Używajcie adresów bech32 (bc1) kiedy tylko możecie!


Jest wiele stron poświęconych obliczaniu fee dla transakcji Bitcoinowych, jak np. popularna bitcoinfees.earn.com. Niestety nie dają one zbyt precyzyjnych informacji i są mało czytelne. Ja używam strony mempool.space, która jest genialna w swojej prostocie i przejrzystości.

Portfele mają najczęściej do wyboru kilka opcji opłat, jak np. szybka, normalna, czy ekonomiczna itp. Przy wyborze szybkiej portfel zazwyczaj ustawia bardzo wysoką opłatę, tak aby transakcja na pewno trafiła do najnowszego bloku. Można to jednak obliczyć samemu dużo optymalniej. Obecnie sieć raczej nie jest zapchana i jeżeli nam się nie spieszy z potwierdzeniem transakcji to możemy ustawić nawet malutkie fee <1 satosh / bajt a ona na pewno dojdzie za kilka, lub kilkanaście godzin. Jednak jeżeli spieszy nam się bardziej możemy wybrać optymalne fee samemu. 

Oczywiście wielkość transakcji jest też zależna od ilości outputów z ilu się składa. Na portfelu widzimy sumaryczny stan naszego konta z wielu naszych adresów. Jeżeli mamy np. 1 BTC, ale jest on rozdzielony np. na 3 adresach, to wysyłając cały 1 BTC nasza transakcja będzie składała się z 3 outputów a nie 1. Każdy output to dodatkowa ilość informacji wpływająca na wielkość transakcji, więc również na jej opłatę. Zwykłe portfele mobilne nie dają nam zbyt dużej swobody w kontroli nad naszą transakcją. Najlepiej możemy je kontrolować za pomocą portfeli Bitcoin Core lub Electrum, które posiadają funkcję "kontroli monet" pozwalającą nam na kontrolę nad tym, aby nie łączyć outputów ze sobą. To są jednak trochę bardziej zaawansowane rzeczy i większość użytkowników, raczej nie będzie chciała o nich słuchać a wpis nie dotyczy tego tematu.

Ze względu na zwiększenie anonimowości transakcji portfele determistyczne (obecnie praktycznie wszyscy z takich korzystamy) generują nam nowy adres dla każdej transakcji przychodzącej. Kiedy klikniemy "recive" to za każdym razem pojawia nam się nowy adres. Oczywiście nic nie stoi na przeszkodzie aby zawsze przesyłać bitcoiny na ten sam adres. To jednak daje każdemu śledzącemu transakcję wgląd w resztę naszego konta a także adresów z których otrzymaliśmy Bitcoiny itp.

Zastanówmy się jednak nad tym co się stanie jeżeli postanowiliśmy kupować np. co miesiąc jakieś BTC w różnych źródłach i będziemy je zbierali sobie przez jakiś czas. Jeżeli dla przykładu za 4 lata będzie kolejna bańka Bitcoina a on podskoczy np. do $50000 i postanowimy wszystkie sprzedać, to opłaty mogą być bardzo duże. Przez 4 lata kupując co miesiąc jakieś Bitcoiny i za każdym razem odbierając je na nowym adresie, uzbiera nam się 48 outputów. W trakcie takiej bańki opłaty mogą być bardzo duże nawet dla transakcji z jednym outputem a co dopiero z 48 ;)

Dlatego dobrze co jakiś czas podczas nie zapchanego mempoola sprzątnąć sobie wszystko na jeden adres. Po prostu przesłać wszystkie Bitcoiny z wielu adresów na jeden zbiorczy. Oczywiście wtedy zdradzimy się że należą one do nas, ale jeżeli kupujecie na giełdzie, gdzie macie KYC to i tak jest to wiadome. Jeżeli zależy wam na ukryciu tego, to wtedy należy zmixować te Bitcoiny, ale to zupełnie inny temat. Generalnie, jeżeli zamierzacie w przyszłości sprzedać przy mocnej podwyżce, nie macie nic do ukrycia a Bitcoiny macie rozsiane na wielu adresach to warto za wczasu je sobie zebrać na jednym adresie. 


Jeżeli chcemy obliczyć optymalne dla nas fee, wchodzimy na stronę mempool.space i klikamy zakładkę "Statistics" [1].



Widzimy tu graficzne przedstawienie mempoola. Po prawej stronie możemy wybrać przedział czasowy [2] wykresu. Na tym przykładzie mamy 2 ostatnie godziny. Każdy gwałtowny spadek to moment kiedy jakiś blok został wykopany, więc zniknęła część z transakcji oczekujących w kolejce. Bloki średnio wykopywane są co 10 minut, jednak jest to tylko średnia a czas pomiędzy blokami może wynieść nieraz 1 minutę a nieraz ponad pół godziny. Przez to ciężko nam przewidzieć dokładne fee z jakim zostanie zaakceptowana transakcja. Np. w miejscu [3] widzimy że mempool był prawie pusty i nie było wiele oczekujących transakcji. W tym momencie mogłoby nam się wydawać, że ustawiając niskie fee, transakcja zostanie zaakceptowana w kolejnym bloku. Niestety w tym przypadku wykopanie następnego bloku trwało dłużej, bo ok 35 minut. Nigdy nie jestesmy w stanie tego przewidzieć, jednak jesteśmy w stanie ocenić mniej więcej na jakim poziomie wysokości opłat się znajdujemy obecnie. 


Teraz klikamy w zakładkę "Blocks" obok "Statistics" [2]. 



Tutaj jest największa zaleta tej strony. Symuluje ona działanie koparek. Po prawej stronie od przerywanej linii widzimy wykopane już bloki. Mamy ich rozmiar, ile czasu temu zostały wykopane i ile transakcji zostało w nich zawartych. Po lewej stronie na dole widać ilość oczekujących transakcji, oraz ich całkowity rozmiar. Kopalnie w pierwszej kolejności dodają do bloku transakcje z najwyższymi opłatami. Po lewej stronie mamy symulację takiego bloku. Widzimy że obecnie jest on pełny i znajdują się w nim transakcje z opłatami w przedziale od 2 do 469 sat / bajt. Reszta transakcji, która nie zmieściła się w tym bloku jest dodawana już do kolejnego. Wydawać by się mogło że jak ustawimy 2 sat / bajt, to transakcja zostanie w nim wykopana. Niestety nie jest to takie pewne. Wprawdzie w tej chwili zostałaby ona dodana do najnowszego bloku, jednak pamiętajmy że cały czas ludzie wysyłają kolejne transakcje. Zanim zostanie wykopany kolejny blok, nowsze transakcje z wyższym fee od naszego mogą wyprzeć naszą transakcję do kolejnego bloku ;)

Ja ustawiłem nieco wyższą, bo 3 sat / bajt. Liczyłem się z tym że i ta może nie zostać potwierdzona od razu i nie spieszyło mi się tak bardzo. Gdybym chciał aby została wykopana w najbliższym bloku, ustawiłbym 5-6 sat. Oczywiście, mogłoby się znów przytrafić oczekiwanie np 40 minut na kolejny blok, więc gdyby spieszyło mi się wyjątkowo, ustawiłbym jeszcze wyższe fee, aby mieć pewność że zostanie zawarta w najbliższym bloku.

Po wysłaniu transakcji skopiowałem jej numer id i wkleiłem go do pola po prawej stronie na górze a następnie kliknąłem przycisk "search". Wtedy pojawiło się okienko ze wskaźnikiem w którym bloku moja transakcja zostanie zawarta w danej chwili. W ten sposób możemy sobie łatwo śledzić w którym bloku do wykopania ona oczekuje. Kiedy transakcja zostanie zawarta w wykopanym bloku, zobaczymy ją już po prawej stronie od przerywanej linii jako potwierdzoną. 


Strona nie ma wielu wykresów, ani różnych danych, tylko te podstawowe. Jest jednak bardzo przejrzysta, intuicyjna i w naprawdę prosty, czytelny sposób przedstawia nam obecną sytuację mempoola, jak żadna inna. Polecam.