Questo testo è stato tradotto automaticamente e quindi può differire dall'originale. Nessun diritto può derivare da questa traduzione.
Come funziona una blockchain? Parte 1: impronta digitale
Un'impronta digitale è unica. Se hai l'impronta digitale di una persona, puoi facilmente verificare se appartiene a una persona specifica. Se si possiede solo un'impronta digitale, è (senza una lista precedente di impronte digitali raccolte) praticamente impossibile trovare la persona a cui appartiene senza controllare tutte le impronte digitali di ogni singola persona. Matematicamente parlando, è anche possibile determinare l'impronta digitale di un pezzo di informazione.
Hash
Questa impronta digitale, chiamata anche hash, costituisce la base di una blockchain. Per capire perché le impronte digitali sono così importanti, è fondamentale capire prima come funzionano.
Ogni persona può determinare l'impronta digitale di un pezzo di informazione calcolando una somma matematica (complessa). Non importa quanto sia lunga l'informazione (così come le impronte digitali delle persone non dipendono specificamente dalla loro altezza!). Avendo l'informazione e l'impronta digitale, puoi facilmente verificare se corrispondono.
In Bitcoin, una blockchain per le transazioni finanziarie, viene utilizzato il cosiddetto metodo di hash ‘SHA-256’. È possibile calcolare personalmente l'impronta SHA-256 di un pezzo di testo, ad esempio qui. L'hash del testo “Tommy” è ad esempio:
5bee7cef227fe327178bd04bb7cc75ba9a36f1b8867ba1025430761a226539e9.
Ora cambiamo la lettera maiuscola in una minuscola: qual è l'hash di “tommy”?
044f4b3501cd8e8131d40c057893f4fdff66bf4032ecae159e0c892a28cf6c8e
Anche se c'è solo una lettera diversa, l'impronta è completamente diversa! Non è illogico: l'impronta digitale tua e di tuo fratello o sorella, anche se siete molto simili, sarà completamente diversa.
Se ti dessi solo l'hash “044f4b..” di sopra, l'unico modo per scoprire a quale testo corrisponde sarebbe di provare tutte le possibili combinazioni di testo. Solo dopo molto tentativi scopriresti che l'impronta corrisponde al testo “tommy”. Gli matematici chiamano il metodo dell'impronta one-way: calcolare l'impronta di un'informazione è semplice, ma trovare l'informazione corrispondente a un'impronta è praticamente impossibile.
Proof of work
La casualità degli hash consente di utilizzarli per un'applicazione interessante. Come hai visto sopra, le lettere e i numeri nell'impronta sono molto casuali. Matematicamente parlando, la probabilità che un'impronta di un certo testo inizi con uno '0' è 1 su 16. Se ti chiedessi di trovare un testo la cui impronta iniziasse con un '0', in media dovresti provare sedici testi (e, se sei sfortunato, di più!). Se ti chiedessi un'hash che inizi con due zeri, ci vorrebbero in media 16 x 16 = 256 tentativi; infatti, se il primo numero è uno '0', c'è solo una probabilità di 1/16e che il secondo numero sia zero.
Il numero di zeri con cui inizia un hash indica quindi il numero di testi che hai dovuto provare (in media) prima di ottenere quell'hash. Quell'hash può essere utilizzato come una sorta di ‘prova di lavoro’ (proof of work). Se mi mostri un testo la cui impronta inizia con due zeri, so che approssimativamente hai dovuto calcolare un hash 256 volte.
Tornando alla blockchain: cosa significano queste impronte digitali? Nella blockchain, vengono accettati solo nuovi blocchi quando hai dimostrato di aver fatto un certo quantitativo di lavoro di calcolo. Ciò impedisce a chiunque di aggiungere blocchi casualmente: la potenza di calcolo costa denaro e il calcolo stesso richiede tempo. Poiché è molto costoso avere sempre più potenza di calcolo rispetto agli altri partecipanti, è praticamente impossibile ottenere il controllo esclusivo di una blockchain!