A lezione di Bitcoin #1

Gli ultimi articoli che questo blog ha trattato a tema Bitcoin hanno scatenato polemiche, riflessioni, commenti concitati con tanto di tifo da stadio pro e contro criptovalute. Quando succede tutto questo credo sia doveroso cercare di comprendere meglio il fenomeno bitcoin senza preconcetti, possibilmente attingendo le informazioni da fonti competenti. Fortunatamente tra i nostri lettori ci sono persone esperte di questa materia complessa. Una di queste persone (che ringrazio di cuore) ha scritto per noi una serie di articoli che speriamo possano aiutare i lettori di investireconbuonsenso.com a capire, nel modo più semplice possibile, come funziona Bitcoin e tutto ciò che vi gira attorno. Sarà un viaggio a puntate dove scopriremo le origini di Bitcoin e della blockchain, capiremo pregi e limiti di questa tecnologia, tenteremo di capire come spendere, conservare e convertire bitcoin con un occhio rivolto a quello che i Governi mondiali potrebbero (o non potrebbero) fare per gestire questo fenomeno.

Buona lettura

Blockchain, Tecnologia, Smart, Bitcoin

Premessa: per comprendere interamente il funzionamento tecnico di Bitcoin servirebbero competenze matematiche di livello universitario. Nel testo che segue, i concetti più tecnici saranno quindi descritti in maniera semplificata, tuttavia saranno sempre formalmente corretti. Viene solo eliminato dalla descrizione un aspetto matematicamente importante nella crittografia (le cosiddette funzioni di “hashing”) che tuttavia non è necessario per la comprensione.

Parte 1 – L’origine di Bitcoin

Per comprendere il problema che ha portato alla nascita di Bitcoin possiamo partire da un bonifico bancario. Se uno di voi avesse un euro sul conto corrente e volesse inviare questo euro con un bonifico a un destinatario, chiederebbe alla propria banca di eseguire l’operazione. La banca, che è un’istituzione terza, è quindi responsabile dell’invio per conto vostro dell’euro alla banca del destinatario. Questa istituzione terza garantisce che solo voi possiate “spendere” il vostro euro e che, una volta inviato il bonifico, l’euro inviato venga sottratto dal vostro conto corrente. Se voi provaste ad effettuare due bonifici di un euro a due destinatari diversi, avendo un solo euro sul conto, sempre la vostra banca ve lo impedirebbe. In sostanza la banca, cioè l’istituzione terza di cui vi fidate sia voi sia il destinatario del bonifico, ha avuto la responsabilità di verificare: a) l’esistenza dell’euro sul vostro conto e la vostra volontà di trasferire l’euro al destinatario, b) che questo euro non possa essere speso due volte.

Trasferendo questo concetto in ambito informatico, verso la fine del secolo scorso, la comunità scientifica, in prevalenza non ufficiale, ha cominciato a interrogarsi se e come fosse possibile utilizzare del denaro elettronico per spedire direttamente pagamenti online da un’entità ad un’altra senza passare tramite un’istituzione finanziaria (la frase in corsivo è ripresa dalla pubblicazione originaria dell’inventore di Bitcoin, che vedremo più avanti). In altre parole: sarebbe possibile trasferire online del denaro tra voi e un destinatario senza la necessità che un’istituzione terza, ad esempio una banca, faccia da garante? Nel mondo fisico questo avviene regolarmente quando ad esempio effettuiamo un pagamento in contanti: al momento dello scambio non abbiamo la necessità che esista un soggetto terzo garante, in quanto il trasferimento di denaro attraverso una banconota o una moneta fisica consente di rispettare le due condizioni indicate sopra in quanto: a) è certa sia l’esistenza della moneta o della banconota che stiamo scambiando sia la nostra volontà di darla al beneficiario, b) una volta effettuato il pagamento e quindi trasferita la moneta o la banconota, noi non possiamo più spenderla.

