Ormai mi trovo spesso a dirlo ma lo ripeto anche qui: “la blockchain è una cosa brutta, difficile ed inefficiente“. Non risolve tutti i problemi che i sedicenti esperti blockchain possono promettervi, ma almeno un problema lo risolve: fare un pagamento elettronico senza bisogno di intermediari.
Una specie di denaro contante che potete spedire a distanza, cosa che non ha equivalenti nel mondo fisico a meno che non vi dotiate di una catapulta con gittata enorme e di una mira infallibile
Ma questa cosa è vera soprattutto se gli utenti usano dei wallet non-custodial, ovvero wallet in cui gli utenti stessi controllano le chiavi. Altrimenti torniamo agli intermediari.
Trilemma del wallet
Tuttavia abbiamo forse un trilemma per il wallet: dovrebbe essere contemporaneamente facile da usare, sicuro e self-custodial. Ma sembra che i tre requisiti siano sempre in tensione ed al massimo 2 su 3 possono essere ottenuti.
Un wallet self-custodial può essere sicuro se adotta tutte le misure per custodire le chiavi in modo CIA (Confidentiality, Integrity and Availability) ma non potrà essere “facile da usare”. Avete mai configurato un wallet hardware? Non ditemi che è facile.
Un wallet potrebbe essere sicuro e facile da usare ma non potrà essere self-custodial.
Oppure un wallet potrebbe essere self-custodial e facile da usare ma con qualche compromesso sulla gestione delle chiavi (che magari sono esposte in memoria alla merce di virus e malware).
Il trilemma qui proposto è solo una congettura e sarei lieto di essere smentito. Sono sempre interessato a scoprire soluzioni nuove per i wallet che siano self-custodial, facili e sicure. La sfida per la “blockchain” è proprio nella semplicità d’utilizzo.
La quasi soluzione di Fortmatic
Una soluzione interessante è il client Fortmatic.
Si può definire un quasi-self custodial. Le chiavi vere e proprie sono custodite in un HSM su cloud (ad esempio Amazon AWS) e tramite l’emissione di token di autenticazione di Cognito (altro servizio Amazon) l’utente si autentica e ottiene le sue chiavi con le quali firma le transazioni. Tutto questo senza dare mai a Fortmatic accesso alle stesse chiavi che si limita a fornire la user interface.
Chiaramente Amazon rappresenta un elemento fiduciario e questo rovina un po’ il gusto della soluzione ma rispetto ad una soluzione full custodial qui abbiamo due attori, uno ci fornisce il wallet (Fortmatic) e l’altro gestisce i segreti (le chiavi). Secondo Amazon il suo Cloud HSM permette l’accesso alle chiavi solo al legittimo proprietario, neanche Amazon potrebbe ottenerle. Certo è un’affermazione forte e bisogna fidarsi. Fortmatic ha depositato un brevetto su questa soluzione.
Il problema di aver a che fare con un intermediario, come Amazon, è che non solo ti devi fidare di quello che dice, ma potrebbe anche negarti il servizio.[…] Oppure che lo faccia di sua volontà, come quando Paypal e i maggiori circuiti di carte di credito rifiutarono i pagamenti vs Wikileaks. (F. Gianneschi)
Questa è un’ottima considerazione. Ovviamente do per scontanto che l’utente abbia sempre a disposizione un meccanismo di backup delle sue chiavi attraverso la passphrase. Ma effettivamente niente può essere dato per scontato o per “semplice” da usare che è uno dei requisiti del trilemma in questione.
I wallet come MyEtherWallet sono un buon compromesso?
In molti casi forse sì, ma lo sono per la Signora Maria o una casalinga di Voghera che un domani vorrà custodire le sue Crypto? Esisterà mai una tale figura mitologica in questo mercato pazzo delle crypto?
Che mi dici di Mew ( my Ethereum wallet) , é semplicissimo da usare e self custodial, se il tuo telefono è nelle tue mani anche le chiavi sono nelle tue mani… E puoi sempre disinstallarlo e reinstallarlo solo quando devi fare una transazione, tenendo le passphrase ben custodite su carta…
(Tino Bruno, utente Linkedin)
Trovo MEW un wallet molto valido, tuttavia l’idea stessa di dover fare backup e restore frequenti della famosa mnemonic (la passphrase dalla quale derivare tutte le chiavi private) non lo rende secondo me così sicuro. Poi c’è da distinguere la versione web da quella mobile. In effetti quella web sembra più adatta ad un utente molto esperto che può interagire con gli smart contract e gestire in modo disinvolto le chiavi private. Quella mobile invece si avvicina molto di più ad un prodotto con una UX facilitata e tutto sommato abbastanza sicura o comunque sicura quanto può essere sicura la gestione di segreti crittografici in un moderno smartphone. E non è poco aggiungerei.
E i paper wallet sono sicuri?
In molti ritengono il paper wallet la soluzione più sicura poiché per definizione non risiede nella memoria di un computer, quindi non potrà mai andare online e quindi è inattaccabile da hacker e malware.
Ma non sono d’accordo che il paper wallet sia la cosa più sicura in assoluto. In realtà il paper wallet non è nemmeno un wallet, è un modo per custodire un segreto e non è esente da rischi (distruzione, perdita, violazione, contraffazione …)
Per me un wallet deve essere composto di almeno 3 elementi:
- la app che acquisisce l’input utente e costruisce il payload da firmare;
- il signer che usa le chiavi per firmare il payload
- ed infine il key storage sicuro che tiene le chiavi.
Diciamo che un paper wallet è solo un key storage e neanche così sicuro se poi devi spesso “consultarlo” per inserire il mnemonic a mano in qualche app. Ci sono diversi vettori di attacco che colpiscono proprio l’utilizzo del mnemonic in un computer compromesso. Il paper wallet è un backup di ultima istanza in caso di disaster recovery e naturalmente non necessariamente deve stare su carta.
Ma certamente sono d’accordo che nel caso di una somma modesta o un utilizzo poco frequente un paper wallet può essere un buon modo per conservare le chiavi.
Rispondi