Przejdź do głównej zawartości

Strona ostatnio zaktualizowana: 29 marca 2024

Abstrakcja konta

Użytkownicy wchodzą w interakcję z Ethereum przy użyciu . Jest to jedyny sposób na rozpoczęcie transakcji lub zawarcie inteligentnego kontraktu. Ogranicza to sposób, w jaki użytkownicy mogą wejść w interakcję z Ethereum. Na przykład utrudnia to wysyłanie zestawów transakcji i wymaga od użytkowników posiadania przez cały czas salda ETH do pokrycia kosztów gazu.

Abstrakcja kont jest sposobem rozwiązania tych problemów poprzez pozwalanie użytkownikom na elastyczne zaprogramowanie większego bezpieczeństwa i lepszych doświadczeń użytkownika na ich kontach. Można to osiągnąć dzięki ulepszeniu kont EOA(opens in a new tab) tak, aby mogły być kontrolowane przez inteligentne kontrakty, lub poprzez ulepszenie inteligentnych kontraktów(opens in a new tab) tak, aby mogły inicjować transakcje. Obydwie te opcje wymagają zmian w protokole Ethereum. Istnieje również trzecia możliwość polegająca na dodaniu drugiego, oddzielnego systemu transakcyjnego(opens in a new tab), który będzie działał równolegle do istniejącego protokołu. Niezależnie od wybranej drogi skutkiem jest dostęp do Ethereum za pomocą portfeli inteligentnych kontraktów, które są natywnie obsługiwane jako część istniejącego protokołu albo za pośrednictwem sieci transakcyjnej dodatków.

Portfele inteligentnych kontraktów odblokowują wiele korzyści dla użytkownika, w tym:

  • definiowanie własnych elastycznych zasad bezpieczeństwa
  • odzyskanie konta w przypadku utraty kluczy
  • udostępnianie zabezpieczeń konta zaufanym urządzeniom lub osobom
  • płacenie za cudzy gaz lub na odwrót
  • łączenie transakcji w grupy (np. zatwierdzanie i wykonywanie wymiany za jednym razem)
  • więcej możliwości dla twórców zdecentralizowanych aplikacji i portfeli w zakresie innowacji doświadczeń użytkownika

Korzyści te nie są obecnie natywnie obsługiwane, ponieważ tylko konta zewnętrzne () mogą rozpoczynać transakcje. EOA to po prostu pary kluczy publiczno-prywatnych. Działają w następujący sposób:

  • jeśli masz klucz prywatny, możesz zrobić wszystko w ramach regulaminu Maszyny Wirtualnej Ethereum (EVM)
  • jeśli nie masz klucza prywatnego, nie możesz zrobić nic.

Jeśli stracisz swoje klucze, nie będzie można ich odzyskać, a skradzione klucze dają złodziejowi natychmiastowy dostęp do wszystkich środków na Twoim koncie.

Portfele inteligentnych kontraktów są rozwiązaniem tych problemów, ale obecnie trudno je zaprogramować, ponieważ ostatecznie każdą wdrażaną przez nie logikę należy przetłumaczyć na zestaw transakcji EOA, zanim będzie mogła ona zostać przetworzona przez Ethereum. Abstrakcja kont umożliwia inteligentnym kontraktom na samodzielne inicjowanie transakcji, dzięki czemu każda logika, którą użytkownik chce zaimplementować, może zostać zaprogramowana w samym portfelu inteligentnego kontraktu i wykonana na Ethereum.

W ostatecznym rozrachunku abstrakcja kont poprawia wsparcie dla portfeli inteligentnych kontraktów, dzięki czemu będą one łatwiejsze w tworzeniu i bezpieczniejsze w użyciu. Podsumowując, dzięki abstrakcji kont użytkownicy mogą cieszyć się wszystkimi korzyściami Ethereum nie znając podstawowej technologii ani nie przejmując się nią.

Poza frazami seed

Dzisiejsze konta są zabezpieczone kluczami prywatnymi, które są obliczane z fraz seed. Każda osoba, która ma dostęp do frazy ziarna może z łatwością poznać klucz prywatny ochraniający konto i zdobyć dostęp do wszystkich aktywów. Jeśli klucz prywatny i fraza seed zostaną zgubione, już nigdy nie będzie można ich odzyskać, a aktywa, które były pod ich kontrolą, zostaną zamrożone na zawsze. Ochrona tych fraz seed jest kłopotliwa nawet dla doświadczonych użytkowników, a wyłudzanie fraz seed jest jednym z najczęstszych sposobów oszukiwania użytkowników.

