Ethereum korzysta z modelu kont, które dzielą się na dwie kategorie - te kontrolowane przez użytkowników oraz te będące kontraktami.
Pierwsze z nich, czyli te, które zapewne posiadasz, są nazywane Kontami Zewnętrznymi (Externally-owned account). Mają one kilka właściwości i są posiadane przez użytkowników, którzy są właścicielami specjalnych kluczy kryptograficznych wymaganych do podpisania transakcji, czy uzyskania adresu, na który możemy otrzymać płatności. Co istotne, tylko te konta mogą inicjować transakcje.
Drugi rodzaj kont Ethereum to Konta Kontraktowe (Contract Accounts). Nie mają one klucza prywatnego, a są kontrolowane przez logikę danego kodu. Są to popularne smart kontrakty, których możesz używać np. w DeFi.
Problem w tym, że konta zewnętrzne, czyli te, których używają wszyscy użytkownicy, mają bardzo ograniczone możliwości ustalone z góry w protokole takie jak np. pokrywanie opłat tylko w ETH i nie są najlepsze w tworzeniu przyjaznych użytkownikom aplikacji. Niektórzy twierdzą wręcz, że są największą przeszkodą w drodze do prawdziwej masowej adopcji.
Nie tylko są proste i nie pozwalają na nic “ciekawego”, ale też całe bezpieczeństwo środków użytkowników opiera się o frazę seed. Jeden ciąg słów, który musisz utrzymywać w sekrecie, bo w innym wypadku stracisz wszystko.
Bezpieczeństwo naszych tokenów jest wystawione nie tylko na wyciek frazy seed, co kończy się wyścigiem “kto pierwszy ten... zyska wszystkie tokeny danego konta”, ale też ryzykiem zgubienia lub zapomnienia frazy.
Innymi słowy, użytkownicy nie mogą popełnić błędu, a przecież wszyscy je popełniamy... I to dość często.
Masowa adopcja! https://t.co/j6k41sDrhD
— RektCrypto (@rav_crypto) December 20, 2022
Poza tym same doświadczenia użytkowników jeśli chodzi o korzystanie z aplikacji w tym modelu nie są najlepsze, co widać na każdym kroku, np. przy wymianie na DEX, która wymaga podpisania i pokrycia opłaty dla kilku transakcji podczas jednej operacji. Przy rozwoju innych rozwiązań, chociażby gier, będzie tylko gorzej…
Wszystkie te wady i ograniczenia mają zostać rozwiązane poprzez abstrakcję konta.
Abstrakcja Konta
W całym tym pomyśle chodzi o to, aby oddzielić konto użytkownika od podpisów i aby każde konto działało jak smart kontrakt, który definiuje, jakie transakcje są poprawne i może je inicjować.
Ma to na celu zwiększenie łatwości oraz bezpieczeństwa korzystania ze zdecentralizowanych aplikacji dla nowych i starych użytkowników, a także znaczne poprawienie ogólnego UX (User Experience).
Oznacza to, że po wprowadzeniu tych możliwości każde nowe konto Ethereum będzie smart kontraktem, który może definiować własne mechaniki działania i możliwości. Co to może być?
Social recovery
Koncept, którego wielkim fanem jest Vitalik Buterin i który szczegółowo opisał tutaj.
Abstrakcja pozwala na tworzenie kont, które mogą zmieniać właścicieli. Oznacza to, że w razie zgubienia lub kradzieży portfela można zwrócić się do wcześniej ustalonych “strażników”, którzy poprzez specjalną transakcję mogą zmienić klucz i pozwolić odzyskać konto.
Strażnikami możemy być my sami, np. posiadając inne portfele takie jak Ledger. Mogą to być osoby którym ufamy lub firmy, które po potwierdzeniu tożsamości pomagałyby odzyskać konto. Albo wszystkie te opcje naraz.
Oczywiście klucze nadal będą stanowić główny element każdej sieci, ale zarządzanie kontami stanie się znacznie łatwiejsze, a ich odzyskiwanie możliwe bez frazy lub nawet po jej wycieku.
Dodatkowe zabezpieczenia
Abstrakcja oprócz możliwości odzyskania konta bez frazy seed, daje też możliwość ustawienia wielu dodatkowych zabezpieczeń. Takimi zabezpieczeniami mogą być limity na transakcje, opóźnianie większych transakcji np. o 24h, zewnętrzne serwisy weryfikujące poprawność adresów tokenów, czy ustawienie weryfikacji dwuetapowej.
W wypadku "2FA" jednym z kluczy wymaganych do podpisania transakcji mógłby zarządzać zewnętrzny dostawca, który “puści”, czyli podpisze naszą transakcje, o ile wpiszemy odpowiedni kod otrzymany SMS-em lub e-mail.
Multicall i Session Keys
Dzięki tej funkcji możemy uniknąć podpisywania każdej transakcji osobno. Jeśli korzystasz z np. z giełd DEX wiesz, że czasem trzeba podpisać kilka transakcji, które tak naprawdę wykonują jedną operację.
Dzięki multicall możemy wykonać kilka transakcji w jednej operacji co znacznie przyspiesza i ułatwia cały proces.
Session Keys to z kolei rewolucja głównie, ale nie tylko, dla gier bazujących na blockchainie. Zamiast podpisywać setki transakcji o każdym naszym ruchu, możemy z wyprzedzeniem po prostu udzielić konkretnego pozwolenia danej grze na konkretne akcje w danym czasie.
Pozwala to nie tylko na znacznie lepsze działanie gier, ale także DeFi, czy innych wykorzystań, które mogą wymagać wielu akcji w krótkim czasie.
Multisig
Tego typu rozwiązania istnieją już dziś, natomiast staną się znacznie łatwiejsze w przyszłości. Multisig to konto, które do wysłania transakcji wymaga więcej niż jednego podpisu.
Znacznie zwiększa to bezpieczeństwo, ponieważ nie musimy polegać już na jednym kluczu, a np. na dwóch lub 3 z 5, 6 z 9, itp.
Co więcej, dzięki wprowadzeniu abstrakcji i działania kont jak smart kontraktów, które można dowolnie zaprogramować, nie musimy polegać już tylko na algorytmie podpisów stosowanych przez Ethereum, czyli ECDSA, a np. zastosować takie odporne na komputery kwantowe.
Alternatywne opłaty gas
Pokrywanie opłat w ETH poprzez bezpośrednie posiadanie tej kryptowaluty na portfelu wcale nie jest tak oczywiste. Osoby spoza kryptowalut moga nie spodziewać się, że nie wykonując transakcji w ETH i tak musi je posiadać, aby pokryć opłaty.
Dzięki wprowadzeniu abstrakcji kont będzie można pokryć opłaty w dowolnych tokenach, co więcej w ogóle może nie być potrzeby pokrywania opłat w pewnych przypadkach, ponieważ dla projektów pojawi się możliwość pokrywania opłat za użytkowników.
Wen AA?
Mimo iż pierwsze dyskusje na temat abstrakcji kont (Account Abstraction - AA) pojawiły się już w 2016 roku, nadal nie zostało to wprowadzone do sieci głównej, ponieważ wymaga to zmian w działaniu całego protokołu. Co prawda portfele będące smart kontraktami działają już od pewnego czasu i wprowadzają te funkcje, ale jest to utrudnione i nieco kosztowne przez to jak działa Ethereum.
Rozwiązaniem może być propozycja EIP-4337, która unika zmian na poziomie konsensusu, a dodaje alternatywny mempool.
Jednak największe praktyczne rewolucje dotyczące AA dzieją się na rozwiązaniach warstwy drugiej Ethereum takich jak StarkNet, czy zkSync, które natywnie implementują te rozwiązania bazując na wyżej wspomnianej propozycji, nieco ją modyfikując pod własne potrzeby.
Podsumowanie
Abstrakcja kont jest jedną z najbardziej oczekiwanych zmian w Ethereum, ponieważ znacznie poprawi UX dla najważniejszej grupy docelowej - "zwykłego Kowalskiego" - i pozwoli na zyskanie większej adopcji oraz tworzenie potężnych, dostosowywanych do potrzeb użytkowników portfeli i możliwości. Rozwiązania takie jak portfel Argent, czy Gnosis Safe pozwalają już dziś poczuć możliwości tej technologii, a wiele rozwiązań L2 opracowuje abstrakcję jako jedną z naturalnych części swojego działania.