Technologia

Smart Signature Accounts: jak xChain Accounts łączą portfele EVM z Algorandem


Algorand ma ciekawą cechę, która dobrze pokazuje, że konto na blockchainie nie musi być tylko parą kluczy: kluczem prywatnym do podpisywania i adresem publicznym do odbierania środków. Może być też programem.

Właśnie na tym opiera się pomysł Smart Signature Accounts, znanych też jako LogicSig. To mały program, który decyduje, czy dana transakcja może zostać wykonana z konkretnego konta. Jeśli warunki są spełnione, transakcja przechodzi. Jeśli nie, sieć ją odrzuca.

Brzmi technicznie, ale sens jest prosty: zamiast pytać “czy ten klucz prywatny podpisał transakcję?”, konto może pytać “czy ta transakcja spełnia zasady zapisane w programie?”.

Dlaczego to ważne?

W większości blockchainów konto jest mocno związane z kluczem. Masz klucz prywatny, z niego wynika klucz publiczny, a z niego adres. To działa dobrze, ale ogranicza sposób, w jaki można projektować doświadczenie użytkownika.

Smart Signature Account działa inaczej. Jego adres powstaje z programu, a nie z tradycyjnego klucza. Program jest kompilowany, a z jego bajtów wyliczany jest adres konta. Jeśli zmienisz program, zmieni się też adres.

To oznacza, że samo konto ma wbudowaną logikę autoryzacji. Nie trzeba zarządzać osobnym prywatnym kluczem Algoranda dla tego konta. Zasady dostępu są zapisane w programie.

Można to porównać do sejfu, który nie otwiera się jednym konkretnym kluczem, tylko sprawdza zestaw warunków. Na przykład: “otwórz, jeśli podpis pochodzi od właściwego portfela i dotyczy dokładnie tej transakcji”.

Jak xChain Accounts wykorzystują ten mechanizm?

xChain Accounts pokazują praktyczne zastosowanie Smart Signature Accounts. Ich cel jest bardzo użytkowy: osoba posiadająca portfel EVM, na przykład MetaMask, Rabby albo Coinbase Wallet, może wykonać transakcję na Algorandzie bez zakładania osobnego portfela Algorand.

Dla użytkownika wygląda to znajomo: podłącza swój portfel EVM do aplikacji i podpisuje komunikat. Pod spodem dzieje się jednak kilka ciekawych rzeczy.

Aplikacja bierze adres EVM użytkownika i umieszcza go w programie LogicSig jako stałą wartość właściciela. Po skompilowaniu programu powstaje deterministyczny adres Algorand. Ten adres staje się kontem użytkownika po stronie Algoranda.

“Deterministyczny” znaczy tutaj: ten sam adres EVM i ten sam program zawsze dadzą ten sam adres Algorand. Nie ma losowania, nie ma dodatkowej konfiguracji, nie ma nowego seed phrase.

Jak wygląda autoryzacja?

Użytkownik w portfelu EVM podpisuje wiadomość w standardzie EIP-712. To ważne, bo EIP-712 pozwala portfelowi pokazać człowiekowi, co właściwie podpisuje. Nie jest to przypadkowy ciąg znaków, tylko opisany komunikat, na przykład dotyczący konkretnej transakcji Algorand albo grupy transakcji.

Następnie podpis trafia razem z transakcją do Algoranda. Program LogicSig uruchamia się i sprawdza, czy wszystko się zgadza.

W uproszczeniu sprawdzane są cztery rzeczy:

  1. Czy podpis dotyczy dokładnie tej transakcji Algorand albo tej konkretnej grupy transakcji.
  2. Czy z podpisu da się odzyskać właściwy klucz publiczny EVM.
  3. Czy z tego klucza publicznego wynika właściwy adres EVM.
  4. Czy ten adres EVM jest tym samym adresem, który został wpisany do programu LogicSig jako właściciel.

Jeśli odpowiedź brzmi “tak” dla wszystkich punktów, transakcja zostaje zaakceptowana. Jeśli coś się nie zgadza, na przykład podpis pochodzi od innego portfela albo ktoś próbuje podmienić transakcję, program odrzuca autoryzację.

Ochrona przed ponownym użyciem podpisu

Jednym z ważnych ryzyk w takich systemach jest replay attack, czyli próba użycia raz złożonego podpisu ponownie w innym kontekście.

xChain Accounts ograniczają to na dwa sposoby. Po pierwsze, podpis jest powiązany z konkretnym identyfikatorem transakcji albo grupy transakcji. Nie można go po prostu przenieść na inną operację. Po drugie, standard EIP-712 opisuje domenę, czyli kontekst podpisu. Dzięki temu podpis złożony w jednej aplikacji nie powinien dać się wykorzystać jako autoryzacja w zupełnie innym miejscu.

Dla użytkownika oznacza to mniej więcej tyle: portfel nie podpisuje pustego czeku. Podpis ma dotyczyć konkretnej operacji w konkretnym kontekście.

Co jeszcze można zbudować na LogicSig?

xChain Accounts to tylko jeden przykład. Smart Signature Accounts mogą przydać się wszędzie tam, gdzie konto ma działać według jasnych zasad.

Delegated authority

Standardowe konto może przekazać ograniczone uprawnienia przez LogicSig. Ktoś inny może wtedy wysyłać transakcje w imieniu właściciela, ale tylko takie, które spełniają warunki programu.

Przykład: cykliczna płatność za usługę. Firma może pobierać określoną kwotę według harmonogramu, ale nie może nagle zabrać więcej ani wykonać operacji spoza reguł.

