Wallet
Comprendi meglio come funzionano i wallet per una gestione sicura dei tuoi asset digitali
10min
Comprendi meglio come funzionano i wallet per una gestione sicura dei tuoi asset digitali
10min
Episodi di Blockchain Revolution
Benvenuti a una nuova lezione di questo corso in formato podcast dedicato alla tecnologia blockchain e al web3. Nelle precedenti lezioni abbiamo visto come un'identità crittografica è composta essenzialmente da due numeri, una chiave pubblica e una chiave privata. Abbiamo visto come queste chiavi possono essere utilizzate per cifrare e decifrare dati, per firmare digitalmente e quindi per realizzare uno scambio di asset digitali. Abbiamo inoltre visto come la programmabilità della blockchain ci permetta di realizzare token che possono avere un valore variabile o anche un valore fisso rispetto alle monete fiat e, quindi, dollaro o euro, e questo è molto comodo per esempio per effettuare pagamenti.
Ma come ci immaginiamo che un utente possa detenere questi valori? Come dovrà utilizzare le chiavi che sono in suo possesso? Ovviamente non ci immaginiamo che gli utenti ricordino a memoria le proprie chiavi private e che utilizzeranno la calcolatrice per effettuare, per eseguire gli algoritmi che generano le prove crittografiche che consentono di scambiare valore. Questo non è ovviamente possibile, infatti quello che succede è che si utilizzano degli strumenti software, si chiamano wallet, all'interno dei quali viene salvata la chiave privata e il loro compito è quello di utilizzare questa chiave per firmare le transazioni che gli utenti inseriranno. Infatti la prima operazione che dobbiamo effettuare quando utilizziamo questi wallet è quella di scegliere se importare una chiave privata che abbiamo generato da qualche altra parte, cosa che potrebbe essere possibile se abbiamo creato un'identità crittografica in passato, oppure quella di generare una nuova identità e allora il wallet crea una chiave pubblica e una chiave privata proprio per noi. In entrambi i casi il compito del wallet è quello di mantenere al proprio interno e il più possibile in maniera sicura la chiave privata per poi utilizzarla quando l'utente vorrà firmare delle transazioni. Non esistono soltanto dei wallet software che quindi potete utilizzare sul vostro computer come applicazioni dedicate o plug in nel vostro browser, esistono anche dei wallet hardware che sono dei veri e propri dispositivi fisici che voi potete conservare anche in cassaforte e che una volta collegati al vostro computer vi permettono di utilizzare la chiave privata custodita al loro interno per firmare transazioni.
Ma il problema principale rimane sempre lo stesso, se io perdo la chiave privata ecco che perdo completamente accesso alla mia identità e quindi anche a tutti gli asset che questa identità detiene. E come posso perdere la mia chiave privata? Se me la sto ricordando a memoria potrei dimenticarla, se l'ho scritta su un foglio di carta potrei perdere il foglio di carta, se su un dispositivo fisico potrebbe non funzionare più o potrebbe venire rubato per esempio. E quindi come faccio a risolvere questo problema? Perché queste cose possono ovviamente capitare e nonostante siano gravi nel caso in cui io perdo accesso al mio valore, perché vuol dire aver perso dei soldi, immaginatevi potrebbe essere ancora più grave se io perdo accesso per esempio a dei documenti legati alla mia identità. Pensate alla mia laurea o altri attestati che ho conseguito o certificati di possesso di tutti i miei beni. La soluzione in realtà è piuttosto semplice e ricalca molto quello che già oggi noi facciamo nella nostra vita quotidiana. Cosa succede se perdiamo tutti i nostri documenti e non sappiamo più come fare a dimostrare che siamo proprio noi? Quello che possiamo fare è andare in comune con due testimoni che testimoniano il fatto che il nostro nome è proprio quello, il nostro cognome è proprio quello e l'autorità ci rilascia dei nuovi documenti. Ecco, è possibile implementare qualcosa di simile anche con le identità crittografiche. Abbiamo detto che la blockchain è programmabile, questo vuol dire che io posso scrivere uno smart contract, un programma che gira su blockchain e che si comporta come se fosse un wallet, quindi lui può detenere a mio nome del valore, dei token, degli asset, degli NFT e così via. Quindi io utilizzo quello come contenitore, come portafoglio all'interno del quale mettere tutti i miei asset.Ovviamente però a un certo punto io questi asset li vorrò spendere, li vorrò dare a qualcuno, vorrò scambiarli. E come faccio a dire allo smart contract che sono proprio io il proprietario e quindi che lui li può dare a qualcun altro o li deve dare a qualcun altro? Il modo è molto semplice, all'interno dello smart contract c'è salvato un indirizzo che è fondamentalmente il possessore dello smart contract, infatti si chiama owner, che è colui che può dare delle istruzioni allo smart contract per la gestione degli asset. Quindi immaginatevi che all'interno dello smart contract sia salvata la mia chiave pubblica, ecco che io utilizzando la mia chiave privata posso firmare una transazione che lo smart contract riconosce e che lo smart contract quindi esegue. Però ai più attenti di voi non sarà sfuggito un particolare, di nuovo a me serve una chiave privata per dimostrare allo smart contract che sono proprio io l'owner, che sono io il titolare di quegli asset, e quindi potrebbe sembrare che siamo tornati esattamente al punto di partenza, c'è una nuova chiave privata che è necessaria per gestire gli asset all'interno dello smart contract. In realtà è proprio qui che comincia il bello perché io all'interno di questo programma non scrivo soltanto la mia chiave pubblica, cioè la chiave pubblica del titolare, ma posso salvare altre informazioni e implementare altri meccanismi. Per esempio io posso delegare due persone, due miei amici di cui mi fido, ad aiutarmi nel caso in cui dovessi smarrire la mia chiave privata. E come faccio? Beh se io perdo la chiave privata a quel punto io non posso più dare istruzioni, non posso più dare comandi allo smart contract, però posso creare una nuova identità e quindi una nuova coppia chiave privata chiave pubblica, posso contattare i miei due amici, i miei due referenti e dire a loro due di scrivere nello smart contract che c'è un nuovo titolare. Gli invio la chiave pubblica che ho appena generato, loro due lo scrivono all'interno dello smart contract ed ecco che il titolare viene aggiornato con le mie nuove credenziali.
Questo, come vi dicevo, è molto simile a quello che succede già oggi con i miei documenti d'identità, però qui ho dei vantaggi in più. In primo luogo perché il meccanismo è molto flessibile, quindi che siano due persone, tre persone, cinque persone, che debbano essere sette su dieci o che ci sia di mezzo un'istituzione o quant'altro posso deciderlo io in totale autonomia. Quindi il meccanismo di recovery può essere definito diverso per ogni utente, ognuno può definire il suo in base a quanto è importante la sua identità, in base a quanto lui vuole essere sicuro. Immaginatevi due massimi estremi, il primo estremo è io chiedo per esempio a un singolo mio amico di aiutarmi in questo recupero e quindi io mi devo fidare massimamente di lui e attenzione questo potrebbe essere un mio amico o potrebbe essere una società che mi offre un servizio. In realtà se ci pensate questo è esattamente quello che succede oggi quando voi aprite un account su un sistema esterno, quindi se aprite un account su Google, su Netflix o su Facebook, beh queste in realtà sono le uniche che possono recuperare in qualche modo la vostra password, possono permettervi di accedere nuovamente al servizio se perdete la password. Dall'altro estremo però io potrei non voler fidarmi di nessuno e allora in quel caso cosa posso fare? Beh posso non impostare nessuno di questi indirizzi, di queste chiavi pubblichi di recupero e quindi praticamente io sono responsabile della mia chiave privata, se la perdo non avrò più accesso a quegli asset e tra queste due soluzioni ci sono ovviamente tutte le soluzioni intermedie, quindi io posso definire come voglio che mi aggiusti la mia identità, quindi chi sarà in grado di cambiare il titolare del mio smart contract. E non finisce qui perché non soltanto ciascuno di noi potrà definire in modo assolutamente personalizzato il suo livello di sicurezza, ma in più questo livello di sicurezza potrebbe variare nel tempo, potrebbe variare in base alla quantità di asset contenuta nella vostra identità, per esempio se ho pochi euro potrei accettare che ci sia uno o due miei amici che recuperano il mio wallet, quindi la mia identità, mentre se dovessi tenere molti più soldi vorrei magari che un'istituzione, una banca o qualunque altra azienda sia coinvolta nel processo.
E allora come funziona operativamente la creazione di queste identità tramite smart contract, che si chiamano non a caso smart wallet? In realtà è molto semplice, quando scaricate un software wallet invece di creare semplicemente una chiave pubblica e una chiave privata, il software wallet si preoccupa di creare ovviamente questa coppia di chiavi e poi di effettuare la messa in opera, mettere in opera su blockchain uno smart contract che implementi diciamo la vostra identità, che possa fungere da smart wallet, a quel punto imposterà come titolare, come owner di quello smart contract la vostra chiave pubblica ed eventualmente sceglierà delle metriche, vi chiederà voi di scegliere delle metriche per recuperare la vostra identità e quindi dei guardian, quindi i guardiani della vostra identità, che potranno essere interpellati nel caso in cui voi doveste perdere la chiave privata e aveste bisogno di qualcuno per cambiare appunto la chiave pubblica che è titolare di quel wallet. Questo ovviamente complica leggermente le cose rispetto a quello che vi ho raccontato nelle prime lezioni, quindi rispetto all'avere semplicemente una coppia di chiavi pubbliche e private, ma ovviamente dà molta più flessibilità e molta più garanzia e credo che sia fondamentale per la massa d'option, perché non è pensabile avere una tecnologia per la quale se io perdo un'informazione, per qualunque motivo perdo accesso a tutti i miei dati, a tutti i miei valori, a tutti i miei beni e a tutti i miei soldi. Nel caso in cui vogliate approfondire questi temi, questa soluzione tecnologica si chiama account abstraction ed è molto utilizzata e immagino che verrà sempre più utilizzata in futuro.