Aktualizacja EIP-4337 została zaprezentowana podczas konferencji WalletCon związanej z ETHDenver. Uruchomiono ją w sieci Ethereum w dniu 1 marca. Główną innowacją tego EIP było wdrożenie tzw. abstrakcji kont i pojawienie się nowego standardu portfela, który według twórców podniesie doświadczenie użytkownika i sprawi, iż interakcja z blockchainem będzie wygodniejsza.
W tym artykule przyjrzymy się, czym są te portfele, jak bardzo różnią się od zwykłych portfeli i dlaczego EIP-4337 jest potrzebny.
Uwaga: w tym artykule używamy terminu “inteligentny portfel” jako jednego z najwygodniejszych tłumaczeń koncepcji Contract Account używanego w dokumentacji technicznej EIP-4337.
Czym są inteligentne portfele i czym różnią się od konwencjonalnych?
Aby lepiej zrozumieć, do czego zmierza EIP-4337 i jakie innowacje oferuje, zróbmy krok wstecz. Przed wprowadzeniem aktualizacji, w sieci Ethereum istniały dwa rodzaje portfeli:
- External Owned Accounts (EOA): portfele, które wykorzystują dostawcę infrastruktury do ich stworzenia. Jest to dominujący typ portfela dostarczany przez MetaMask i 99% innych deweloperów.
- Contract Accounts (CA): są to portfele, które są zarządzane przez kod w EVM. Mówiąc prościej: inteligentne kontrakty. Nie wymagają dostawcy infrastruktury do ich uruchomienia i zarządzania.
Dominacja EOA wynika z architektury samej sieci, która wymaga użycia standardu ECDSA do podpisania transakcji. Smart kontrakty nie mają możliwości podpisywania transakcji dzięki ECDSA, więc CA nie mogą zainicjować transakcji we własnym imieniu. Czyli dla przeciętnego użytkownika są bezużyteczne jako portfele.
Z kolei EOA wykorzystują monolityczną logikę przetwarzania transakcji z wykorzystaniem klucza prywatnego i publicznego. Ze względu na monolityczną logikę, nie ma możliwości, aby deweloperzy dostosowali jej komponenty, takie jak wymagania dotyczące tożsamości. Dlatego każda aplikacja blockchain wymaga portfela EOA z kluczem prywatnym i adresem publicznym do komunikacji.
EIP-4337 powinien wyeliminować nadpisywanie EOA i uczynić CA wygodniejszym poprzez dodanie nowego standardu portfela do sieci Ethereum w postaci inteligentnego kontraktu i nowej warstwy, która umożliwi przeprowadzanie i weryfikację transakcji bez użycia klucza prywatnego i publicznego. Aby to zrobić, deweloperzy zaimplementowali coś, co znane jest jako abstrakcja konta.
Co to jest abstrakcja konta?
Pojęcie “abstrakcja konta” nic nie mówi początkującemu użytkownikowi. W informatyce abstrakcja to podział jednego procesu na kilka części, które mogą być wykonywane niezależnie. Mówiąc prościej, proces staje się modułowy i otwiera możliwość konfiguracji każdego modułu. Wizualnie wygląda to tak:
W kontekście portfela Ethereum oznacza to oddzielenie weryfikacji i realizacji transakcji, które w tej chwili występują jako jeden ciągły proces. Odpowiednio, inteligentne portfele pozwalają na elastyczne dostosowanie każdego z tych procesów. To otwiera więcej możliwości optymalizacji doświadczenia użytkownika.
Ponadto, abstrakcja konta odnosi się do oddzielenia konta i jego właściciela. W tej chwili portfel i użytkownik są w zasadzie jednym i tym samym. Tylko właściciel klucza prywatnego może bowiem wysyłać aktywa i tylko właściciel adresu publicznego może otrzymywać aktywa. Abstrakcja pozwoliłaby na uruchomienie smart kontraktu jako portfela, zarządzanego przez kod w EVM, a nie przez wiązkę kluczy publicznych i prywatnych. Rozszerza to obsługiwane metody uwierzytelniania i funkcje bezpieczeństwa portfela.
Jak działają inteligentne portfele EIP-4337?
EIP-4337 nie jest pierwszą próbą wprowadzenia abstrakcji kont i uruchomienia inteligentnych portfeli w sieci Ethereum. Vitalik Buterin po raz pierwszy przedstawił pierwszą wersję abstrakcji konta jeszcze w 2016 roku i od tego czasu zaproponowano 5 różnych EIP (86, 1014, 2938, 3074 i 4337) poświęconych temu zagadnieniu. Jednak to EIP-4337 wprowadził koncepcję, która nie wymagała modyfikacji bazowego protokołu Ethereum, co było kluczowe, ponieważ nie wymagało przyjęcia sieciowego hard forka.
Architektura abstrakcji konta w EIP-4337 składa się z następujących głównych elementów:
UserOperation
Nazywana również pseudotransakcją. Analogiczna do standardowej transakcji portfelowej, ale zawiera więcej danych niż zwykła transakcja:
Bundler
Węzeł, który pobiera UserOperation z mempool, składa je w pakiety i wysyła do EntryPoint w celu walidacji. Oczekuje się, iż funkcja Bundlera będzie wykonywana przez istniejących walidatorów Ethereum. Mogą oni otrzymać za to dodatkowe wynagrodzenie w postaci części opłaty transakcyjnej. Ponieważ EIP-4337 tworzy nową warstwę infrastruktury na szczycie Ethereum blockchain, UserOperations ma własną membranę, różną od głównej membrany sieci. Konwencjonalne walidatory nie mają do niej dostępu.
EntryPoint
Inteligentny kontrakt w sieci Ethereum, który jest odpowiedzialny za walidację transakcji. Jest to najważniejszy element całej infrastruktury EIP-4337, dlatego deweloperzy skupiają się na jego bezpieczeństwie i dokładnym audycie. EntryPoint wykonuje kilka funkcji, które zbiorczo można nazwać “walidacją transakcji”:
Contract Account
Jest to inteligentny portfel należący do użytkownika. Transakcja zweryfikowana za pośrednictwem EntryPoint jest jednocześnie wysyłana do realizacji zarówno do blockchaina, jak i do inteligentnego portfela użytkownika w infrastrukturze EIP-4337.
Opcjonalnie może być również wdrożony
Paymastery
Są to kontrakty sponsorskie, które umożliwiają użytkownikowi uiszczenie opłaty za transakcję zamiast nadawcy lub zapłacenie za gaz w dowolnych tokenach ERC-20. P2E, na przykład, może wdrożyć Paymasters w swojej infrastrukturze, aby gracze nie musieli kupować ETH, aby zapłacić za gaz.
Aggregators
Agregatory podpisów użytkowników. Umożliwiają tzw. transakcje atomic, łączące wiele działań w jedną transakcję. W praktyce umożliwia to interakcję z dApps przy minimalnej liczbie podpisów.
Transakcja na EIP-4337 – jak przebiega?
Cykl życia transakcji z wykorzystaniem inteligentnego portfela EIP-4337 wygląda następująco:
Użytkownik inicjuje UserOperation poprzez aplikację portfela (usługę udostępniającą interfejs), która jest wysyłana do dedykowanego mempoola. jeżeli jest to pierwsza transakcja, a użytkownik nie posiada adresu inteligentnego portfela, EntryPoint wdroży go automatycznie.
Bundler, który jest obsługiwany przez walidator sieci, wybiera transakcje z tego mempool i formuje je w pakiety.
Pakiety UserOperations są wysyłane do inteligentnego kontraktu EntryPoint. Inteligentny kontrakt sprawdza, czy transakcje mogą być wykonane i czy użytkownik lub Paymaster ma wystarczająco dużo ETH, aby zapłacić za gaz.
Jeśli wszystkie warunki są spełnione, transakcja jest wysyłana do konta kontraktu odbiorcy i walidatorów Ethereum w celu włączenia do blockchaina. Wizualnie wygląda to następująco:
Różnice pomiędzy tradycyjnym portfelem a EIP-4337
Poniższy diagram przedstawia najważniejsze różnice pomiędzy cyklem życia transakcji przy użyciu standardowego portfela i inteligentnego portfela EIP-4337:
Jednak projekt inteligentnego portfela, który oferuje EIP-4337, ma również pewne problemy:
- Wyższe koszty gazu: wysyłanie i weryfikacja transakcji za pośrednictwem CA wymaga nieco więcej gazu niż te same działania przy użyciu OEA. Może to być w tej chwili poważny problem dla Ethereum, ponieważ sieć bazowa przez cały czas utrzymuje stosunkowo wysokie opłaty za gaz.
- Możliwości ataków DoS: co prawda inteligentne portfele są chronione przed atakami DoS przez specjalny mechanizm utrzymujący maksymalny koszt gazu do czasu zakończenia transakcji. Jednak według Vitalika modułowa struktura procedury weryfikacji pozostawia pewne pole do przeciążenia infrastruktury.
- Kolejną wadą jest możliwość wysłania tylko jednej transakcji w danym czasie. To ograniczenie jest jednak rekompensowane przez transakcje atomic. Zostały one już opisane powyżej i raczej nie będą stanowić namacalnego problemu na poziomie użytkownika.
Dlaczego jest to potrzebne: korzyści z portfeli EIP-4337
Głównym celem abstrakcji kont w ogóle i aktualizacji EIP-4337 jest zastąpienie portfeli EOA inteligentnymi portfelami (CA). Według Vitalika i innych, da to deweloperom więcej opcji, aby stworzyć wysokiej jakości doświadczenie użytkownika. Konkretnie, inteligentne portfele wspierają:
- Różne opcje uwierzytelniania: abstrakcja logiki walidacji transakcji pozwala na elastyczne opcje uwierzytelniania użytkownika. Można to zrobić na przykład dzięki zaufanej wiadomości e-mail, biometrycznego uwierzytelniacza lub urządzenia z białej listy. Innymi słowy, każdy gadżet można zamienić w rodzaj klucza prywatnego.
- Elastyczne mechanizmy płatności prowizji: umowy sponsorskie Paymaster umożliwiają przeniesienie obowiązku płatności za gaz z nadawcy na stronę trzecią i tworzenie bardziej złożonych modeli płatności za gaz (np. w tokenach ERC-20 lub z rabatem). To znaczy, iż użytkownik nie musi teraz kupować ETH, aby wejść w interakcję z dApp, obniżając próg wejścia dla nowych użytkowników.
- Zaawansowane ustawienia bezpieczeństwa konta: dodatkowe ustawienia bezpieczeństwa mogą obejmować, oprócz metody uwierzytelniania, również multisig, dzienny limit wydatków lub, na przykład, time-lagi dla transakcji. Dzięki temu środki użytkownika będą chronione choćby wtedy, gdy intruz uzyska dostęp do konta.
- Atomowe multitransakcje: za tę funkcję odpowiadają opisane w poprzednim punkcie Agregatory. Dzięki nim można zapomnieć o licznych podpisach, które były potrzebne do dokonania pierwszego swapu na DEX, zakupu NFT na marketplace czy innej interakcji z dApps.
Czasy skomplikowanej obsługi portfela stają się zamierzchłe?
A to oznacza, iż czasy, w których trzeba było stworzyć portfel, kupić ETH, podpisać kilka transakcji i starać się nie dać dostępu do aktywów skąpemu smart kontraktowi, aby wejść do zwykłego P2E, już minęły. Nowy typ portfela będzie bardziej zbliżony funkcjonalnością do kont Google czy Apple ID niż MetaMask i Ledger.
EIP-4337 jest ważnym krokiem na drodze do masowej adopcji, ponieważ nowe konta zapewniają bardziej znane i proste doświadczenie użytkownika. Jest mało prawdopodobne, iż osoby, które zapomniały hasła do Twittera, będą korzystać z technologii, która wymaga od nich zapamiętania 12 słów i zrozumienia, czym jest klucz prywatny i publiczny.
Jak stworzyć inteligentny portfel?
EIP-4337 został niedawno uruchomiony, więc technologia nie otrzymała jeszcze masowej integracji i dobrze zaimplementowanych klientów do tworzenia portfela. Możliwe jest jednak wypróbowanie kilku usług:
- Stackup: zestaw narzędzi dla użytkowników i programistów do wdrażania i elastycznego konfigurowania ich CA.
- ArgentX: popularny portfel z funkcją odzyskiwania społecznościowego, choć nie dla Ethreum, ale dla zkSync. Nie jest to dokładnie EIP-4337, ale może być przydatne.
- Soulwallet: powinien zapewnić przyjazny dla użytkownika interfejs do tworzenia i zarządzania portfelem, ale wciąż jest w fazie rozwoju. Można wpisać się na listę oczekujących.
- Unipass: portfel typu multichain i non-custodial z funkcją odzyskiwania społecznościowego. Najwygodniejsze w tej chwili dostępne rozwiązanie.
Usługi te zapewniają interfejs do tworzenia i konfigurowania inteligentnych portfeli w sieci Ethereum. Same rozwiązania mogą być scentralizowane lub open source, ale zasadniczo są tylko narzędziem upraszczającym interakcję z blockchainem. Dostawcy interfejsów nie mają dostępu do portfela, ponieważ inteligentny portfel jest napędzanym kodem inteligentnym kontraktem i sam ustawiasz dostęp do niego.
Podsumowanie
1 marca sieć Ethereum wdrożyła aktualizację EIP-4337 z koncepcją abstrakcji kont bez zmiany trzonu sieci. Aktualizacja dodała nowy standard portfeli kryptowalutowych w postaci inteligentnych kontraktów. Posiadają one szereg zalet w stosunku do konwencjonalnych portfeli:
- Identyfikacja bez kluczy prywatnych/fraz seed;
- płatność przez osoby trzecie;
- elastyczne ustawienia bezpieczeństwa i dostępu do konta;
- transakcje atomic dla łatwej interakcji z dAppami.
Na rynku pojawiło się już kilka usług, które zapewniają przyjazny dla użytkownika interfejs i zestaw narzędzi do wdrażania i konfiguracji inteligentnych portfeli. Technologia ta jest jedna wciąż na wczesnym etapie rozwoju, więc istnieje ich niewiele. Ponadto, nie wszystkie dApp obsługują nowy standard portfela.
Wniosek jest taki, iż EIP-4337 może być jedną z kluczowych aktualizacji dla masowej adopcji blockchaina i kryptowalut w życiu codziennym. Pozwoli on na tworzenie i zarządzanie portfelami kryptowalut tak łatwo, jak w przypadku konta Google lub aplikacji bankowości internetowej. Wygląda na to, iż era 12-słownych fraz seed w notatniku i kluczy publicznych/prywatnych w arkuszach kalkulacyjnych Exel dobiega końca.
BeInCrypto Polska - EIP-4337: wszystko o nowym standardzie portfela Ethereum