Piccolo e nativo: C++, nessun runtime JavaScript, dalla workstation al Raspberry Pi
Un wallet è un programma di sicurezza. Dovrebbe essere abbastanza piccolo da poterlo sottoporre ad audit, abbastanza veloce da dimenticarsene e privo di parti mobili che non siano sue.

In questa pagina
C++ e Qt
AirNox Wallet è scritto in C++ con il toolkit Qt. La crittografia, il codice delle chain, i costruttori di transazioni e l’analisi delle richieste vivono tutti in un unico core nativo, compilato per ogni piattaforma. Anche l’interfaccia è nativa. Non c’è nessun browser integrato che disegna il wallet e nessun motore di scripting che lo fa girare.
Questo ha tre conseguenze che si sentono. Il wallet si avvia in un attimo. A riposo non si fa notare, con un ingombro che lascia la macchina libera per il resto del suo lavoro. E sotto non c’è nessun runtime che si aggiorna da solo, carica pacchetti o esegue codice scaricato chissà da dove.
Cosa non c’è dentro
Nessun runtime JavaScript. Una buona parte delle compromissioni dei wallet passa attraverso gli ecosistemi di pacchetti e l’iniezione di script. Un wallet senza motore di script non è un bersaglio per questi attacchi.
Nessuna web view. L’interfaccia è disegnata dal toolkit, non da un componente browser. Non c’è nessuna pagina in cui iniettare codice.
Nessuna telemetria, nessuna analytics, nessun tracker. Il wallet parla con i nodi blockchain e con i fornitori di swap e bridge che scegli di usare. Con noi non parla. Niente manda dati alla casa madre, e non c’è nessun account da creare.

Piattaforme
L’applicazione desktop gira su Windows, Linux e macOS, con una build nativa per ciascuno. Lo stesso codice gira su hardware di classe Raspberry Pi, e questo rende AirNox adatto a installazioni embedded: il terminale di un ufficio cambi, un totem, una postazione di firma nel back office. Una piccola scheda con uno schermo, un lettore NFC USB e il wallet è un punto operativo completo e pronto per l’air gap, con le chiavi su un telefono che tocca il lettore.
Un unico core di firma
L’app sul telefono e il desktop condividono lo stesso core. Il codice che deriva le chiavi, costruisce una transazione e la decodifica per lo schermo è lo stesso codice su entrambi i dispositivi, compilato per ciascuno. C’è una sola implementazione di ogni chain da sottoporre ad audit, non due che devono andare d’accordo, e una correzione da una parte è una correzione da entrambe.
Perché conta
Piccolo e nativo non è una preferenza di stile. Ogni dipendenza è un punto in cui l’errore di qualcun altro diventa il tuo. Ogni runtime è una superficie d’attacco. Ogni chiamata di rete non strettamente necessaria è una fuga di qualcosa. Un wallet che è un singolo programma nativo, e che parla solo con i nodi che gli indichi tu, è un wallet su cui puoi ragionare. È lo standard a cui teniamo l’intero prodotto, dal dispositivo di firma (signer) sul telefono alla finestra sulla tua scrivania.
La serie completa
- Parti dal presupposto che il computer sia compromesso
- Mass Adoption Security: il dispositivo di firma è un telefono che hai già
- Tre modi per attraversare l’air gap: codici QR, Bluetooth LE e NFC
- Invisibile nell’etere: un dispositivo di firma che nessuno può scovare con uno scanner
- Del trasporto non ci si fida mai
- Cosa ti mostra il telefono: l’analisi della transazione sul dispositivo di firma
- Il telefono tiene il proprio registro
- La cassaforte sul tuo desktop: Argon2id e un profilo che resiste a chi prova a indovinare
- dApp senza un wallet nel browser
- Un server MCP con delle regole: agenti AI entro dei limiti
- Un solo wallet protetto per tutto
- Piccolo e nativo: C++, nessun runtime JavaScript, dalla workstation al Raspberry Pi