Sponsorowane opłaty

LogicSig może pomóc w scenariuszach, w których aplikacja opłaca pierwszą transakcję użytkownika. To ważne dla onboardingu, bo nowa osoba często nie ma jeszcze ALGO na opłaty.

Dobrze zaprojektowana aplikacja może ukryć część blockchainowej złożoności i pozwolić użytkownikowi zacząć od działania, a nie od nauki portfeli, opłat i zasilania konta.

Inne rodzaje podpisów

Algorand Virtual Machine wspiera też operacje kryptograficzne, które pozwalają budować konta autoryzowane nie tylko przez klasyczny klucz Algoranda. W praktyce może to otwierać drogę do kont obsługiwanych przez passkeys, WebAuthn albo klucze trzymane w hardware security module.

To bardzo ciekawy kierunek, bo zamiast zmuszać użytkownika do jednego modelu portfela, można dopasować autoryzację do sposobu, w jaki ludzie i firmy już dziś zabezpieczają dostęp.

Co to zmienia dla użytkownika?

Najważniejsza zmiana jest prosta: użytkownik może korzystać z aplikacji na Algorandzie, mając portfel z ekosystemu EVM. Nie musi od razu zakładać nowego portfela, uczyć się nowego sposobu podpisywania i pilnować kolejnego seed phrase.

To nie znaczy, że cała złożoność znika. Ona nadal istnieje w kodzie, SDK i logice aplikacji. Ale dobra infrastruktura przenosi tę złożoność z użytkownika na narzędzia deweloperskie.

Jeśli ten wzorzec będzie rozwijany, może pomóc Algorandowi trafiać do osób, które już mają portfele EVM, ale nie miały dotąd prostego wejścia do aplikacji na Algorandzie.

Co to zmienia dla dewelopera?

Deweloper dostaje ciekawy prymityw: konto, którego zasady autoryzacji są programowalne. Nie chodzi tylko o xChain Accounts. Chodzi o ogólniejszy model: konto może być logiką.

Możesz zapisać w programie warunki typu:

  • zaakceptuj tylko transakcje podpisane przez konkretny adres EVM,
  • zaakceptuj tylko transakcje z określonej grupy,
  • zaakceptuj tylko operacje mieszczące się w limicie kwoty,
  • zaakceptuj tylko operacje w określonym czasie,
  • zaakceptuj tylko przepływ, który spełnia zasady aplikacji.

To daje sporo elastyczności, ale też wymaga ostrożności. LogicSig jest kodem odpowiedzialnym za autoryzację środków. Przed użyciem w produkcji taki kod trzeba testować, audytować i traktować jak element bezpieczeństwa, a nie jak zwykły helper.

Słowniczek pojęć

Smart Signature Account - konto na Algorandzie, którego autoryzacja wynika z programu, a nie tylko z klasycznego klucza prywatnego.

LogicSig - skrót od Logic Signature. W praktyce często używany zamiennie ze Smart Signature Account albo programem, który zatwierdza transakcje.

xChain Accounts - rozwiązanie, które pozwala używać portfeli EVM do autoryzowania działań na Algorandzie.

EVM wallet - portfel z ekosystemu Ethereum Virtual Machine, na przykład MetaMask, Rabby albo Coinbase Wallet.

EIP-712 - standard podpisywania uporządkowanych danych w portfelach EVM. Dzięki niemu portfel może pokazać użytkownikowi czytelniejszy opis podpisywanej operacji.

digest - skrót kryptograficzny danych, które mają zostać podpisane albo zweryfikowane.

group ID - identyfikator grupy transakcji. Na Algorandzie transakcje mogą być łączone w atomic group, czyli zestaw, który wykonuje się razem albo wcale.

replay protection - zabezpieczenie przed ponownym wykorzystaniem tego samego podpisu w innym miejscu lub czasie.

secp256k1 - krzywa kryptograficzna używana m.in. w Ethereum i Bitcoinie.

keccak256 - funkcja skrótu używana w ekosystemie Ethereum, m.in. przy wyprowadzaniu adresów.

AVM - Algorand Virtual Machine, środowisko wykonawcze dla smart kontraktów i logiki transakcyjnej na Algorandzie.

opcode - niskopoziomowa operacja dostępna w maszynie wirtualnej, z której korzystają programy uruchamiane na blockchainie.

passkeys / WebAuthn - nowoczesne standardy logowania i podpisywania oparte o kryptografię, często znane z logowania biometrycznego lub kluczy sprzętowych.

hardware security module (HSM) - specjalistyczne urządzenie lub usługa do bezpiecznego przechowywania i używania kluczy kryptograficznych.

Podsumowanie

Smart Signature Accounts pokazują, że konto na Algorandzie może być czymś więcej niż adresem kontrolowanym przez jeden klucz. Może być małym programem, który sam sprawdza warunki autoryzacji.

xChain Accounts wykorzystują tę możliwość, żeby połączyć świat portfeli EVM z Algorandem. Użytkownik podpisuje komunikat w znanym portfelu, a LogicSig na Algorandzie sprawdza, czy podpis rzeczywiście pasuje do konkretnej transakcji i właściwego właściciela.

To nie jest tylko techniczna ciekawostka. To kierunek, w którym konto staje się bardziej elastyczne, a doświadczenie użytkownika mniej zależne od tego, na którym blockchainie zaczynał.


Opracowanie na podstawie: Under the hood of xChain Accounts: meet Smart Signature Accounts - blog Algorand