Ma nel momento in cui vogliamo riprodurre questo scambio attraverso una modalità solo elettronica e senza un’istituzione terza garante, dobbiamo trovare il modo per soddisfare le stesse due condizioni: a) garantire l’autenticità del trasferimento della “moneta” dal mittente al destinatario, b) non consentire di spendere la stessa “moneta” due volte contemporaneamente.

Bitcoin, Soldi, Decentrata, Anonimo

Il primo problema, quello di garantire l’autenticità del trasferimento, era in realtà già stato risolto diversi anni prima tramite la crittografia, con l’ideazione della “firma digitale”. Per comprendere il concetto di firma digitale, che è una delle parti chiave del sistema Bitcoin, probabilmente la più importante e il motivo per cui viene chiamato criptovaluta, occorre comprendere un concetto matematico chiamato “crittografia asimmetrica” o “crittografia a chiave pubblica e privata”. Più o meno tutti nella vita abbiamo protetto con una password un file zip o un documento di Word. In questo caso noi abbiamo utilizzato quella che viene chiamata “crittografia simmetrica”: utilizzando ad esempio la parola chiave “Tavolo” per proteggere (crittografare) il file, useremo sempre la parola “Tavolo” per sproteggerlo (decrittarlo). Il file crittografato non è più leggibile da nessuno perché il contenuto viene alterato e solo utilizzando la parola chiave “Tavolo” è possibile riportarlo allo stato originario. Una caratteristica della crittografia simmetrica è che, per consentire la decodifica del documento a qualcun altro, è necessario comunicare la parola chiave “Tavolo” al destinatario, che però, conoscendola, potrebbe a sua volta crittografare un altro documento con la stessa parola chiave. Il nuovo documento è quindi sì crittografato con la stessa parola chiave del primo, ma nessuno può stabilire con certezza chi sia il soggetto che l’ha crittografato.

La soluzione è arrivata dalla “crittografia asimmetrica”. Qui la parola chiave per crittografare il documento è differente da quella per decrittarlo. Ad esempio se si crittografa un documento con la parola chiave “Tavolo”, per decrittarlo serve la parola chiave “Sedia”. Questa e solo questa parola e nessun’altra può consentire la decodifica. A questo punto, se io comunico a tutti che la parola chiave “Sedia” serve per decrittare i miei documenti (per cui si chiama “chiave pubblica”, essendo nota a tutti), tenendo segreta la parola chiave “Tavolo” (che si chiama quindi “chiave privata”), posso firmare in maniera univoca un documento. Come? Se io crittografo il testo “Sto dando un euro ad ArcheoWealth” con la mia chiave privata “Tavolo”, che conosco solo io, ottengo un testo illeggibile, ad es. “Xjshfowi48dudfancvjudusds”. Ma provando a decrittare questo testo illeggibile con la mia parola chiave pubblica “Sedia”, chiunque può riottenere il messaggio originario “Sto dando un euro ad ArcheoWealth” e ha la certezza che sono stato io a scriverlo, perché solo una parola (nel nostro caso “Tavolo”, che conosco solo io) e nessun’altra avrebbe potuto produrre quel testo criptato e illeggibile e solo la parola “Sedia” (che è la mia chiave pubblica, che conoscono tutti) avrebbe potuto riportare il testo criptato e illeggibile a quello originale. A garantire queste unicità ci hanno pensato i matematici. Così facendo ho quindi apposto la mia “firma digitale”, in quanto non falsificabile, al testo. Per correttezza formale occorre precisare che in realtà con la firma digitale non si crittografa l’intero testo, ma solo un’impronta dello stesso (chiamata hash), calcolata con una funzione matematica. Il concetto comunque non varia.

Bitcoin, Cryptocurrency, Btc, Valuta

ArcheoWealth può quindi dimostrare a tutti che io gli ho dato il mio euro, senza bisogno di un’autorità terza, e chiunque è in grado di validare questa operazione sapendo che io ho speso il mio euro e l’ho dato ad ArcheoWealth, perché chiunque può verificare che con la mia chiave pubblica “Sedia” il testo crittografato viene decrittato. Abbiamo quindi risolto il primo problema: nessuno può falsificare la mia comunicazione e quindi l’unico che può spendere il mio euro sono io, che conosco la chiave privata “Tavolo”.

