dAppy bez portfela w przeglądarce
Strony oczekują portfela w przeglądarce. Przeglądarka to najbardziej narażony program na komputerze. AirNox rozwiązuje ten problem rozszerzeniem, które dla strony wygląda jak portfel, a nie przechowuje absolutnie nic.

Spis treści
Rozszerzenie, które nie jest portfelem
Rozszerzenie AirNox do przeglądarki (browser extension) wstrzykuje standardowe interfejsy, których szukają zdecentralizowane aplikacje: EIP-1193 i EIP-6963 dla sieci EVM, TON Connect oraz Solana wallet standard i Sui wallet standard. Dla strony to portfel. Odpowiada na „jakie konta”, „jaka sieć”, „podpisz to, proszę” w zwykły sposób.
W środku to kurier. Nie ma kluczy, nie przechowuje frazy seed i nie może niczego podpisać. Każde żądanie strony jest przekazywane wyłącznie lokalnym kanałem do AirNox Wallet na komputerze, a odpowiedź wraca tą samą drogą. Gdyby jutro ktoś podmienił rozszerzenie na złośliwą kopię, ta nie miałaby czego ukraść ani czym podpisać.
Co jest nie tak z klasycznym portfelem w rozszerzeniu
Klasyczny portfel web3 żyje w całości w przeglądarce, razem z kluczami. To oznacza, że klucze są w najbardziej narażonym programie na komputerze. Kod wstrzyknięty do strony może dotrzeć do interfejsu rozszerzenia. Zapisane sekrety chroni szyfrowanie, które nowoczesne karty graficzne łamią masowo metodą brute force. Wiele takich portfeli ma trackery i reklamy. Niewiele w jakikolwiek sposób chroni przed podmienionym adresem odbiorcy. A za ten przywilej przez cały dzień zużywają pamięć i czas procesora. AirNox ogranicza część przeglądarkową do kuriera i wynosi wszystko, co ważne, poza przeglądarkę – do natywnego programu na komputerze, a w trybie AirGap na telefon, który nigdy nie jest online.
Tylko lokalnie
Kanał między rozszerzeniem a portfelem na komputerze nigdy nie wychodzi poza twój komputer. Nie ma serwera pośredniczącego, sesji w chmurze ani konta. Oba końce uwierzytelniają się nawzajem, więc nic nie wskóra ani program udający portfel, ani strona udająca rozszerzenie.
Uprawnieniami zarządza komputer
Uprawnienia są przechowywane w AirNox Wallet, a nie w przeglądarce. Nadaje się je osobno dla każdej witryny (origin) i każdej sieci, pojedynczo, i jedno uprawnienie nie pociąga za sobą żadnego innego. Witryna, która dostała dostęp do twojego konta w sieci Ethereum, nie ma przez to dostępu do konta w sieci Polygon. Witryna dopuszczona do jednego portfela nie jest przez to dopuszczona do innego.

Liczy się origin potwierdzony przez przeglądarkę, a nie ciąg znaków dołączony przez stronę. Strona nie może podać się za inną witrynę. Cały system działa w trybie fail-closed: wszystko, na co wyraźnie nie zezwolono, jest odrzucane, a żądanie, którego portfel nie rozumie, również zostaje odrzucone.
Zablokowany znaczy nie
Gdy portfel jest zablokowany, rozszerzenie nie odpowiada na nic, niezależnie od tego, jak sformułowano żądanie. Strona nie może wybudzić portfela, wyliczyć kont ani ustawić w kolejce podpisu do złożenia po odblokowaniu. Portfel odblokowujesz ty, w samym portfelu, i dopiero wtedy przeglądarka dostaje odpowiedzi.
Podpisywanie
Transakcje, wiadomości i dane typowane (typed data) przechodzą tę samą drogę. Najpierw komputer dekoduje i sprawdza żądanie: rozpoznaje standardowe operacje i oznacza sobowtóry, nielimitowane zgody na wydatkowanie (allowances) i nieznanych spenderów. W trybie AirGap niepodpisane żądanie trafia następnie na telefon, gdzie jest ponownie dekodowane z bajtów, pokazywane tobie i podpisywane dopiero wtedy, gdy naciśniesz Accept (Akceptuj). Podpis wraca, komputer wysyła transakcję do sieci, a strona otrzymuje hash transakcji. Przełączanie sieci działa tak samo: to portfel decyduje, czy zmiana jest dozwolona.
W przypadku portfela, którego fraza seed jest na komputerze, podpisuje komputer – po tej samej kontroli, w oknie portfela, a nie na telefonie.
Co może, a czego nie może przejęta strona
Przejęta strona albo zatruty skrypt w przeglądarce może cię okłamać. Może pokazać jedną transakcję, a poprosić o inną. Może podać claim za weryfikację. Nie może natomiast podpisać. Decyzja zapada tam, gdzie są klucze, po tym, jak przeczytasz żądanie w postaci zdekodowanej przez telefon. Approve od drainera – taki, który gładko przechodzi przez wyskakujące okienko w przeglądarce – trafia na telefon jako to, czym jest: zgoda na wydatkowanie, dla tego spendera, na tę kwotę. Jeśli jest nielimitowana, telefon to mówi.
Właśnie o taki układ nam chodziło: wygoda portfela w przeglądarce dla strony i żadnego z jego ryzyk dla ciebie.
Cała seria
- Załóż, że komputer jest przejęty
- Mass Adoption Security: urządzeniem podpisującym jest telefon, który już masz
- Trzy drogi przez air gap: kody QR, Bluetooth LE i NFC
- Niewidzialny w eterze: urządzenie podpisujące, którego nie wykryje żaden skaner
- Transport nigdy nie jest zaufany
- Co pokazuje ci telefon: analiza transakcji na urządzeniu podpisującym
- Telefon prowadzi własny zapis
- Sejf na twoim komputerze: Argon2id i profil odporny na zgadywanie
- dAppy bez portfela w przeglądarce
- Serwer MCP z zasadami: agenci AI w granicach limitów
- Jeden chroniony portfel do wszystkiego
- Mały i natywny: C++, bez środowiska JavaScript, od stacji roboczej po Raspberry Pi