Nell’articolo di una settimana fa incentrato sul tema sicurezza si è parlato dei wallet, i luoghi virtuali all’interno dei quali si detengono le criptovalute. Si sono dette varie cose: che sono identificabili da una coppia di chiavi (pubblica e privata) e che si possono suddividere in due grandi categorie: custodial e non custodial. Oggi tiriamo fuori la lente di ingrandimento e andiamo ad approfondire questi concetti.
Quando si va a utilizzare un qualunque servizio dedicato alla creazione del wallet non facciamo altro che richiedere allo stesso servizio di generare una stringa alfanumerica. In sostanza il servizio utilizza degli input vari, li cripta utilizzando la funzione crittografica di hash e il risultato finale è quella stringa alfanumerica, quella che noi definiamo chiave privata. Da questo nuovo dato che abbiamo ottenuto ne generiamo un altro tramite i calcoli di un algoritmo e ciò che otterremo sarà una seconda stringa alfanumerica, quella che noi definiamo chiave pubblica.
Il tipo di criptografia che si utilizza è la criptografia asimettrica, ovvero possiamo generare un dato criptandone un altro ma una volta fatto non possiamo percorrere la strada all’inverso. Da questo consegue il fatto che non è possibile risalire alla chiave privata partendo dalla chiave pubblica, che è l’indirizzo del nostro wallet, il nostro “codice IBAN”.
Questo, in parole povere, è il procedimento utilizzato nella creazione di un wallet anche se in realtà urge una precisazione. Per semplicità ho detto che il wallet contiene le criptovalute ma non è esattamente così. Le monete sono “scritte” soltanto nella blockchain e sono soltanto all’interno di quest’ultima, il wallet contiene solo la chiave privata e quando noi la scriviamo su un servizio per accedere ai nostri fondi stiamo andando a richiamare un ricordo della rete. Gli stiamo dicendo che quella chiave privata è nostra e la blockchain si ricorderà che alla stessa è associato quel preciso ammontare di monete del quale disporremo liberamente una volta inserita la chiave privata.
Tutto questo procedimento detto così sembra di un’incredibile complessità, in realtà poi nell’atto pratico è la descrizione di tutto ciò che avviene mentre noi utilizziamo quei servizi e completiamo l’operazione di creazione del wallet con un paio di click del mouse su un sito o un’applicazione.
Wallet: Custodial vs Non-custodial
Da ciò che è stato detto possiamo subito capire una cosa: che il vero proprietario di quei determinati fondi associati a quel determinato wallet (identificato da una chiave pubblica) è colui che può accedervi attraverso una chiave privata. Ciò significa che quando utilizziamo wallet custodial (dove deleghiamo la responsabilità di custodire le chiavi private a terzi), tecnicamente non possiamo essere definiti come i veri proprietari di quelle monete, a differenza di quando invece stiamo utilizzando wallet non-custodial, dove soltanto noi abbiamo una copia della chiave privata.
Principe dei non custodial è senza dubbio l’hardware wallet, un dispositivo all’interno del quale sono archiviate le vostre chiavi private e che dovete collegare al pc ogni qualvolta vi state interfacciando con la blockchain per poter eseguire qualche operazione che deve essere necessariamente firmata, “timbrata” utilizzando la vostra chiave privata.
In commercio ne esistono tanti ma i più diffusi e utilizzati sono quelli prodotti dalla Ledger e dalla Trezor.
Quando invece si parla di custodial vengono subito in mente i vari Exchange, dove si ha a disposizione una chiave pubblica alla quale inviare fondi, ma dove non avete la chiave privata che è in possesso dello stesso Exchange.
Avete solo una password per entrare nel vostro account, cosa ben diversa dal poter disporre della chiave privata. Come quando depositate oro e gioielli nella cassetta di sicurezza del caveau di una banca, ma per potervi accedere avete bisogno di un impiegato che vi accompagni dentro. L’esempio calza abbastanza.