Studiare Bitcoin dal punto di vista tecnico sicuramente non è da tutti, ma di certo aiuta a comprendere a fondo le logiche e la filosofia su cui è basata questa tecnologia rivoluzionaria. Analizziamo solo uno dei tanti aspetti davvero interessanti che possono rendere l’idea della grande solidità dell’intero ecosistema.
BITCOIN SCRIPT
Bitcoin viene spesso presentato – a buon titolo – come “denaro programmabile”, in quanto consente di esprimere ed eseguire una varietà quasi infinita di condizioni di spesa che un utente può configurare o impostare a piacere.
Lo Script Language (linguaggio di programmazione) scelto da Satoshi Nakamoto nel 2008 per eseguire le transazioni bitcoin è un linguaggio chiamato: Bitcoin Script. Sì, concordiamo con voi: non è proprio un nome molto originale…
In ogni caso, stiamo parlando di un linguaggio simile a Forth, tipico dei linguaggi di programmazione in uso negli anni ’60. Si, avete capito bene: in uso negli anni ’60! Anche alcune calcolatrici di oggi fanno riferimento a logiche simili.
Nello specifico, la struttura di una transazione prevede che un UTXO (frammenti di bitcoin registrati in precedenza sulla Timechain) venga trasferito mediante l’esecuzione in serie di due script: uno script di sblocco (Unlocking Script) a cui segue lo script di blocco (Locking Script). Ad esempio, uno dei più semplici tipi di transazione prevede che:
Ogni full node del network (nodo completo), per convalidare una transazione, non deve fare altro che eseguire gli script di sblocco per ogni input insieme allo script di blocco corrispondente, al fine di verificare se viene soddisfatta la condizione di spesa.
Bitcoin Script è un linguaggio cosiddetto stack-based, dove gli oggetti vengono impilati dal basso verso l’altro e dove vale la regola LIFO (Last in First Out), ossia l’ultimo elemento che viene aggiunto in cima alla pila è anche il primo che viene tolto. In questo contesto, le operazioni risultano piuttosto macchinose e banali.
La domanda sorge spontanea: perché mai Satoshi Nakamoto avrebbe scelto di ricorrere a queste logiche ormai obsolete, ignorando i moderni linguaggi di programmazione?
VOLUTAMENTE INCOMPLETO
L’ideatore di Bitcoin ha rinunciato ad un linguaggio recente o moderno del tipo Turing-complete dove, in poche parole, il linguaggio impiegato può essere usato per risolvere qualsiasi problema che ammetta soluzione. Quasi tutti i linguaggi di programmazione di oggi sono, di fatto, del tipo Turing-complete.
Il linguaggio della transazione bitcoin è invece deliberatamente limitato. Poche operazioni, ma effettuate al meglio. Un linguaggio di tipo Forth e Turing-incomplete in grado di eseguire poche e semplici operazioni garantisce stabilità, affidabilità e tempi di esecuzione prevedibili.
Le limitazioni che Satoshi ha previsto nel progettare la struttura delle transazioni sono tese ad assicurare che il linguaggio non possa essere utilizzato per creare un loop infinito o causare altre forme di errore logico durante l’esecuzione di una transazione. Grazie a questa impostazione, una transazione Bitcoin può prevedere solo due casi: o questa va a buon fine, oppure viene ritornato errore e non viene eseguita affatto.
Con questi accorgimenti si possono prevenire, tra le altre cose, possibili attacchi o minacce come, ad esempio, attacchi DoS (Denial-of-Service) contro la rete Bitcoin.
Non dobbiamo inoltre dimenticare che ogni transazione deve essere convalidata da ogni nodo completo nel network, ed in maniera indipendente. Un linguaggio volutamente limitato come quello progettato per Bitcoin richiede un’elaborazione minima, impedendo così che il meccanismo di convalida della transazione possa costituire qualsiasi tipo di vulnerabilità.
Se abbiamo afferrato il punto, la convalida di una transazione con Bitcoin è basata su un modello tutt’altro che dinamico e generico, quanto su un linguaggio di script volutamente banale e prevedibile.
BITCOIN È QUI PER RESTARE
La cosa interessante è che, grazie ancora al ricorso a numerosi operatori, non viene affatto sacrificata la possibilità di esprimere una varietà quasi infinita di condizioni. Tale struttura garantisce infatti grande elasticità e apertura a sviluppi successivi.
Da qui la filosofia di fondo. Gli sviluppatori che lavorano sullo standard aperto di Bitcoin sono focalizzati sulla solidità e la stabilità, rinunciando per design al marketing, ad annunci mirabolanti, a modifiche traballanti o insicure solo per accontentare qualche investitore o per vendere il proprio token privato (se per caso lo state pensando, sì, esatto: ci stiamo riferendo proprio alle famigerate “cryptovalute” o, più tecnicamente, alle shitcoin).
Bitcoin è un progetto serio, serissimo. Progettato fin dall’inizio per essere resiliente e duraturo nel tempo, non una sporadica meteora atta ad arricchire i suoi fondatori. L’infrastruttura è concepita per minimizzare le probabilità del verificarsi di problemi, di possibili bug o di attacchi al sistema. Ecco perché occorre semplicità e prevedibilità. Le complessità inutili devono essere eliminate.
Bitcoin non è costruito sulla sabbia.
Bitcoin è costruito sulla roccia.
Da tutto ciò emerge un’interpretazione chiara: Bitcoin ha improntato il suo sviluppo, fin dall’inizio, su fondamenta solide. Tremendamente solide. A livello ingegneristico, la base dell’intera infrastruttura ha voluto essere stabile, lenta, convergente e prevedibile, piuttosto che moderna, dinamica, divergente e complessa.
Non c’è niente da fare: per apprezzare Bitcoin fino in fondo, cercando di orientarsi al meglio nella tana del Bianconiglio, appare indispensabile prendere in considerazione anche i suoi aspetti prettamente tecnici. Solo analizzando le scelte ingegneristiche intraprese dalla community dei suoi sviluppatori è possibile convincersi, volenti o nolenti, dell’inevitabile constatazione: Bitcoin è qui per restare.
“Qui siamo tutti matti: io sono matto, tu sei matta!”.
“Come lo sai che sono matta?” disse Alice.
“Altrimenti non saresti venuta qui!” disse il gatto.
Lewis Carroll – Alice nel paese delle meraviglie
Pubblichiamo oggi il primo articolo della serie IO SONO BITCOIN, a cura di Mateusz Riva.
Tralasciamo per il momento gli aspetti tecnici ed economici e facciamo un’analisi ad un livello più alto delle caratteristiche e delle implicazioni che derivano dalla scoperta di Bitcoin.
Anche dopo aver passato il migliaio di ore di studio non ho ancora trovato il fondo della tana del Bianconiglio, in quanto esaminando Bitcoin da differenti angolazioni mi rendo conto che presenta un’infinità di sfaccettature, una concatenata all’altra. Valutarne una sola alla volta non consente di comprenderlo a pieno.
Indipendentemente dal livello attuale di approfondimento, posso affermare che Bitcoin ha la tendenza di prendere le tue convinzioni e rimetterle nuovamente in discussione ogni volta che lo esamini da un’angolazione differente. Capirlo vuol dire studiarlo dal punto di vista delle teorie economiche, della teoria dei giochi, della probabilità ed incentivi, avere un buon grado di comprensione di temi energetici, crittografia, filosofia, ma anche temi legati al diritto, alla fiscalità, alla politica, solo per citarne alcuni.
Quelle che seguono quindi sono solamente riflessioni che riflettono il mio attuale grado di comprensione di questa tecnologia e che non vogliono essere né definitive, né esaustive.
In questo primo articolo, vorrei accompagnarvi in una breve analisi filosofica, mettendo in luce alcuni aspetti che mi portano a considerare Bitcoin un essere vivente del mondo digitale che mantiene però una diretta ed indissolubile connessione con il mondo reale.
Quando viene introdotta una nuova tecnologia sufficientemente avanzata, per chi non ne ha studiato i principi questa sarà indistinguibile dalla “magia” in quanto quest’ultima potrebbe sembrare la spiegazione più logica.
Vi mostrerò alcuni aspetti magici di Bitcoin che vi incuriosiranno talmente tanto da costringervi ad entrare nel “mondo dei matti” e scoprire quanto è profonda la tana del Bianconiglio!
UN PONTE TRA FISICO E DIGITALE
Uno degli aspetti che più mi affascina di Bitcoin è che può essere cose differenti per persone differenti, pur restando sempre fedele a sé stesso. Che tu lo veda come un oggetto da collezione, una riserva di valore, un asset, un mezzo di scambio, una valuta, un essere vivente del mondo digitale, una minaccia o altro, la tua opinione su di lui è irrilevante in quanto lui semplicemente esiste, e non puoi fare nulla per farlo “sparire”.
Ci sono solamente due scelte possibili per interagire: adottarlo o non adottarlo.
Credo sia corretto paragonare Bitcoin al Fuoco, all’elettricità, o ad una marea. Semplicemente esiste e dobbiamo prenderne atto. Ciascuno di noi poi è libero di interagirvi come più ritiene opportuno, ma la nostra opinione su di esso non lo cambierà.
Se lo studi con un po’ di attenzione, e ti spingi appena sotto la superficie, noterai che è Bitcoin, in virtù della sua immutabilità, a cambiarti. Cambierà il modo con cui vedi il mondo, inizierai a pensare ancora più a lungo termine, inizierai ad interessarti di privacy e autodeterminazione, capirai il gioco delle valute fiat e probabilmente darai meno peso agli infiniti dibattiti politici.
L’umanità adotta e porta con sé nel suo processo evolutivo le scoperte e le tecnologie che ne hanno migliorato le condizioni di vita: dalla scoperta del fuoco, alle prime tecnologie per la lavorazione dei metalli, fino ad arrivare alla scoperta dell’elettricità e di tutte le tecnologie che ne sono derivate, fino all’utilizzo di internet e alla nascita del mondo digitale.
Credo che Bitcoin sia qui per rimanere in un rapporto simbiotico e indissolubile con l’umanità, facendo da ponte tra il mondo reale ed il mondo digitale.
Infatti, se fino alla scoperta di Bitcoin il mondo digitale era completamente slegato dal mondo reale in cui viviamo, dove non esistono conseguenze per attori malevoli (es mail di spam e bot spam nei social network che possono propagare a costo zero) e dove non esiste l’unicità in quanto tutto può essere copiato senza costo un numero infinito di volte, ora abbiamo trasferito alcune proprietà del mondo reale nel mondo digitale.
Approfondiremo meglio questo aspetto nel seguito.
Siamo solo agli inizi…
AD MAIORA
P.S. Not financial advice
Leggi il post della serie IO SONO BITCOIN #2: I Bitcoin non esistono
Leggi il post della serie IO SONO BITCOIN #3: Un organismo vivente
0 commenti