Un Trezor può essere utilizzato non solo per ricevere e inviare Bitcoin, ma anche per firmare un testo e dimostrare il controllo di un determinato indirizzo. Questa operazione non trasferisce fondi, non paga commissioni e non rivela la seed phrase: il dispositivo usa la chiave privata per produrre una firma crittografica verificabile da un’altra persona o da un software compatibile.
La firma di un messaggio può essere utile, per esempio, quando un servizio chiede una prova di controllo di un indirizzo, quando si deve verificare l’identità del titolare di un wallet o quando si vuole dimostrare che un indirizzo appartiene a una determinata organizzazione. Tuttavia, il procedimento presenta alcuni limiti: non tutti i tipi di indirizzo, wallet e formati di firma sono compatibili tra loro.
La regola più importante è semplice: si firma soltanto un testo compreso e controllato parola per parola. Una firma non autorizza automaticamente un trasferimento, ma il testo potrebbe contenere una richiesta, un link, un identificativo o una dichiarazione che non si intende accettare.
Che cos’è una firma crittografica di un messaggio
Una transazione Bitcoin contiene istruzioni per spendere determinati UTXO e viene trasmessa alla rete. La firma di un messaggio è invece un’operazione fuori dalla blockchain: il testo non viene registrato in un blocco e non modifica il saldo dell’indirizzo.
Il wallet prende il messaggio, lo elabora secondo uno specifico formato e crea una firma usando la chiave privata associata all’indirizzo. Chi riceve il messaggio può usare l’indirizzo pubblico e la firma per verificare matematicamente che:
- la firma è stata prodotta dalla chiave privata corrispondente a quell’indirizzo;
- il testo verificato è esattamente quello firmato;
- il contenuto non è stato modificato dopo la firma.
La procedura non consegna la chiave privata al servizio che verifica la firma. Il Trezor mantiene la chiave al proprio interno e restituisce soltanto il risultato della firma, dopo che l’utente ha approvato l’operazione sul dispositivo o nell’interfaccia collegata.
Questo meccanismo prova il controllo della chiave in un determinato momento. Non dimostra però automaticamente l’identità anagrafica del firmatario, la proprietà economica dei fondi o l’assenza di altri soggetti autorizzati a usare lo stesso wallet.
Perché una firma non è una transazione
La distinzione è importante soprattutto per evitare allarmi o errori operativi. Una firma di messaggio:
- non sposta Bitcoin;
- non richiede una commissione di rete;
- non consuma UTXO;
- non viene normalmente inclusa nella blockchain;
- non modifica il saldo del wallet.
Una transazione, al contrario, contiene destinatari, importi, commissioni e input da spendere. Deve essere confermata sulla rete e può essere irreversibile. La firma di un testo non sostituisce una transazione e non è una prova che un pagamento sia stato effettuato.
Esiste però un rischio di natura diversa: il messaggio potrebbe essere usato come dichiarazione vincolante in un contesto commerciale, legale o di accesso a un servizio. Prima di firmare è quindi necessario comprendere il significato del testo e verificare chi lo ha richiesto.
Compatibilità: indirizzi, formati e software
La firma e la verifica non dipendono soltanto dal fatto che l’indirizzo sia Bitcoin. Devono essere compatibili anche il tipo di indirizzo, il formato utilizzato e il software che interpreta la firma.
Gli indirizzi Bitcoin storici, come quelli che iniziano normalmente con il numero 1, sono spesso supportati dai sistemi tradizionali di firma dei messaggi. Per indirizzi SegWit o Taproot, invece, la compatibilità può essere più limitata o richiedere un formato diverso. Un wallet può mostrare un indirizzo valido per ricevere Bitcoin ma non offrire la firma di messaggi con quel particolare schema.
Ne deriva una conseguenza pratica: un messaggio firmato correttamente da Trezor potrebbe non essere verificabile da un’applicazione che utilizza uno standard differente. Non è necessariamente un errore del dispositivo. Potrebbe trattarsi di una differenza tra il formato Bitcoin Signed Message, protocolli basati su BIP322 o procedure proprietarie del servizio.
Prima di iniziare, bisogna quindi chiedere al destinatario della prova:
- quale formato di firma accetta;
- quale tipo di indirizzo deve essere utilizzato;
- quale software userà per la verifica;
- se il messaggio deve avere una struttura precisa;
- se la verifica richiede anche indirizzo e firma in formato testuale o codificato.
Non bisogna convertire manualmente una firma, cambiare caratteri o copiare il risultato in strumenti casuali trovati online. Ogni trasformazione può rendere la firma non verificabile o esporre informazioni pubbliche del wallet a soggetti non necessari.
Procedura pratica con Trezor
I nomi dei pulsanti e il supporto concreto possono cambiare in base al modello, al firmware e al software usato. La logica generale, tuttavia, è la seguente.
1. Preparare un messaggio specifico. Il testo deve essere breve, chiaro e legato allo scopo della verifica. È preferibile includere una frase esplicita, un identificativo della richiesta e, quando opportuno, una data o una scadenza. Non si devono firmare messaggi generici come “approvo” se non è chiaro che cosa si stia approvando.
2. Verificare l’indirizzo. L’indirizzo mostrato dal software deve corrispondere a quello richiesto. Quando l’interfaccia lo consente, è opportuno confrontarlo con quello visualizzato sul display del Trezor. Un malware potrebbe sostituire l’indirizzo copiato negli appunti o mostrare dati diversi da quelli attesi.
3. Aprire una funzione di firma compatibile. Si può usare Trezor Suite, se la funzione e il tipo di account sono supportati, oppure un wallet compatibile che utilizzi Trezor come dispositivo di firma. Il Trezor deve essere collegato senza inserire la seed phrase nel computer o nel sito.
4. Inserire o incollare il testo. Il messaggio va copiato da una fonte attendibile e controllato anche visivamente. Attenzione a spazi, maiuscole, numeri, URL, caratteri simili e righe aggiunte alla fine del testo.
5. Leggere la richiesta sul dispositivo. Se il Trezor mostra il messaggio o una sua parte, bisogna scorrere le schermate e verificarne il contenuto. Se il testo visualizzato non coincide, l’operazione va annullata. Non si deve approvare una richiesta soltanto perché proviene da un sito conosciuto.
6. Conservare il risultato. La prova normalmente comprende indirizzo, messaggio e firma. Devono essere conservati insieme, senza modifiche. Se anche una sola parte cambia, la verifica può fallire.
7. Verificare con il destinatario. Il risultato può essere controllato con lo stesso software o con uno strumento compatibile e affidabile. È consigliabile eseguire una verifica indipendente prima di inviare la prova definitiva, soprattutto quando è coinvolto un servizio finanziario o un trasferimento successivo.
Rischi ed errori da evitare
Confondere la firma con l’autorizzazione di una dApp. In un wallet Ethereum, una firma di messaggio, una firma di typed data e un’approvazione di token sono operazioni diverse. Un’approvazione può autorizzare un contratto a muovere determinati token. La guida riguarda la prova di controllo di un indirizzo Bitcoin e non rende sicure richieste provenienti da dApp o siti sconosciuti.
Firmare un messaggio con una seed phrase compromessa. La firma dimostra il controllo della chiave, ma non risolve il problema della sicurezza del wallet. Se la seed phrase è stata copiata o fotografata, il rischio principale resta la possibilità che qualcuno trasferisca i fondi. In quel caso la priorità è valutare una migrazione verso un nuovo wallet sicuro, non usare il vecchio indirizzo per ulteriori prove.
Inserire la seed phrase in un sito di verifica. Nessun verificatore legittimo deve chiedere le parole di recupero per controllare una firma. Anche PIN, passphrase e codici di sblocco non devono essere comunicati.
Firmare un testo ambiguo o permanente. Una firma può essere salvata, inoltrata e presentata fuori dal contesto originale. Per richieste importanti è meglio indicare lo scopo preciso e una scadenza, evitando dichiarazioni più ampie di quanto necessario.
Usare un indirizzo non controllato dal dispositivo. Un indirizzo copiato da una schermata, da un explorer o da una vecchia email non prova che sia ancora gestito dal Trezor. La verifica deve partire da un account e da un indirizzo riconducibili al wallet corretto.
Che cosa dimostra davvero la firma
Una verifica positiva dimostra che una determinata chiave privata ha prodotto quella firma per quel testo e per quel formato. È una prova tecnica di controllo, non una certificazione completa dell’identità della persona.
Non dimostra necessariamente che il firmatario abbia acquistato i Bitcoin, che sia il beneficiario finale dei fondi o che possa disporne da solo. Un’azienda potrebbe usare procedure condivise, un wallet multisig potrebbe richiedere più firme e un indirizzo potrebbe essere gestito da un custode per conto di un cliente.
Per questo, la richiesta corretta dovrebbe definire in anticipo che cosa si vuole provare. Se serve soltanto dimostrare il controllo tecnico di un indirizzo, una firma è spesso più adatta di una piccola transazione di prova, perché non comporta costi né movimentazione di fondi. Se invece serve dimostrare un pagamento, occorre una transazione verificabile sulla blockchain.
Usare Trezor per firmare messaggi è quindi una funzione utile, ma da trattare come un’operazione crittografica distinta dall’invio di Bitcoin. La sicurezza dipende dalla compatibilità dello standard, dalla verifica dell’indirizzo e dalla lettura completa del testo prima dell’approvazione. Quando uno di questi elementi non è chiaro, è più prudente fermarsi e chiedere al destinatario quale procedura documentata intenda utilizzare.


