Czy jesteś programistą Ethereum pracującym nad projektem kryptograficznym? Prawdopodobnie opracowujesz nowy token przy użyciu standardu ERC20, jednak musisz znać działania usprawniające. Pomoże Ci to w podjęciu właściwej decyzji, którego standardu tokenu ERC użyć, dlatego w tym artykule wyjaśnię porównanie ERC777 vs ERC223 vs ERC20..

Rozpocznę porównanie od wyjaśnienia ERC 20, a następnie wyjaśnię jego wady. Następnie wyjaśnię wysiłki na rzecz poprawy, które podjęła społeczność Ethereum, za pośrednictwem ERC 777 i ERC 223.

Porównanie ERC20 z ERC223 i ERC777

Co to jest ERC 20?


Zanim porównam ERC 20 z ERC 223 i ERC 777, muszę wyjaśnić, co to jest ERC i co reprezentuje ERC20. Deweloperzy Ethereum często składają „propozycje ulepszeń Ethreum” (EIP). Społeczność Ethereum przegląda EIP, komentuje, co może wywołać pewne poprawki.

Gdy społeczność Ethereum zaakceptuje EIP, staje się standardem, a następnie nazwaliśmy go „Ethereum Request for Comments” (ERC). ERC 20 jest jednym z takich standardów dla tokenów Ethreum.

ERC 20 jest najbardziej znanym standardem tokenów Ethereum i korzystały z niego prawie wszystkie ICO, które korzystały z platformy Ethereum. Programiści używają go domyślnie do tworzenia nowych tokenów, podczas gdy portfele i giełdy łatwo akceptują tokeny ERC 20.

Przed ERC 20 programiści Ethereum musieli szczegółowo określić zasady, które będą przestrzegane przez ich token, a temu podejściu brakowało standaryzacji. Teraz, dzięki ERC20, programiści Ethereum wiedzą, że będą musieli po prostu używać standardu ERC 20. Ta standaryzacja odegrała dużą rolę w napędzaniu szaleństwa ICO, które obserwowaliśmy od 2017 roku.

Przeczytaj więcej o standardzie ERC 20 w „Poradniku dla początkujących: Co to jest ERC20?”.

Czym są standardowe funkcje ERC 20?

Standard ERC 20 przewiduje następujące funkcje podczas opracowywania tokena Ethereum:

  1. Uzyskaj całkowitą ilość tokenów: Musisz użyć funkcji „totalSupply”.
  2. Pobierz saldo tokenów innego właściciela.
  3. Wyślij tokeny na inne konto właściciela: Musisz skorzystać z funkcji „transfer”. Te rachunki to rachunki EOA.
  4. Wysyłaj tokeny z jednego adresu tokena na inny. Adresy tokenów są adresami kontraktowymi i musisz użyć funkcji „transferFrom”.
  5. Pozwól, aby inne konto wielokrotnie wypłacało środki z Twojego konta, w ramach określonego limitu. W tym celu należy użyć funkcji „Zatwierdź”.
  6. Wydawcy mogą zwrócić niewykorzystane tokeny właścicielom, korzystając z funkcji „zasiłek”.

Błąd ERC 20, który powoduje spalanie tokenów

Chociaż ogólnie jest bardzo dobrze udokumentowany i wdrożony, standard ERC 20 zawiera błąd, który spowodował już spalenie tokenów o wartości milionów dolarów. Funkcja „przelew” umożliwia tylko wysłanie tokenów do innego właściciela, tj. Rachunku EOA.

Jeśli chcesz wysłać środki na konto z inteligentną umową, tj. Inną formę kont Ethereum, musisz użyć kombinacji „zatwierdź” i „przelew z”. Jeśli wyślesz tokeny do inteligentnej umowy za pomocą funkcji „transfer”, zobaczysz udaną transakcję, ale umowa nigdy nie otrzyma tokenów.

To spala te tokeny na zawsze i nie możesz ich odzyskać. Kilku użytkowników użyło niewłaściwej funkcji do wysłania tokenów do inteligentnych kontraktów i na dobre zgubiło swoje tokeny!

Fundacja Ethereum wie o błędzie, ale nadal promuje standard ERC 20. Nie znam powodów, dla których to robią. Prawdopodobnie nie doceniają wagi problemu lub istnieje opór przed zmianą.

Standard tokena ERC223: proponowane rozwiązanie błędu ERC 20

Programista Ethereum, który używa nazwy użytkownika Reddit „Dexaran”, zaproponował EIP 223 z rozwiązaniem tego błędu ERC 20. Przed porównaniem ERC 20, ERC 223 i ERC 777, najpierw wyjaśnię jego propozycję.

