Przyjęło się, że w sieci Bitcoin nie ma już możliwości przeprowadzania tanich transakcji. Roger Ver, Jihan Wu i inni promujący Bitcoin Cash próbują przeforsować taki sposób myślenia. Nie jest to jednak prawda. Pokażę w jaki sposób możemy obniżyć opłaty transakcyjne. Zapraszam do lektury, która pomoże zrozumieć dlaczego niektórzy płacą krocie za transakcje, a sprytni są w stanie oszczędzać.
Od czego zależy wysokość opłaty transakcyjnej w sieci Bitcoin?
Wysyłając BTC z naszego adresu możemy w portfelu ustawić żądaną wartość fee. Od jej wysokości zależy jednak to czy i w jakim czasie nasza transakcje zostanie przechwycona przez górników. Poniższy obrazek jest podglądem losowej transakcji w eksplorerze bloków.
Czerwonymi prostokątami zaznaczyłem parametry transakcji składające się na fee. Zależy więc ona od rozmiar transakcji i „Fee per byte”. Ten ostatni parametr służy do bezpośredniego sterowania wysokością opłaty. Ubierzmy teraz tę wiedzę w prosty, matematyczny wzór:
Niepoprawności w rozumowaniu tego równania objawiają się w przypadku takich transakcji jak ta ze zdjęcia, gdzie osoba zapłaciła za opłaty około 70zł Jeśli inteligentnie dobierzemy fee to zredukujemy opłaty do nawet 8 groszy. Teraz zajmiemy się omówieniem zmiennych odpowiedzialnych za wysokość fee. Gdy pojmiemy te zależności lepiej będzie nam zrozumieć problemy związane z opłatami transakcyjnymi.
Zasada działania transakcji Bitcoin
Bitcoin działa, w najprostszy sposób ujmując, jak elektroniczna gotówka. Wykonując przelew w systemie bankowym są przepisywane tylko cyfry z kont. Na naszym adresie posiadamy w rzeczywistości niewydane wyjścia transakcyjne (UTXO), które możemy przyrównać do banknotów. W rzeczywistości możemy otrzymać 100zł w nominałach:
10zł
20zł
20zł
50zł
Możemy również otrzymać 100zł w jednym banknocie. Przy transakcji gotówkowej ilość nominałów nie ma żadnego znaczenia. W sieci Bitcoin ma to jednak ogromny wpływ na wysokość opłaty transakcyjnej. Transakcje BTC składają się z wejść i wyjść (w tym fee), które muszą być równe sobie. UTXO na naszym portfelu stają się później wejściami nowej transakcji. Więcej na temat zasady działania transakcji BTC możecie przeczytać w tym artykule.
Pierwsza zmienna- rozmiar transakcji
Nie wiele osób wie, że w sieci Bitcoin na opłatę transakcyjną wcale wpływu nie ma ilość przesyłanych środków (w przeciwieństwie do systemu bakowego). Przesłanie 100BTC może być tańsze od przesłania 0,001BTC. Jedna osoba może zapłacić za transakcję 1BTC dziesięciokrotnie więcej niż jej znajomy za taką samą kwotę. Co powoduje w takim wypadku takie duże dysproporcje? Odpowiedzią na to pytanie jest właśnie rozmiar transakcji mierzony w bajtach danych. Jeden Bitcoin to tylko zapis w księdze rozrachunkowej. Nie ma więc znaczenia czy w przelewie znajdzie się 10BTC czy 1BTC, gdyż to nie ilość przelewanych środków ma wpływ na opłaty. Liczy się ilość wejść i wyjść, gdyż one determinują rozmiar transakcji.
Żeby to lepiej sobie zilustrować, wyobraźcie sobie, że płacicie komuś 7zł mając jedynie banknot 10zł. Osoba otrzymuje swoją należność, a resztę 3zł oddaje Tobie. Dla Poniżej przykład takiej transakcji w sieci Bitcoin składającej się z jednego wejścia i dwóch wyjść o rozmiarze 226 bajtów.
Wyobraźcie sobie jednak, że wasza transakcja składa się 67 wejść (a możliwych jeszcze więcej) i 2 wyjść. Taka transakcja waży już 11317 bajtów i osoba przesyłająca środki niedawno w taki sposób straciła około 600zł na samo fee. Nic dziwnego, że w przypadku tak dużej opłaty górnik umieścił ją od razu w następnym bloku. Czysty zysk na niewiedzy użytkownika.
Jak dochodzi do takich sytuacji? Jeśli wysyłacie na swój portfel często małe kwoty to każdy taki przelew stanie się kiedyś w przyszłości wejściem w transakcji BTC. Dobrym przykładem dla zilustrowania problemu może być przedsiębiorca, który przyjmuje płatności w BTC i kumuluje je na swoim adresie. Nie trudno sobie wyobrazić jak szybko uzyska on nawet 100 wejść. W dalszej części tłumaczę jak poradzić sobie z takimi sytuacjami.
Druga zmienna- „Fee per byte”
Jest to bezpośredni parametr, którym możemy sterować w celu obniżenia bądź podwyższenia fee. To on decyduje o tym czy górnicy będą zainteresowani Twoją transakcją i czy to ona zostanie wydobyta w następnym bloku. Im większa jego wartość, tym więcej uzyska on za jednostkę danych i jednocześnie więcej zarobi. Jeśli transakcja nie jest zbyt opłacalna dla górnika, to nie jest ona dla niego priorytetem i może umieścić ją dopiero w następnych.
Wyobraźmy sobie, że dzisiaj i wczoraj wysłaliśmy dwie transakcje z „Fee per byte” w wysokości 300sat/B. Dzisiaj nasza transakcja została potwierdzona natychmiastowo, ale wczoraj czekaliśmy ponad 10 bloków. Dzieje się tak, ponieważ ten parametr zależy głównie od warunków sieci:
- Stosunku mocy wydobywczej (hash rate) i trudności wydobycia (difficulty)Jeśli moc wydobywcza sieci spada przy stałej trudności, oznacza to dłuższy czas wydobycia bloków i możliwe są zatory. W wyniku tego ludzie zaczynają się niecierpliwić i podnoszą „Fee-per-byte”, by szybciej uzyskać potwierdzenie transakcji. W taki sposób użytkownicy sami powodują tak wysokie opłaty. Cytując klasyka „ludzie ludziom zgotowali ten los”.
- Stopień wykorzystania blokuZapełnione bloki, czyli takie w których ludzie chcą wykonać więcej transakcji niż udaje się górnikom zmieścić, sprzyjają wysokim opłatom.
Jak obniżyć opłaty transakcyjne?
Są sposoby, by obniżyć fee. W poniższym filmie pokazuję proste sposoby dzięki którym zaoszczędzimy na opłatach.
Cytując fragment z filmu Wilk z Wall Street:
„their money was better off in my pocket, I knew how to spend it better.”
Różnica jest taka, że płacicie fee z waszej kieszeni. Nie rozdawajcie ich górnikom za darmo.
Bitcoin, Blockchain, Kryptowaluty, Poradnik dla początkujących, Przypięty post