Abstrakcja kont rozwiązuje ten problem, używając inteligentnych kontraktów do przechowywania aktywów i autoryzowania transakcji. Te inteligentne kontrakty można następnie wzbogacić o niestandardową logikę, aby uczynić je tak bezpiecznymi i dostosowanymi do użytkownika, jak to tylko możliwe. Ostatecznie nadal używasz kluczy prywatnych do kontrolowania dostępu do swojego konta, ale z zabezpieczeniami, dzięki którym zarządzanie nimi jest łatwiejsze i bezpieczniejsze.

Na przykład, do portfela można dodać klucze zapasowe, dzięki czemu w przypadku utraty lub przypadkowego ujawnienia klucza głównego można go zastąpić nowym, bezpiecznym kluczem za zgodą kluczy zapasowych. Możesz zabezpieczyć każdy z tych kluczy w inny sposób lub podzielić je pomiędzy zaufanych strażników. To znacznie utrudnia złodziejowi uzyskanie pełnej kontroli nad Twoimi środkami. Podobnie możesz dodać reguły do portfela, aby zmniejszyć wpływ, jeśli klucz główny zostanie naruszony, na przykład możesz zezwolić na weryfikację transakcji o niskiej wartości za pomocą pojedynczego podpisu, podczas gdy transakcje o wyższej wartości będą wymagać zatwierdzenia przez wielu uwierzytelnionych podpisujących. Istnieją również inne sposoby, w jakie portfele inteligentnych kontraktów mogą pomóc w powstrzymaniu złodziei, na przykład lista zezwoleń może być używana do blokowania każdej transakcji, chyba że jest ona dokonywana na zaufany adres lub zweryfikowana przez kilka wstępnie zatwierdzonych kluczy.

Przykłady logiki zabezpieczającej, które można wbudować w portfel inteligentnego kontraktu:

  • Autoryzacja wielopodpisowa: możesz udostępniać dane autoryzujące wielu zaufanym osobom lub urządzeniom. Następnie kontrakt można skonfigurować tak, aby transakcje przekraczające pewną ustaloną wartość wymagały autoryzacji od określonej części (np. 3/5) zaufanych stron. Na przykład transakcje o wysokiej wartości mogą wymagać zatwierdzenia zarówno od urządzenia mobilnego, jak i portfela sprzętowego, lub podpisów z kont rozproszonych wśród zaufanych członków rodziny.
  • Zamrażanie konta: jeśli urządzenie zostanie zgubione lub naruszone, konto może zostać zablokowane z innego autoryzowanego urządzenia, chroniąc aktywa użytkownika.
  • Odzyskiwanie konta: zgubione urządzenie lub zapomniane hasło? W obecnym systemie oznacza to, że Twoje aktywa mogą zostać zamrożone na zawsze. Dzięki portfelowi inteligentnego kontraktu możesz ustawić listę dozwolonych kont, które mogą autoryzować nowe urządzenia i resetować dostęp.
  • Ustawianie limitu transakcji: określ dzienne limity tego ile wartości można przesłać z konta w ciągu dnia/tygodnia/miesiąca. Oznacza to, że jeśli atakujący uzyska dostęp do twojego konta, nie będzie mógł zabrać wszystkiego na raz, a Ty masz możliwość zamrożenia i zresetowania dostępu.
  • Tworzenie list zezwoleń: zezwalaj na transakcje tylko do określonych adresów, o których wiesz, że są bezpieczne. Oznacza to, że nawet jeśli Twój klucz prywatny zostanie skradziony, atakujący będzie mógł tylko wysłać fundusze na docelowe konta znajdujące się na Twojej liście. Te listy zezwoleń wymagałyby wielu podpisów, aby je zmienić, więc atakujący nie mógłby być w stanie dodać własnego adresu do listy, chyba że miałby dostęp do kilku kluczy zapasowych.

Lepsze doświadczenia użytkownika

