Autore: Der Gigi | Pubblicazione originale: 2022-2023 | Tradotto da: 31febbraio | Milano Trustless | Link: 21 MODI - Chapter 0.1 Bitcoin's Building Blocks
Uno degli elementi fondamentali per un sistema di questo tipo è la firma digitale - Satoshi Nakamoto
Si inizia a pensare con questo nuovo blocco di costruzione, piuttosto che con pezzi più piccoli. E infine, le cose che sembrano elementi si dissolvono e lasciano dietro di sé un tessuto di relazioni, che è il materiale che in realtà si ripete e dà struttura al [tutto] - Christopher Alexander
È quasi impossibile parlare di bitcoin in modo significativo senza una breve discussione sugli elementi costitutivi che lo fanno funzionare. Sebbene la crittografia a chiave pubblica, le firme digitali, le funzioni hash e le reti peer-to-peer non siano tra i primi argomenti che vengono sollevati durante un vivace aperitivo, questi costrutti esoterici hanno indubbiamente un certo fascino una volta adeguatamente compresi.
Anche se non intendo approfondire la matematica di questi concetti, credo che sia utile comprenderne l'idea generale in qualche dettaglio. Anche se non tutti avranno bisogno di imparare i dettagli della crittografia a curva ellittica, ci sono alcune cose che devono essere comprese se si vuole usare bitcoin in modo corretto. Per esempio, se si vuole diventare proprietari dei propri bitcoin, è necessario sapere cos'è una chiave privata, il che ci porta al primo elemento fondamentale del protocollo: le coppie di chiavi pubbliche e private.
Crittografia a chiave pubblica
La crittografia a chiave pubblica, nota anche come crittografia asimmetrica, è alla base di tutti i moderni protocolli crittografici, bitcoin compreso. Come sostengono James Dale Davidson e William Rees-Mogg in L'individuo sovrano, è questo insieme di trucchi matematici che è alla base di un cambiamento fondamentale delle dinamiche di potere nel nostro mondo.
Il principio di base è il seguente: a partire da un segreto, si genera la coppia di chiavi, costituita da una chiave pubblica e una privata. Queste chiavi sono asimmetriche, il che significa che se si chiude la porta con una di esse, si deve usare l'altra per aprirla.
Naturalmente queste non sono chiavi fisiche e non stiamo parlando di porte fisiche. Le chiavi sono dati, le porte sono algoritmi, bloccare significa criptare (scrambling dei dati) e sbloccare significa decriptare (unscrambling dei dati). Inoltre, anche le informazioni criptate - o firmate, come nel caso di bitcoin - sono dati.
Tutti i moderni sistemi di crittografia sono sistemi trasparenti. Sono costruiti in modo da garantire la sicurezza del sistema, anche se il nemico conosce tutto del sistema tranne il segreto personale [1]. Bitcoin è un sistema di crittografia trasparente, anche se non cripta alcun dato. In termini di crittografia, bitcoin utilizza solo hash crittografici e firme digitali, entrambi distinti dalla crittografia. In bitcoin non ci sono segreti. L'unico segreto è il vostro segreto personale, ovvero la vostra chiave privata. Se riuscite a mantenere la vostra chiave privata al sicuro, anche i vostri fondi/bitcoin saranno al sicuro.
Per riassumere: la crittografia a chiave pubblica viene utilizzata per creare due numeri matematicamente collegati. Un numero è condiviso con il pubblico, l'altro no. Il numero segreto viene chiamato chiave privata e quello condiviso chiave pubblica. Bitcoin è un moderno sistema crittografico che utilizza queste chiavi.
In bitcoin si usa la chiave privata per firmare i messaggi, il che ci porta al tassello successivo.
Le firme digitali
In generale, una firma è utile se è facile da creare, da verificare e difficile da falsificare. La firma di un documento fisico di solito implica che il documento è stato letto e compreso dalla persona che lo ha firmato, e la firma autentica non solo il documento - assicurando che non sia stato alterato a posteriori - ma anche il firmatario.
Nel mondo dei bit e dei byte, grazie alla crittografia a chiave pubblica, è possibile ottenere lo stesso risultato con la firma digitale.
La firma digitale è il risultato di una speciale funzione matematica che può essere applicata ai dati. Un'utente, chiamiamola Alice, può usare la sua chiave privata per firmare un messaggio arbitrario; altri utenti - tutti, in realtà - possono usare la chiave pubblica di Alice per verificare che sia stata lei, e solo lei, a creare quella firma.
Un corretto schema di firma digitale garantisce:
- integrità dei dati: garantisce che ciò che è stato firmato non sia stato alterato,
- autenticazione: assicurando che a firmare sia stato il proprietario (firmatario),
- e non ripudio: garantire che il firmatario non possa negare di aver creato la firma a posteriori.
In altre parole, la firma digitale di un messaggio lega l'identità del mittente al messaggio stesso, proprio come una normale firma lega una persona a un documento. Grazie alla crittografia, tuttavia, le garanzie che accompagnano la firma digitale sono molto più forti di quelle di una firma fisica. È praticamente impossibile falsificare una firma digitale creata con uno schema di crittografia forte. Oltre a queste forti garanzie di integrità e autenticazione, la firma digitale è facile da creare e verificare.
In sintesi: le firme digitali servono a verificare che un messaggio sia stato creato da un mittente noto e che non sia stato alterato durante il trasporto.
In bitcoin, le firme digitali sono utilizzate per firmare le transazioni. Solo le transazioni valide saranno sottoposte a hashing e raggruppate in un blocco, e solo i blocchi validi saranno sottoposti a hashing per poter essere aggiunti alla catena di blocchi esistente. Questo ci porta al prossimo tassello: le funzioni di hash.
Funzioni di hash
Una funzione di hash è una funzione unidirezionale che prende un input di lunghezza arbitraria e calcola una 'impronta digitale' di lunghezza fissa. Una funzione hash è anche chiamata funzione 'botola - trapdoor' perché è facile cadere attraverso una botola ma è impossibile uscirne. Allo stesso modo, è facile calcolare l'hash di un dato, ma è impossibile calcolare il contenuto originale, non criptato, di tale dato solo da quell'hash.
$ echo "Satoshi Nakamoto" | sha256sum
2662d47e3d692fe8c2cdb70b907ebb12b216a9d9ca5110dd336d12e7bf86073b
Il calcolo inverso è impossibile perché la gamma degli input validi è molto più grande dello spazio dei possibili output, il che significa, in sostanza, che l'informazione viene persa quando si calcola un hash.
In altre parole ne consegue che due dati diversi possono avere lo stesso hash. Questo è ciò che chiamiamo collisione di hash. La differenza tra le normali funzioni hash e le funzioni hash crittografiche sta nel modo in cui i dati di ingresso vengono mappati nello spazio dei possibili hash. Le funzioni hash crittografiche hanno determinate proprietà che assicurano l'impossibilità di trovare collisioni, cioè due input che producono lo stesso output. Inoltre, le funzioni di hash crittografiche assicurano che input leggermente diversi producano output molto diversi, tra le altre cose.
In bitcoin, le funzioni di hash sono utilizzate ovunque. Ad esempio, quello che chiamiamo 'mining' è il processo di ricerca di un numero che, inserito in un blocco potenzialmente valido, produca un output che soddisfi determinati criteri. La funzione di hash SHA256 è quella che produce questo risultato. Le funzioni hash sono utilizzate anche per generare indirizzi [2] , identificare script di riscatto, identificare transazioni e blocchi e altro ancora[3].
Le funzioni hash sono un elemento costituivo importante perché, in assenza di un'autorità centrale, i dati stessi sono tutto ciò che abbiamo per identificare e indicizzare le informazioni. Non possiamo consultare un indice o un registro centrale che contenga tutti i dati ordinatamente organizzati perché non esiste un'autorità di questo tipo. Questo ci porta all'ultimo pilastro: le reti peer-to-peer.
Reti peer-to-peer
Il problema delle normali reti di computer è di natura politica. Le reti informatiche tradizionali seguono solitamente il modello client-server, che pone un server al comando come autorità centrale della rete. Purtroppo, come abbiamo visto in passato, il server non sempre è al servizio dei suoi client. Il più delle volte i server si trasformano in dittatori, motivo per cui è giusto usare il termine 'master' invece di 'server' e parlare non di 'client' ma di 'slave'.
La via d'uscita da questo enigma è quella di rendere tutti i partecipanti alla rete uguali per concezione. Invece di padroni e schiavi, abbiamo nodi in una rete. Partecipanti uguali che non solo sono ugualmente privilegiati ma, cosa ancora più importante, sono equipotenti nei loro poteri.
Il fatto che bitcoin sia una rete peer-to-peer è di estrema importanza. A mio avviso, è il principio che deve essere insegnato e sostenuto più di ogni altro. Se non riusciamo a insegnare e a sostenere questo principio, la centralizzazione si insinuerà inevitabilmente, e con la centralizzazione arriva l'autorità centrale. Come la storia ha dimostrato più e più volte, il potere che l'autorità centrale porta con sé è troppo grande per essere contrastato. Inevitabilmente, qualsiasi autorità centrale abuserà dei suoi poteri, ed è per questo che bitcoin ottimizza la decentralizzazione prima di ogni altra cosa.
Mettiamo tutti questi concetti insieme
Come vedremo nel Capitolo 1, molte persone pensavano che sarebbe stato possibile ideare un sistema di denaro digitale utilizzando questi tasselli. A quanto pare avevano ragione, ma c'è voluto il genio di Satoshi Nakamoto per far funzionare tutto.
Bitcoin funziona davvero in modo misterioso. Gli elementi esoterici sopra descritti sono incollati insieme dalle regole della teoria dei giochi, creando un sistema di autoregolazione diverso da qualsiasi altro mai visto prima.
Inoltre, come brevemente accennato sopra, il linguaggio per descrivere questo sistema e i suoi elementi costitutivi è terribilmente impreciso. Parliamo di 'chiavi', 'indirizzi', 'portafogli', 'monete', "transazioni" e così via, spesso dimenticando che ciò che stiamo descrivendo sono i dati e la loro rappresentazione. Con un linguaggio impreciso come questo, è fin troppo facile avere in testa un'immagine imprecisa del funzionamento di bitcoin.
Purtroppo non possiamo fare molto al riguardo. Il linguaggio e la metafora sono i nostri principali strumenti per dare un senso alle cose. Permettetemi quindi di descrivere metaforicamente una transazione bitcoin e di correggere questa descrizione subito dopo, naturalmente con altre metafore.
Supponiamo che abbiate alcuni sats nel vostro portafoglio e che vogliate inviare 615 sats ad Alice. Potreste pensare che tutto ciò che dovete fare è aprire il vostro portafoglio, estrarre 615 sats e inviarli ad Alice, proprio come l'allegato di un'e-mail.
Beh, non è questo che succede. Cioè, per niente.
Prima di tutto, i sats che possedete non sono nel vostro portafoglio. Si trovano in un caveau trasparente nel cielo, visibile a chiunque sia disposto a guardare. Il vostro portafoglio contiene la chiave che apre il caveau. Quando inviate 615 sats ad Alice, togliete il vostro lucchetto dal caveau e lo sostituite con quello di Alice. Ora i sats appartengono ad Alice. Per inviarli a Bob, Alice deve usare la sua chiave per rimuovere il lucchetto e mettere quello di Bob, poi la chiave di qualcun altro, e così via.
Ma, vi chiederete, questo non trasferirebbe tutti i miei fondi ad Alice? Esatto, ed è per questo che ad ogni transazione vengono creati nuovi caveau. In questo caso, uno per Alice e uno per voi per riavere il vostro resto. Altri due dettagli:
- Le chiavi non sono chiavi fisiche, ma incantesimi che devono essere 'pronunciati'.
- I sats al di fuori dei caveau non esistono.
Per descrivere quanto sopra nel linguaggio degli elementi che costituiscono la struttura di Bitcoin: per avviare un trasferimento di fondi, Alice deve usare la sua chiave privata per firmare una transazione. Uno dei risultati di questa transazione è l'indirizzo bitcoin di Bob, che deriva dalla sua chiave pubblica. Una volta firmata la transazione e trasmessa sulla rete peer-to-peer, la firma digitale di Alice viene controllata da tutti. Se la transazione è ritenuta valida, viene confermata e il trasferimento di fondi è completato. Il vecchio caveau di Alice è ora vuoto. Sono stati creati due nuovi caveau: uno per Alice (il resto) e uno per Bob[4].
Anche se questo quadro è ancora una volta incompleto, è una descrizione in qualche modo accurata di ciò che accade quando i sats cambiano di mano. Spero che nel corso di questo libro inizi a formarsi nella vostra mente un'immagine sempre più chiara. Prima di immergerci nelle sfumature e nei tecnicismi di bitcoin, diamo un'occhiata alla sua preistoria per poterne apprezzare i predecessori e le origini.
Note
1 Questo è noto come principio di Kerckhoff o massima di Shannon. È l'opposto della 'sicurezza attraverso l'oscurità
2 Sebbene in bitcoin si utilizzi per lo più SHA256, per generare gli indirizzi si utilizza una seconda funzione di hash oltre a SHA256: RIPEMD160
3 Si veda questa risposta completa di Pieter Wuille su StackExchange per un lungo elenco di componenti che utilizzano hash e funzioni hash: https://archive.is/5qZTp
4 Quello che qui chiamo 'caveau' è ciò che nel mondo Bitcoin chiamiamo UTXO
Se vuoi supportare le traduzioni di #MilanoTrustless
Milano Trustless (31febbraioMI)
#MilanoTrustless è un progetto personale per #orangepillare 🟠💊 Milano e infondere ai (meravigliosi) milanesi la mentalità #trustless
follow me :
Related Posts
10分でわかるビットコイン
Aug 28, 2023
Bitcoin Em 10 Minutos
Aug 28, 2023
Bitcoin dalam 10 Menit
Aug 28, 2023