Ovviamente, se qualcuno riesce a scoprire la mia chiave privata “Tavolo”, può firmare i messaggi al posto mio, per questo motivo la devo tenere assolutamente riservata.

Anticipando un argomento che vedremo più avanti, quando sentite o leggete che sono stati “rubati” dei bitcoin, vuol dire che un malintenzionato è riuscito a scoprire la parola segreta “Tavolo” (chiave privata) di qualcuno e ha utilizzato quella parola per firmare digitalmente la transazione “io sto dando i miei bitcoin a XXX”, trasferendo quindi i bitcoin a sé stesso.

La crittografia asimmetrica funziona anche all’inverso, quindi è possibile che anche ArcheoWealth si doti di una chiave pubblica, ad esempio “Bicicletta” che comunica a tutti, e di una corrispondente chiave privata, ad esempio “Ruota”, che conosce solo lui. A questo punto, se voglio inviargli un euro, invece di firmare digitalmente il messaggio “Sto dando un euro ad ArcheoWealth”, posso firmare digitalmente il messaggio “Sto dando un euro a Bicicletta”. In questo modo tutti possono verificare che il mio euro è stato trasferito a “Bicicletta”, ma non sanno chi sia in realtà la persona che corrisponde a “Bicicletta”. Solo chi conosce la chiave privata “Ruota”, corrispondente alla chiave pubblica “Bicicletta”, cioè ArcheoWealth, potrà quindi accedere all’euro e trasferirlo a sua volta. Io stesso, una volta trasferito il mio euro a “Bicicletta”, non posso più accedervi, perché non conosco la parola chiave privata “Ruota”, che conosce solo ArcheoWealth.

Nella realtà le parole chiave non sono “Tavolo”, “Sedia”, “Bicicletta” o “Ruota”, ma parole composte in genere da numeri, lettere e simboli che vengono matematicamente garantite essere univoche, e dipendono dai vari algoritmi di crittografia utilizzati (quello che usa Bitcoin si chiama ECDSA – Elliptic Curve Digital Signature Algorithm), per cui non potranno mai esistere due chiavi pubbliche o private uguali (o, meglio, è talmente improbabile da potersi considerare impossibile) e anche informaticamente è impossibile oggi ricavare la chiave privata di qualcuno (“Tavolo”) conoscendo solo quella pubblica (“Sedia”). Per farlo, anche al computer più potente del mondo servirebbero milioni di anni di calcoli, anche se fra qualche anno la situazione potrebbe cambiare, per via dell’evoluzione dei computer cosiddetti quantistici. Al momento si può comunque ritenere che la firma digitale sia così sicura da essere utilizzata in tutto il mondo, a partire dai governi e dalle istituzioni finanziarie, per scambiarsi dati certificati.

Bitcoin, Denaro, Regalo, Mano, Mantenere

Risolto con le firme digitali il primo problema, cioè quello di garantire l’autenticità del trasferimento della “moneta”, restava il secondo, a cui nessuno aveva ancora trovato soluzione, cioè non consentire di spendere la “moneta” due volte contemporaneamente senza dipendere da un soggetto terzo garante. Ad esempio se io ho un euro e scrivo due messaggi “Sto dando il mio euro ad ArcheoWealth” e “Sto dando il mio euro a ExploWealth”, li firmo digitalmente come indicato sopra e li mando nello stesso momento a due persone diverse, i messaggi sono del tutto validi, ma in realtà sto spendendo due volte la stessa moneta e questo non può essere consentito (problema chiamato “della doppia spesa”). La soluzione è molto semplice affidandosi ad un soggetto terzo, ad esempio, nel caso del bonifico visto all’inizio, è la banca che ce lo impedisce. Diverso è il discorso nel caso in cui non vogliamo dipendere da nessun soggetto terzo e non vogliamo consentire che qualcuno possa effettuare transazioni fraudolente (problema chiamato “dei generali Bizantini”).

