mi e’ stato chiesto di recente un tutorial sui bitcoins… non che abbia molto senso per uno che mastica la materia, visto che il paper scientifico dell’autore (Satoshi Nakamoto) e’ pubblico qui
cmq, eccovi la spiegazione spicciola…
Il tutto si basa sul costo computazionale di ottenere un particolare hash. Un hash e’ una serie di caratteri alfanumerici, rappresentante un numero, ottenuto dall’applicazione di una formula matematica. La piu’ semplice e conosciuta e’ l’operazione di modulo. Dividendo un numero per un altro, otteniamo un risultato. Questa operazione puo’ dare un risultato intero, o frazionario. Se ci limitiamo al risultato intero, avremo sicuramente un resto. L’operazione di modulo e’ una divisione da cui otteniamo solo il resto e non il valore della divisione.
Per capirci… 13 % 3 = 1
% e’ il segno che contraddistingue solitamente in informatica l’operazione di modulo.
L’operazione sopra avrebbe dato come risultato della divisione 4, e come resto 1. Concordate?
k, ora immaginate di fare quest’operazione tra numeri enormi, avremo risultati piccoli e gestibili, ma sareste in grado di predire tali risultati, senza eseguire l’intera operazione del modulo?
forse per l’operazione di modulo la cosa e’ semplicistica e forse anche il problema e’ semplificabile, ma nel caso dei bitcoin, viene applicata una funzione di hash piuttosto robusta (difficile ottenere lo stesso risultato con conti di complessita’ inferiore)
tutto il gioco si bassa sul costo di eseguire tali conti su di un calcolatore, e sul numero di persone che scambiano transazioni alla luce del sole…
la ricerca di un bitcoin, non e’ altro che la ricerca di una stringa di caratteri che abbia un determinato numero di 000000 nella parte iniziale di tale stringa/sequenza… piu’ sono gli zeri consecutivi, piu’ la difficolta’ della ricerca e’ alta (sistema inflazionistico intrinseco del sistema)
la funzione di hash prende quindi in ingresso il risultato della precedente computazione che aveva ottenuto un “bitcoin” (o hash con determinate caratteristiche: la sequenza di zeri), prende un numero che rappresenta la difficolta applicata (o numeri di zeri cercati), e un numero che rappresenta un il nostro tentativo di ricerca… ovvero, ogni volta che facciamo il calcolo, e non otteniamo quello che cerchiamo, avendo applicato la medesima catena di transazioni e difficolta’, dobbiamo cambiare qualcosa per ottenere forse un bitcoin, dobbiamo incrementare quindi questo terzo parametro, nella speranza di ottenere cio’ che cerchiamo
via via va a costruirsi una catena, e la catena piu’ lunga diventa il riferimento per tutti nella ricerca dei bitcoin successivi… per ottenere una catena lunga serve un enorme capacita’ calcolo e qui sta il punto di tutto, se gli onesti alla luce del sole sono piu’ di quelli che remano contro il sistema, il sistema e’ stabile, e sicuro
did I miss something? fate domande che cosi’ aggiungo info 🙂