Adresy portfela w świecie krypto w niczym nie przypominają numerów konta w tradycyjnej bankowości. Zazwyczaj są to po prostu długie ciągi losowych znaków, co może wprawić nowicjuszy w zakłopotanie. Niektóre kryptowaluty działają w różnych sieciach, a każda z nich ma zupełnie inny adres. Łatwo jest więc się pomylić i wysłać środki na nieprawidłowe "konto". Jak dobrze wiemy kryptotransakcje są nieodwracalne. Czy jednak na pewno? W dzisiejszym artykule na przykładzie sieci Binance Smart Chain i Ethereum, wyjaśnimy wam krok po kroku, w jaki sposób odzyskać kryptowaluty przeniesione do niewłaściwej sieci.
Czym różni się BEP-20 od ERC-20?
BEP-20 i ERC-20 to dwa różne standardy tworzenia tokenów, które definiują techniczne działanie tokenów. Standaryzują one sposób w jaki tokeny współpracują z siecią, portfelami czy inteligentnymi kontraktami. Obydwa mają wiele podobieństw.
ERC-20 działa jednak tylko na blockchainie Ethereum, a BEP-20 na Binance Smart Chain.
Oznacza to, że jeżeli wyślesz token ERC-20 do sieci BSC i na odwrót, nie będzie on spełniał funkcji, których oczekujesz. Przykładowo, token w standardzie ERC-20 wysłany do BSC nie będzie działał w dAppach BSC.
Co się stanie jeśli wyślę token do niewłaściwej sieci?
Jeśli wyślesz token zbudowany w standardzie ERC-20 do sieci BSC (BEP-20) lub na odwrót, twój token znajdzie się na tym samym adresie tylko w innej sieci. Twój adres portfela jest identyczny, zarówno w sieci Ethereum jak i Binance. Jest też dostępny za pomocą tego samego klucza prywatnego.
Przykładowo, jeśli wyślesz Ethereum na adres Binance Smart Chain, twój token stanie się tokenem BEP-20, który będzie powiązany z Ethereum w stosunku 1:1.
Twoje krypto nie zniknie. Jedyne co będzie trzeba zrobić to odesłać środki do odpowiedniej sieci. W jaki sposób to zrobić? To zależy od sytuacji.
Środki wysłane do złej sieci będziemy odzyskiwać w różny sposób, w zależności od tego z jakiego portfela korzystamy:
Portfel obsługujący BSC i ETH
Jeżeli korzystasz z portfela, który obsługuje dwa blockchainy, odzyskanie tokenów nie powinno sprawić żadnych trudności. Jeżeli nie widzisz wysłanego przez siebie krypto, sprawdź listę tokenów obu sieci. Większość portfeli posiada opcję "Dodaj Token". Jeśli nie znajduje się on na liście, możesz też dodać monetę ręcznie wpisując adres kontraktu.
Jeżeli chcesz przywrócić swoje środki do oryginalnej sieci, możesz to zrobić na dwa sposoby: metodą ręczną lub za pomocą Binance Bridge.
Binance Bridge
Binance Bridge to narzędzie od Binance, które pozwala konwertować aktywa pomiędzy blockchainami. Wystarczy podłączyć swój portfel i wybrać co chcesz przesłać. Pamiętaj, że aby przesłać środki będziesz musiał posiadać aktywo bazowe, aby pokryć opłaty za gaz. W przypadku Binance jest to Binance Coin (BNB), a Ethereum - token ETH.
Metoda ręczna
Ręczna metoda polega na odesłaniu środków na giełdę Binance. Tak więc, najpierw wysyłasz swoje tokeny na giełdę Binance np. z portfela Binance Chain Wallet. Następnie realizujesz wypłatę z giełdy w sieci ERC-20.
Pamiętaj, że jeżeli w tym kroku wybierzesz złą sieć, może dojść do sytuacji, w której nie będziesz w stanie odzyskać swoich srodków.
Portfel obsługujący tylko BEP-20 lub ERC-20
Aby odzyskać środki z portfela obsługującego tylko jedną z powyższych sieci, musisz zaimportować swój klucz prywatny do portfela, który obsługuje obydwie.
Proces ten nie sprawi jednak, że twoje środki zostaną przesłane. Twój portfel będzie po prostu dostępny z poziomu innej aplikacji.
Portfel giełdowy lub kustodialny
Jeżeli chcesz wypłacić swoje środki z portfela kustodialnego np. z giełdy kryptowalut, konieczny będzie kontakt z usługodawcą. Portfele typu "custodial" to te, gdzie nie masz dostępu do kluczy prywatnych. Niektórzy dostawcy takich usług mogą udostępnić Ci klucze prywatne. Jeżeli uda ci się uzyskać dostęp do takich informacji, będziesz mógł zaimportować je do odpowiedniego portfela.
Jednak większość usługodawców, a zwłaszcza giełdy, niestety nie dają takiej możliwości.
Czy mogę anulować lub zmienić transakcję Ethereum, gdy została już wysłana?
W większości przypadków odpowiedź brzmi: nie. Po wydobyciu transakcji i włączeniu jej do bloku na blockchainie, nie można jej anulować ani zamienić. W czasach normalnego wolumenu, transakcje są wydobywane w ciągu kilku sekund i nie przebywają w puli transakcji dłużej niż kilka sekund.
Nie ma po prostu wystarczająco dużo czasu, aby anulować, zamienić lub unieważnić transakcję, gdy została już ona wysłana.
Jednak w czasach wyjątkowo dużego wolumenu i wysokich cen gazu,
transakcje mogą oczekiwać w mempoolu na realizację przez wiele godzin lub dni. Jeśli Twoja transakcja oczekuje na realizację, możliwe jest zastąpienie jej nową transakcją.
Najprostszym sposobem jest wysłanie transakcji o wartości 0 ETH na swój własny adres z tym samym nonce i wyższą ceną gazu. W ten sposób anulujesz swoją pierwszą transakcję.
Nie ma jednak gwarancji, że ten sposób zadziała, ani że będzie działać za każdym razem. Jeśli nie zastosujesz się do tego procesu dokładnie, możesz skończyć na wysłaniu dwóch transakcji, a nawet wtedy nie ma gwarancji.
W tym artykule nie dowiesz się jak anulować transakcję, którą przypadkowo wysłałeś na zły adres, lub jak odzyskać ETH po jego wysłaniu.
Dotyczy on jedynie wyszukiwania, sprawdzania i ewentualnego zastąpienia transakcji, które utknęły w puli transakcji na bardzo długi okres czasu.
Jak sprawdzić status transakcji?
- Przejdź do eksploratora blockchaina Ethereum, takiego jak Etherscan.io, Ethplorer.io lub EthVM.
- Skopiuj i wklej hash transakcji do pola wyszukiwania.
- Szczegóły pojawią się w zależności od stanu transakcji. Może to być:
Transakcja zakończona sukcesem: Twoja transakcja została pomyślnie wydobyta i znajduje się na blockchainie. Jeśli nie widzisz żadnych błędów, Twoja transakcja została pomyślnie wysłana. Twoje ETH lub tokeny są tam, gdzie je wysłałeś. Jeśli saldo nie zostało zaksięgowane na Twoim portfelu lub koncie giełdy 24 godziny po wysłaniu, skontaktuj się z usługodawcą. Wyślij im link do swojej transakcji i poproś ich o sprawdzenie sytuacji.
Nie powiodła się: Jeśli widzisz czerwony ( ! ) symbol, lub komunikat o błędzie "BAD INSTRUCTION" lub "OUT OF GAS", oznacza to, że transakcja nie została wysłana pomyślnie. Nie można anulować ani zastąpić tej transakcji. Zamiast tego należy wysłać nową transakcję. Jeśli wystąpił błąd "Out of Gas", należy podwoić pierwotnie określony limit gazu.
Jeśli status twojej transakcji to "Reverted" dobrze jest dwukrotnie sprawdzić podejmowane przez Ciebie działania. Jest to błąd związany z błędem użytkownika smart kontraktu.
Transakcja nie została znaleziona: Ta transakcja nie może zostać znaleziona. Możliwe, że nie przeszła, lub że nie można jej znaleźć w eksploratorze blockchain Ethereum, którego używasz. Spróbuj użyć innego (Etherscan.io, Ethplorer.io, lub EthVM). Jeśli nadal nie możesz jej znaleźć, to znaczy, że nigdy nie została wysłana.
Oczekująca: Twoja transakcja została zlokalizowana w puli transakcji eksploratora, którego używasz. Jest ona obecnie w toku (czeka na wydobycie). Istnieje szansa, że możesz anulować lub zastąpić tę transakcję, ale jest to bardzo mała szansa.
Jeśli Twoja transakcja jest oznaczona jako "Oczekująca", sprawdź cenę gazu, której użyłeś do tej transakcji i porównaj ją z cenami gazu widocznymi na EthGasStation.info. Jeśli jest ona znacznie niższa niż podana "bezpieczna" cena, masz duże szanse na zastąpienie lub anulowanie transakcji.
Zastąpienie vs Anulowanie transakcji
Anulowanie: Jest to sytuacja, w której chcesz "cofnąć" swoją transakcję. Nie chcesz, aby została ona zrealizowana, więc generujesz transakcję o wartości 0 ETH na swój własny adres w celu uniemożliwienia włączenia poprzedniej transakcji do blockchaina.
Zastępowanie: Jest to sytuacja, gdy chcesz, aby ta sama transakcja przebiegła szybciej, lub chcesz ją zastąpić inną transakcją. Generujesz transakcję XX ETH na czyjś adres w celu wykonania jakiejś czynności (np. wysłania środków) a jednocześnie nie chcesz, aby poprzednia transakcja została zrealizowana.
Powodem, dla którego zalecamy "Anulowanie" zamiast "Zastąpienia" jest to, że nie ma gwarancji, że druga transakcja faktycznie zastąpi pierwszą. Decyzja o zastąpieniu transakcji nową może prowadzić do większego zamieszania: oczekującego ETH lub niepotrzebnie wydanego ETH w postaci gazu. Jest to zwłaszcza prawdopodobne, jeśli pierwsza transakcja zostanie już wydobyta.
Anulowanie transakcji na przykładzie MyEtherWallet
Anulowanie oznacza wygenerowanie transakcji o wartości 0 ETH na własny adres w celu niedopuszczenia do uwzględnienia w blockchainie poprzedniej transakcji.
Krok 1. Przejdź na stronę Etherscan.io, Ethplorer.io lub EthVM.
Krok 2. Wklej hash swojej transakcji.
- Jeśli strona informuje, że transakcja jest w toku, nadal możesz spróbować ją anulować.
- Jeśli strona informuje, że nie znaleziono transakcji, kliknij przycisk ponownie, odczekując kilka minut między każdym kliknięciem. Jeśli to nie zadziała, prawdopodobnie Twoja transakcja nigdy nie została zrealizowana.
- Jeśli strona informuje, że twoja transakcja zakończyła się sukcesem, nie ma możliwości jej anulowania
Krok 3. Jeśli transakcja jest w toku, zanotuj "Nonce" używany przez transakcję, a następnie wejdź do portfela, którego użyłeś do wysłania oryginalnej transakcji.
Krok 4. W menu po lewej stronie kliknij "Wyślij", a następnie wybierz "Wyślij offline".
Nie musisz być w trybie offline, aby ta metoda zadziałała.
Krok 5. Wyślij transakcję do siebie z saldem 0 ETH i wysoką ceną gazu, podaną na EthGasStation.info, i użyj tego samego nonce, który zanotowałeś w kroku 3. Pamiętaj, że im wyższa cena gazu, tym wyższa jest opłata za transakcję.
Krok 6. Kliknij przycisk "Generate Tranaction", a następnie skopiuj "Signed Transaction", która jest długim ciągiem znaków zaczynającym się od "0x".
Krok 7. Teraz zamknij okienko i przewiń w dół do samej stopki. Wybierz opcję "Send Offline Helper".
Krok 8. Przejdź do sekcji 3 "Signed Transaction", wklej ciąg znaków z kroku 6 i kliknij "Continue".
Krok 9. Pojawi się nowy hash transakcji. Wyszukaj go w wybranym przez siebie eksploratorze i sprawdź, czy transakcja została pomyślnie zaksięgowana. Jeśli transakcja nie pojawi się natychmiast, spróbuj odświeżyć stronę za kilka minut.
Zastąpienie transakcji na przykładzie MyEtherWallet
Zastępowanie transakcji oznacza wygenerowanie transakcji XX ETH na czyjś adres w celu wykonania jakiejś czynności (np. wysłania transakcji). Może to być ta sama transakcja, która jest w toku lub zupełnie nowa transakcja.
Krok 1. Powtórz kroki 1 - 4 z sekcji "Anulowanie transakcji"..
Krok 2. Wypełnij pole "To Address" dowolnym adresem, na który chcesz wysłać środki.
Krok 3. Zmień wartość pola "Amount" z 0 na ilość ETH, którą chcesz wysłać, oraz zmień nonce na taki sam jak w oczekującej transakcji.
Krok 4. Jeśli wysyłasz standardową transakcję ETH, możesz użyć limitu gazu 21000. Jeśli wysyłasz inne tokeny ERC-20, podnieś gaz do około 100000.
Krok 5. W polu "Gas price" użyj wysokiej ceny gazu podanej na stronie EthGasStation.info. Pamiętaj, że im wyższa cena gazu, tym wyższa opłata transakcyjna
Krok 6. Kliknij przycisk "Gnerate transaction", a następnie skopiuj "Signed Transaction", która jest długim ciągiem znaków zaczynającym się od "0x".
Krok 7. Teraz zamknij to okienko i przewiń w dół do stopki. Wybierz opcję "Send Offline Helper".
Krok 8. Przejdź do sekcji 3 "Signed Transaction", wklej ciąg znaków z kroku 6 i kliknij "Continue".
Krok 9. Pojawi się nowy hash transakcji. Wyszukaj go w wybranym przez siebie eksploratorze blockchain i sprawdź, czy transakcja została pomyślnie zaksięgowana. Jeśli nie pojawi się natychmiast, spróbuj odświeżyć stronę za kilka kilka minut.
Mamy nadzieję, że nie będziesz musiał korzystać z opisanych powyżej metod. Pamiętaj, by dokładnie sprawdzać sieć na którą wysyłasz swoje tokeny, szczególnie jeśli korzystasz np. z Binance, która obsługuje sieci alternatywne względem siebie (ETH i BSC) lub innej giełdy mającej własne alternatywne chainy.
Komentarze
Piotr
Jak sprawdzić do jakiej sieci należy dany adres? Np. czy adres jest w sieci ERC20 czy w sieci BSC?
<div class="apbct-real-user-wrapper"> <div class="apbct-real-user-author-name">Albert Czajkowski</div> <div class="apbct-real-user-badge" onmouseover="apbctRealUserBadgeViewPopup('apbct_trp_comment_id_3633');" onmouseout="apbctRealUserBadgeClosePopup(event);"> <img src="https://cryps.pl/wp-content/plugins/cleantalk-spam-protect/css/images/real_user.svg" class="apbct-real-user-popup-img" style="align-self: center;"> <div class="apbct-real-user-popup apbct-trp-popup-desktop" id="apbct_trp_comment_id_3633"> <div class="apbct-real-user-title"> <p class="apbct-real-user-popup-header">The Real Person!</p> <div class="apbct-real-user-popup-content_row"> <img src="https://cryps.pl/wp-content/plugins/cleantalk-spam-protect/css/images/real_user.svg" class="apbct-real-user-popup-img"> <span class="apbct-real-user-popup-text">Author <b>Albert Czajkowski</b> acts as a real person and verified as not a bot.</span> </div> <div class="apbct-real-user-popup-content_row"> <img src="https://cryps.pl/wp-content/plugins/cleantalk-spam-protect/css/images/shield.svg" class="apbct-real-user-popup-img"> <span class="apbct-real-user-popup-text">Passed all tests against spam bots. Anti-Spam by CleanTalk.</span> </div> </div> </div> </div> <div class="apbct-real-user-popup apbct-trp-popup-mob" id="apbct_trp_comment_id_3633"> <div class="apbct-real-user-title"> <p class="apbct-real-user-popup-header">The Real Person!</p> <div class="apbct-real-user-popup-content_row"> <img src="https://cryps.pl/wp-content/plugins/cleantalk-spam-protect/css/images/real_user.svg" class="apbct-real-user-popup-img"> <span class="apbct-real-user-popup-text">Author <b>Albert Czajkowski</b> acts as a real person and verified as not a bot.</span> </div> <div class="apbct-real-user-popup-content_row"> <img src="https://cryps.pl/wp-content/plugins/cleantalk-spam-protect/css/images/shield.svg" class="apbct-real-user-popup-img"> <span class="apbct-real-user-popup-text">Passed all tests against spam bots. Anti-Spam by CleanTalk.</span> </div> </div> </div> </div>
Adresy w obu sieciach wyglądają identycznie, pytanie brzmi czy portfel, na który wysyłasz środki obsługuje obie sieci, czy tylko jedną. To musisz sprawdzić już w portfelu, na który chcesz wysłać swoje środki. Jeśli wysyłasz ją na giełdę, warto sprawdzić czy dana giełda obsługuje tokeny BEP20.