Standard tokena ERC223 jest nadal wersją roboczą, a społeczność Ethereum jeszcze go nie wdrożyła. Proponuje następujące rozwiązanie:

  1. Traktuje transakcję w łańcuchu blokowym Ethereum jako zdarzenie i stosuje koncepcję „obsługi zdarzeń”.
  2. Jeśli użytkownicy używają funkcji „transfer” do wysyłania tokenów do inteligentnej umowy, zgłosi błąd, a następnie anuluje transakcję.
  3. Użytkownik płaci „cenę gazu” Ethereum, ale nie traci żadnego tokena.
  4. Ta propozycja dodaje dodatkowy parametr do funkcji „przelew”, aby sprawdzić, czy adres odbiorcy jest kontem umownym.
  5. Jeśli stwierdzi, że adres odbiorcy to konto objęte umową, a nie konto EOA, zakłada, że ​​w umowie zaimplementowano „tokenFallback”.
  6. Funkcja „tokenFallback” umożliwia ponowne wywołanie tokena, więc transakcja nie powoduje spalenia żadnego tokena.

Chociaż ERC223 w dużym stopniu rozwiązuje błąd ERC 20, propozycja ta ma słaby punkt. Jeśli inteligentny kontrakt odbiorcy nie ma funkcji „tokanFallback”, zostanie uruchomiona funkcja „Fallback”, co spowoduje utratę tokenów.

Tylko kilka projektów korzysta z ERC 223, przykładem jest Projekt AmigoCoin. Więcej szczegółów na temat propozycji ERC 223 można znaleźć w Repozytorium GitHub EIP 223. Ten standard jest również nazywany ERC 23.

Standard ERC777: ulepszona propozycja rozwiązania błędu ERC 20

Ulepszoną propozycją zapobiegania utracie tokenów z powodu błędu ERC 20 jest propozycja ERC 777. Obejmuje następujące elementy:

  1. Nowe funkcje: „wyślij” zamiast „transfer”, „authoriseOperator” zamiast „zatwierdź” i „tokensReceived” zamiast „tokenFallback”.
  2. Tak długo platforma Ethereum miała wadę, ponieważ programiści nie mogli określić, jakie funkcje wdrażają inteligentne kontrakty. ERC 820, czyli inny standard, zaimplementował centralny rejestr umów w sieci, dzięki czemu można teraz poznać funkcje i interfejsy inteligentnej umowy. ERC777 używa go do identyfikacji interfejsów, z których korzysta inteligentny kontrakt. Teraz programiści będą wiedzieć z wyprzedzeniem, czy umowa ma funkcje wymagane do otrzymywania tokenów wysyłanych za pośrednictwem określonych funkcji.
  3. ERC 777 umożliwia „białą listę” operatorów, więc użytkownicy sieci Ethereum będą teraz mogli odrzucać płatności z adresów znajdujących się na czarnej liście. Adres może zostać umieszczony na czarnej liście z wielu powodów, np. próba włamania do sieci, historia nielegalnych działań.

W porównaniu ERC 777 z ERC 20 i ERC 223 można zobaczyć, jak ERC777 zapewnia programistom wiele opcji, aby mogli zapobiec utracie tokenów. Jednak ze standardem ERC777 wiąże się również kilka zagrożeń:

  1. Niektórzy programiści Ethereum uważają, że funkcja „authoriseOperator” jest przestarzała, dlatego programiści nie powinni jej używać. Ta funkcja będzie również wymagać większej ilości „gazu” i dodatkowo obciąży sieć.
  2. Korzystanie z centralnego rejestru inteligentnych umów w celu wyszukania interfejsów, z których korzysta umowa, jest ryzykowne. Rejestr centralny może zawierać błędy, a wszystko, co od niego zależy, będzie miało niekorzystny wpływ.

ERC777 jest nadal wersją roboczą, jednak ORCA token go używa. Przeczytaj propozycję w Repozytorium EIP 777 GitHub.

ERC 777 vs ERC 20 vs ERC 223: Ochrona funduszy jest ważna

Chociaż tylko czas pokaże, który standard ekosystem Ethereum zaakceptuje jako „złoty standard”, jako programista musisz pamiętać, że Twoim obowiązkiem jest ochrona funduszy traderów i inwestorów. Jeśli zajmiesz tak odpowiedzialne stanowisko, zapewne zgodzisz się, że mimo złożoności standard ERC 777 powinien zostać wdrożony i przyjęty.

Uwaga: jeśli chcesz dowiedzieć się więcej o kilku kluczowych standardach ERC, przeczytaj „Ostateczną listę norm ERC, które musisz znać”. 

Mike Owergreen Administrator
Sorry! The Author has not filled his profile.
follow me