Account Abstraction to koncepcja, mająca dać portfelom krypto funkcjonalność opartą o smartkontrakty. Takie podejście mocno obniża bariery wejścia i może przyspieszyć szeroką adopcję blockchain. Niestety, obok licznych zalet ma również swoje wady.
O co chodzi z Account Abstraction
Blockchain i krypto mają potencjał, by zmienić świat. Są użyteczne, zdecentralizowane i rozwiązują sporo problemów. Niestety, obecnie jest to zabawa dla dużych chłopców. Klucze prywatne, podpisywanie transakcji, smartkontrakty, frazy seed…
Nie można liczyć na masową adopcję, dopóki nie uprościmy wszystkiego tak, aby z blockchain mógł korzystać przeciętny użytkownik o znikomej wiedzy. Dobrym przykładem jest smartfon – zaawansowane urządzenie, które obsłuży prawie każdy.
Account Abstraction (przez niektórych tłumaczona jako Abstrakcja Konta) to nowa idea, która ma pozwolić na uczynienie technologii blockchain łatwej i zrozumiałej. Sposób, który pozwoli na używanie aplikacji Web3 tak samo łatwo jak maila czy Twittera. Ukrycie skomplikowanych procesów technicznych pod łatwym do zrozumienia interfejsem, połączone z dodaniem wielu nowych funkcji, poprawiających komfort jego używania.
Możliwości są ekscytujące, gdyż użycie smartkontraktów pozwala na łatwiejsze zarządzania naszymi środkami. Przykładowo, dotychczas konieczne zatwierdzenie każdej transakcji kluczem prywatnym możemy zastąpić dowolnym warunkiem, na przykład: automatycznie akceptuj jednorazowy wydatek o wartości poniżej 0,0001 ETH.
Account Abstraction (AA) pozwala na przekształcenie dotychczasowych kont w programowalne, oparte na wbudowanej w nie logice. Umożliwi to znaczne poszerzenie ich funkcjonalności.
Jak to wygląda dzisiaj?
Obecnie Ethereum obsługuje dwa typy kont:
- Konta kontrolowane przez użytkownika, z punktu widzenia systemu będące własnością zewnętrzną (EOA). Zarządzane dzięki parze kluczy: publicznego i prywatnego. Pomagają one udowodnić, że transakcja została podpisana przez nadawcę i zapobiegają fałszerstwom. Obsługiwane przez aplikacje w rodzaju Metamask czy TrustWallet.
- Konta oparte na smartkontraktach. Kontrolowane przez kod wykonywany przez maszynę wirtualną Ethereum. Przechowują swój własny kod oraz potrzebne dane, jednak nie klucze prywatne. Same decydują o swoim działaniu, zgodnie z regułami zawartymi w smartkontrakcie.
Takie konta, oparte o własny kod, mają o wiele większe możliwości niż konta zewnętrzne (EOA). Ideą Account Abstraction (AA) jest transformacja dotychczasowych EOA w konta kontraktowe. Istnieje kilka pomysłów jak to osiągnąć, z których najbardziej popularnym jest standard ERC-4337.
Account Abstraction to nie to samo co ERC-4337! AA to ogólna idea, zaś ERC-4337 to jeden z wielu możliwych sposobów jej implementacji.
Standard ERC-4337 zyskuje popularność, ponieważ w przeciwieństwie do innych, pod pewnymi względami lepszych propozycji, nie wymaga przeprowadzenia hardforka Ethereum.
Problemy z kontami użytkownika (EOA)
Choć EOA są standardem od początku istnienia Ethereum, mają one obok niewątpliwych zalet także wady.
- utrata klucza prywatnego oznacza utratę dostępu do naszego konta
- przekazanie tego klucza komuś innemu oddaje mu dostęp do naszych środków
- obsługa kluczy i transakcji jest trudna dla mniej zaawansowanych użytkowników
- istnieje niebezpieczeństwo straty środków, jeśli omyłkowo zatwierdzimy „złośliwy” smartkontrakt
- brak jest możliwości jednoczesnego zatwierdzenia wielu transakcji, co generuje koszty i pochłania czas
Taki jest stan na dziś, zobaczmy co zamierza zmienić nowy standard konta.
Najważniejsze elementy ERC-4337
Zanim naszkicujemy jak wygląda transakcja, poznajmy nowe pojęcia pojawiające się wraz z wprowadzeniem AA:
- UserOperations – szablon transakcji, która reprezentuje intencje użytkowników
- Bundler – podmiot odpowiedzialny za pobieranie, łączenie i przesyłanie UserOperations do łańcucha bloków
- EntryPoint – smartkontrakt, który przetwarza operacje przesyłane przez Bundlerów
- Account Contract – nowy typ portfela oparty na smartkontraktach, zastępujący EOA
- Factory Contract – smartkontrakt przeznaczony do wdrażania innych smartkontraktów w oparciu o gotowe szablony
- Paymaster – opcjonalny smartkontrakt lub podmiot, który pokrywa opłaty transakcyjne w imieniu użytkowników
- Aggregator – opcjonalny smartkontrakt, zbierający i sprawdzający podpisy wielu użytkowników (np. przy multisig)
Uproszczony przebieg transakcji zgodnej z ERC-4337
Jak działa Account Abstraction w praktyce, najłatwiej zobaczyć na przykładzie pojedynczej transakcji:
- Użytkownik tworzy UserOperation, określającą adres nadawcy, odbiorcy, akcję do wykonania, podpis itd.
- Transakcja jest wysyłana do mempool, innej niż ta dla klasycznych transakcji Ethereum.
- Bundler zbiera operacje użytkowników, sprawdza je, łączy w partie i przesyła do EntryPoint
- Smartkontrakty EntryPoint przetwarzają transakcję.
- Opcjonalnie: Agregator weryfikuje podpisy, Paymaster finansuje operację użytkownika
- EntryPoint finalizuje operację zleconą przez użytkownika, a jej wyniki zapisywane są on-chain.
Zastosowanie Account Abstraction
Zmiana logiki działania portfeli na tę proponowaną przez AA niesie za sobą cały szereg korzyści:
- Możliwość programowania portfela, np. automatyczne wykonanie transakcji, gdy zajdą określone warunki.
- Łatwe tworzenie portfeli multisig, wymagających kilku podpisów np. dla transakcji powyżej 1000 $.
- Zbędne stają się frazy seed, można odzyskać portfel z pomocą wcześniej zdefiniowanych adresów
- Pozwala na zabezpieczenie konta poprzez zmianę dotychczasowego klucza
- Umożliwia automatyczne regulowanie płatności (jak konto bankowe)
- Pozwala na wykonywanie transakcji bez kosztów gazu, jeśli zgodzi się na to Paymaster
- Pozwala na grupowanie transakcji i ich jednorazowe zatwierdzanie
- Daje nowe możliwości weryfikacji podpisu, w tym algorytmy quantum-resistant
Powyższe cechy znacząco ułatwiają interakcję z blockchain i czynią je prawie tak łatwą, jak obsługę przeglądarki internetowej.
Wady rozwiązania ERC-4337
Podkreślmy jeszcze raz – wprowadzony w 2023 r. standard ERC-4337 to tylko jeden z możliwych wariantów uruchomienia Account Abstraction. Ma on wiele zalet, jednak niektórzy programiści wskazują także na poważne wady całej koncepcji:
- AA wymaga pewnej dozy zaufania do dostawcy usług. Może on zostać zhakowany, a teoretycznie nawet przejąć nasze środki
- korzystanie z AA jest drogie. Wdrożenie umowy konta może z kosztować 100 $ i więcej, gdyż wykonanie kontraktu znacząco podwyższa opłaty transakcyjne
- w przeciwieństwie do konta EOA, nowy kontrakt AA musi zostać wdrożony oddzielnie w każdym łańcuchu lub warstwie 2.
- AA wymaga powierzenia części klucza odzyskiwania zaufanym opiekunom, co nie jest do końca bezpieczne
- brak jest sprawdzonych i przetestowanych rozwiązań AA, takich jak Metamask dla EOA
- EIP-4337 nie jest natywną częścią protokołu Ethereum, raczej rodzajem patcha, dającego nową funkcjonalność bez zmiany fundamentów
Podsumowując – jeśli chcesz używać AA w sposób zdecentralizowany i pozbawiony zaufania, musisz samodzielnie zbudować platformę AA. Dla 99% użytkowników krypto jest to rozwiązanie teoretyczne, więc o ile AA jest rozwiązaniem bezpieczniejszym niż usługi CeFi, nadal wymaga pewnej dozy zaufania.
In summary, while account abstraction with ERC4337 does require some trust in the wallet provider, it still provides more control and flexibility compared to traditional custodial wallets.
Przyszłość Account Abstraction i ERC-4337
Choć nowa funkcjonalność, zainspirowana przez EIP-4337, została wdrożona w sieci Ethereum, jak dotąd nie zaowocowała szeroką falą adopcji. Wynika to jednak nie tyle z braku zainteresowania, ale raczej ze względu konsekwencje i wysokie koszty integracji.
Rachunki EOA, które w obecnej formie miały by zniknąć, od zawsze są integralną częścią protokołu Ethereum. Przyzwyczajenie jest drugą naturą człowieka, tym bardziej, że ich zmiana na konta AA niosłaby także pewne negatywne konsekwencje (kwestia zaufania, koszty). Również wydajność głównego łańcucha nie wydaje się wystarczająca, aby mógł on obsłużyć dużą liczbę wymagających obliczeniowo transakcji AA.
Z drugiej strony, perspektywy są ciekawe. Coraz więcej jest projektów GameFi, w działających pełni on-chain. W tym wypadku używanie portfela EOA jest problematyczne, gdyż konieczność potwierdzania każdej transakcji zaburza tok gry. Nastąpiła już implementacja rozwiązania Arcade Accounts, będącego rodzajem AA, pierwszy krok został więc już wykonany. Podobny krok czeka zapewne SocialFi.
Mimo to społeczność Ethereum jako całość nie wydaje się jeszcze gotowa na szerokie przyjęcie Account Abstraction. Prawdopodobnie rozwiązanie to zostanie zaimplementowane wcześniej w protokołach warstwy 2 oraz innych sieciach Layer 1. Istotnie, już tak się dzieje, czego przykładem są odpowiednio Loopring i Starknet oraz Aptos i Sui. Na powszechną adopcję AA w Ethereum przyjdzie nam chyba jeszcze trochę poczekać.
O ile szeroko podkreślane są zalety ERC-4337, zdecydowanie mniej wspomina się o problematycznych stronach tego rozwiązania. Zapewne wynika to z ogromnej złożoności tematu, ale częściowo również z entuzjazmu i chęci jak najszybszego unowocześnienia Ethereum. Account Abstraction to ciekawe rozwiązanie, wydaje się jednak, że wymaga jeszcze dopracowania.
Najczęściej zadawane pytania (FAQ)
Czym jest Account Abstraction?
Account Abstraction to koncepcja, która ma na celu uproszczenie interakcji z łańcuchem bloków. Pozwala ona na oddzielenie logiki zarządzania kontem użytkownika od jego kluczy i adresu portfela oraz na ułatwienie całego procesu.
Co to jest ERC-4337?
ERC-4337 to standard Ethereum, który implementuje AA. Wprowadza on nowy typ konta, które może choćby automatycznie inicjować transakcje po spełnieniu wcześniej zapisanych warunków.
Czy są jakieś inne standardy AA oprócz ERC-4337?
Tak, istnieje kilka innych propozycji AA, które są opracowywane, jak EIP-3074 czy EIP-5806. Większość z nich wymaga jednak wykonanie forka Ethereum, co utrudnia ich wdrożenie.
Inwestowanie jest ryzykowne. Inwestuj odpowiedzialnie.