Abstrakcja kont pozwala na lepsze ogólne wrażenia użytkownika, a także większe bezpieczeństwo, ponieważ dodaje obsługę portfeli inteligentnych kontraktów na poziomie protokołu. Przede wszystkim zapewni to twórcom inteligentnych kontraktów, portfeli i aplikacji znacznie większą swobodę wprowadzania innowacji w zakresie doświadczeń użytkownika w sposób, którego możemy jeszcze nie być w stanie przewidzieć. Niektóre oczywiste ulepszenia, które pojawią się wraz z abstrakcją kont, obejmują łączenie transakcji w grupy w celu zwiększenia szybkości i wydajności. Na przykład prosta wymiana powinna być operacją wykonywaną jednym kliknięciem, ale obecnie wymaga ona podpisania wielu transakcji w celu zatwierdzenia wydania poszczególnych tokenów przed dokonaniem wymiany. Abstrakcja kont usuwa to utrudnienie, poprzez umożliwienie łączenia transakcji. Co więcej, łączona transakcja mogłaby zatwierdzić dokładnie odpowiednią wartość tokenów wymaganą dla każdej transakcji, a następnie cofnąć pozwolenia po zakończeniu transakcji, zapewniając dodatkowe bezpieczeństwo.

Zarządzanie gazem jest również znacznie ulepszone dzięki abstrakcji kont. Aplikacje mogą nie tylko oferować pokrycie opłat za gaz swoich użytkowników – opłaty za gaz mogą być także uiszczane w tokenach innych niż ETH, uwalniając użytkowników od konieczności posiadania salda ETH w celu finansowania transakcji. Miałoby to odbywać się poprzez zamianę tokenów użytkownika na ETH w ramach kontraktu, a następnie wykorzystanie ETH do zapłaty za gaz.

Zaufane sesje mogą również ewentualnie zmienić doświadczenia użytkowników, zwłaszcza w aplikacjach typu gry, w których duża liczba małych transakcji może wymagać zatwierdzenia w krótkim czasie. Indywidualne zatwierdzanie każdej transakcji pogorszyłoby wrażenia graczy, ale stałe zatwierdzanie jest niebezpieczne. Portfele inteligentnych kontraktów mogą zatwierdzać określone transakcje przez określony czas do określonej wartości lub tylko dla określonych adresów.

Warto też zastanowić się, jak zakupy mogą ulec zmianie wraz z abstrakcją kont. Obecnie każda transakcja musi zostać zatwierdzona i wykonana z portfela zasilonego wystarczającą ilością odpowiedniego tokena. Dzięki abstrakcji kont to doświadczenie mogłoby bardziej przypominać znane zakupy internetowe, w których użytkownik mógłby wypełnić „koszyk” przedmiotów i kliknąć raz, aby kupić wszystkie jednocześnie, przy czym cała wymagana logika byłaby obsługiwana przez kontrakt, a nie użytkownika.

To tylko kilka przykładów, jak doświadczenia użytkowników mogłyby ulec poprawie dzięki abstrakcji kont, ale będzie jeszcze dużo takich, których sobie na razie nie wyobrażamy. Abstrakcja kont uwalnia programistów od ograniczeń aktualnych kont EOA, pozwala im przenieść zalety web2 do web3 bez poświęcania pełnej kontroli użytkownika oraz kreatywnie tworzyć nowe doświadczenia użytkowników.

W jaki sposób wdrożona zostanie abstrakcja kont?

Obecnie istnieją portfele inteligentnych kontraktów, ale ich wdrożenie jest trudne, ponieważ EVM ich nie obsługuje. Polegają one raczej na zawijaniu stosunkowo złożonego kodu wokół standardowych transakcji Ethereum. Ethereum może to zmienić, umożliwiając inteligentnym kontraktom inicjowanie transakcji i obsługując niezbędną logikę w inteligentnych kontraktach na Ethereum, a nie poza łańcuchem. Umieszczenie logiki w inteligentnych kontraktach zwiększa również decentralizację Ethereum, ponieważ eliminuje potrzebę „przekaźników” uruchamianych przez twórców portfeli w celu przełożenia wiadomości podpisanych przez użytkownika na zwykłe transakcje Ethereum.

Aktualny postęp

Portfele inteligentnych kontraktów są już dostępne, ale wymaganych jest więcej aktualizacji, aby stały się one w jak największym stopniu zdecentralizowane i pozbawione uprawnień. EIP-4337 to dopracowana propozycja, która nie wymaga żadnych zmian w protokole Ethereum, więc możliwe jest jej szybkie wdrożenie. Jednak uaktualnienia zmieniające protokół Ethereum nie są obecnie aktywnie rozwijane, więc ich wprowadzenie może potrwać znacznie dłużej. Możliwe jest również, że abstrakcja kont zostanie uzyskana przez EIP-4337 w takim stopniu, że żadne zmiany protokołu nigdy nie będą wymagane.

Dalsza lektura

Czy ten artykuł był pomocny?