Fogo ten funkcjonalność Sessions, niedawno specjalnie przeszukałem dokumentację techniczną i okazało się, że jest znacznie bardziej interesująca, niż się spodziewałem.

Na pierwszy rzut oka wydaje się, że to tylko "jednorazowe upoważnienie, transakcje bez podpisu", co rozwiązuje problemy związane z operacjami użytkowników. Ale w rzeczywistości wdrożenie tego nie jest takie proste — brak podpisu oznacza, że musisz powierzyć uprawnienia prywatnego klucza użytkownika kluczowi sesji, jak zapewnić, że ten klucz może robić tylko rzeczy w zakresie upoważnienia? Jak zapobiec jego nadużywaniu? Jak cofnąć go po zgubieniu?

@Fogo Official używa zestawu mechanizmów "inspekcji instrukcji". Użytkownik offline podpisuje "wiadomość intencyjną" głównym portfelem, w której określa, jak długo ta sesja może trwać, z jakimi programami może współdziałać oraz ile pieniędzy może wydać. Następnie, gdy rozpoczyna się sesja na blockchainie, system cofa się do poprzednich instrukcji transakcji, aby zweryfikować, czy ten podpis jest prawdziwy i czy zakres upoważnienia się zgadza. Gdy weryfikacja się powiedzie, wszystkie transakcje w trakcie sesji są podpisywane przez ten tymczasowy klucz, ale przed wykonaniem każdej transakcji system dokonuje natychmiastowej kontroli — czy wygasły? Czy wywołany jest program upoważniający? Czy wydatki nie przekroczyły limitu? — tylko jeśli wszystko jest w porządku, transakcja jest realizowana.

Ciekawsze jest to, jak zmodyfikowano program Token. Zwykły program SPL Token nie rozpoznaje żadnego "klucza sesji", Fogo dodał specjalny "hak sesji", który uruchamia kontrole przy każdej transakcji. A te kontrole nie są audytami po fakcie, ale natychmiastowym zatrzymywaniem w trakcie realizacji transakcji, przeterminowane, przekraczające limit, nieautoryzowane, są bezpośrednio blokowane na poziomie maszyny wirtualnej.

Ten projekt przypomniał mi o jednym słowie: programowalne zaufanie. Nie jest to proste naśladowanie doświadczenia centralizowanej giełdy, lecz wykorzystanie technik blockchainowych do zrealizowania "tymczasowego upoważnienia" w wystarczająco szczegółowy i bezpieczny sposób. Użytkownicy oszczędzają na liczbie podpisów, ale granica bezpieczeństwa nie została wcale obniżona.

Oczywiście, ten mechanizm stawia również wymagania przed deweloperami — muszą dostosować programy do specyfikacji Fogo Sessions. Obecnie widać, że takie natywne protokoły jak Ignition, Ambient już są podłączone. Dokumentacja techniczna jest bardzo szczegółowa, nawet jak derivować PDA i jak zamykać konta, są pełne przykłady. Taka przejrzystość jest dość rzadka w kręgach kryptograficznych, co pokazuje, że naprawdę chcą solidnie zrealizować ten projekt, a nie tylko stworzyć chwilowy chwyt marketingowy.

#fogo $FOGO