Dopo alcuni tentativi fallimentari a cavallo dell’anno 2000, quando il problema sembrava ormai insolubile, nel 2008 un anonimo esperto di crittografia che si faceva chiamare Satoshi Nakamoto, ha pubblicato un documento su “The Cryptography Mailing list” sul sito “metzdowd.com” (la versione in italiano del documento è scaricabile da https://bitcoin.org/files/bitcoin-paper/bitcoin_it.pdf), dove scrivevano prevalentemente scienziati cypherpunk, cioè libertari e visionari, in cui proponeva una brillante soluzione, tanto rozza quanto efficace: un modo per evitare la “doppia spesa” è che tutti i computer del mondo che gestiscono la rete di pagamento contengano nello stesso momento le stesse identiche informazioni, cioè il registro di tutte le transazioni che tutte le “monete digitali” hanno fatto dal momento della loro “coniazione” fino ad oggi. Tutte le transazioni sono firmate digitalmente con crittografia asimmetrica. Solo così si può avere la certezza assoluta che, potendo verificare la “storia” delle transazioni relative a ogni moneta, nessuna possa essere stata spesa contemporaneamente due volte. La moneta è stata chiamata “bitcoin” e il registro che tutti i computer della rete hanno, contenente l’elenco di tutte le transazioni avvenute, è stato chiamato “blockchain”, cioè catena di blocchi.

Satoshi Nakamoto era riuscito quindi a descrivere per la prima volta un sistema puramente elettronico e sovranazionale, che avrebbe consentito a computer dislocati in tutto il mondo di creare moneta digitale secondo un algoritmo predefinito e di spenderla, senza la necessità dell’intervento di nessuna istituzione terza garante.

Se qualcuno si sta chiedendo perché sia stato necessario inventare una nuova moneta per raggiungere lo scopo, senza utilizzarne una esistente, ad esempio l’euro o il dollaro, la risposta è che, al di là di eventuali motivi ideologici, non ci sarebbe stato nessun modo per garantire l’immissione della moneta nel sistema. Se non esiste un’istituzione finanziaria terza che certifica che io possiedo l’euro che sto trasferendo al destinatario e che provvede a toglierlo dal mio conto corrente, come nel caso del bonifico visto all’inizio, potrei dichiarare di disporre di qualsiasi cifra e nessuno potrebbe verificare se è vero o falso. Il sistema ha quindi la necessità che le monete elettroniche vengano create e rimangano per sempre all’interno del sistema, per poter garantire senza possibilità di errore la validità di tutte le transazioni e l’assenza di doppie spese.

Nota: da un punto di vista formale, solitamente per convenzione si scrive “bitcoin” (minuscolo) per indicare la valuta e “Bitcoin” (maiuscolo) per indicare la tecnologia, anche se questa distinzione oggi viene in genere poco rispettata.

Una volta descritto il problema che ha portato alla nascita di Bitcoin, la crittografia asimmetrica e i principi su cui si è basato Nakamoto per progettare il sistema, nella prossima parte procederemo a descrivere come vengono creati i bitcoin e il funzionamento della blockchain.

4 risposte a "A lezione di Bitcoin #1"

    • explowealth 12 febbraio 2021 / 20:42

      L’importante è essere informati e poi fare valutazioni. Qui nessuno dice di comprare o vendere bitcoin. Comunque vada cambierà il mondo futuro. Magari non è qui per restare, ma sono sicuro che abbiamo di fronte grandi rivoluzioni e il mondo saprà rigenerarsi. Anche grazie a bitcoin

      "Mi piace"

  1. valerio maria de stasio 12 febbraio 2021 / 20:09

    Spettacolo… complimenti! Tecnicamente duro ma rigoroso..

    "Mi piace"

    • explowealth 12 febbraio 2021 / 20:40

      Grazie! Non perdere allora le prossime lezioni, questa è solo un’antemprima…

      "Mi piace"

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.