Zero-Knowledge e Bitcoin: Perché il Tuo Wallet Non Dovrebbe Mai Inviare le Chiavi al Server

La maggior parte dei wallet Bitcoin "sicuri" ha un difetto fondamentale: il server può vedere le tue chiavi. Non necessariamente perché vogliono rubarti i fondi, ma perché l'architettura lo richiede. TL Wallet è costruito su un principio diverso: zero-knowledge by design.

Cosa Significa "Zero-Knowledge" per un Wallet?

In crittografia, "zero-knowledge" significa che una parte (il server) può verificare che una transazione è valida senza mai vedere i dati sensibili (le tue chiavi private). Nel contesto di un wallet Bitcoin:

  • Il seed BIP39 viene generato sul dispositivo
  • Viene crittografato prima di essere archiviato localmente
  • Il server non riceve mai il seed in chiaro
  • Il server vede solo metadati pubblici: stato del wallet, nonce, timestamp

Perché la Maggior Parte dei Wallet NON è Zero-Knowledge

Molti wallet popolari funzionano così:

  1. Generi il seed sul dispositivo ✓
  2. Il seed (o una sua derivazione) viene inviato al server per "sincronizzazione" ✗
  3. Il server ora ha una copia delle tue chiavi ✗
  4. Se il server viene hackerato, i tuoi fondi sono a rischio ✗
🔑 Il problema non è la fiducia nell'azienda. È che un server centralizzato è un single point of failure. Non importa quanto sia sicuro: se esiste, può essere compromesso.

Come TL Wallet Implementa lo Zero-Knowledge

1. Generazione Locale

Il seed BIP39 è generato usando la libreria crittografica del dispositivo. Non passa mai attraverso una connessione di rete in chiaro.

2. Crittografia a Riposo (AES-256-GCM)

Il seed è cifrato con AES-256-GCM prima di essere archiviato localmente (FlutterSecureStorage su Android, IndexedDB con AES su PWA).

3. Trasferimento Cifrato (X25519 + ED25519)

Quando trasferisci un wallet a un altro dispositivo, il seed viene cifrato con la chiave pubblica effimera del ricevente (X25519) e firmato con la tua chiave privata (ED25519). Il server vede solo dati cifrati e metadati.

4. Backup Cloud Cifrato (PBKDF2 + AES-256-GCM)

Il backup cloud opzionale è protetto da una password utente che non viene mai inviata al server. PBKDF2 (600k iterazioni) deriva una chiave AES-256 dalla password. Senza password, il ciphertext è matematicamente inutile.

Verificabilità: Non Fidarti, Verifica

TL Wallet è completamente open-source. Puoi verificare personalmente che:

  • Il seed non viene mai inviato al server (controlla wallet_repository.dart)
  • La crittografia avviene lato client (controlla crypto_service.dart)
  • Il server valida solo metadati pubblici (controlla functions/src/index.ts)

🛡️ Prova TL Wallet — Zero-Knowledge per Davvero

Open source. Codice verificabile. Nessun server vede le tue chiavi. Mai.

Scarica l'APK o apri la Web App →
← Torna al Blog