This article has been translated from English to Italian.

In questa lezione impareremo come funziona effettivamente una firma digitale in Bitcoin e altre criptovalute.

Per arrivare a questo punto, abbiamo dovuto prima imparare diversi concetti tecnici, poiché sono gli "elementi costitutivi" necessari per creare una firma digitale:

Se NON hai familiarità con questi concetti, sono stati spiegati in modo semplice nelle lezioni precedenti. Esplora i link qui sopra per saperne di più.

Come viene creata una firma digitale?

Diamo un'occhiata a come viene creata una firma digitale passo dopo passo:

  1. Quando vuoi inviare bitcoin, il tuo portafoglio crea un messaggio di transazione. Questo messaggio contiene informazioni come la quantità di bitcoin che desideri inviare e l'indirizzo del destinatario.
  2. Questo messaggio viene sottoposto a una funzione hash.
  3. La funzione hash produce un output noto come"hash del messaggio" o semplicemente"hash".
  4. Questo hash del messaggioviene poicriptato con la tua chiave privata.
  5. Il messaggio crittografato diventala "firma digitale".

Ecco un diagramma di flusso di questo processo:

How a Digital Signature is Created

Quindi, alla fine di questo processo, il tuo portafoglio ha creato due "elementi":

  1. Messaggio di transazione
  2. Firma digitale (un hash crittografato del messaggio di transazione)

A questo punto, non è stato ancora inviato nulla alla rete Bitcoin.

Se non l'hai notato, il messaggio di transazione stesso è necessario come "ingrediente" per creare la firma digitale.

Quindi non usi solo la tua chiave privata per creare una firma digitale... usi la tua chiave privata E l'hash del messaggio di transazione.

Ciò significa che non puoi utilizzare questa firma digitale per un'altra transazione. Se provassi a utilizzare questa firma digitale in una seconda transazione, questa verrebbe rifiutata dalla rete Bitcoin perché la firma digitale si basa esclusivamente sui dati della prima transazione.

Ogni firma digitale è unica per una specifica transazione.

Come viene verificata una firma digitale?

Per poter spendere bitcoin da un particolare indirizzo Bitcoin, è necessario dimostrare la "proprietà" (o: conoscenza) della chiave privata che è accoppiata con la chiave pubblica associata a quell'indirizzo.

Ma vuoi farlo senza dover rivelare la tua chiave privata.

Una firma digitale è qualcosa che puoi usare per DIMOSTRARE che conosci la chiave privata collegata a una chiave pubblica, senza dover rivelare la chiave privata vera e propria.

Vediamo come funziona:

  1. Quando avvii una transazione Bitcoin, il software del tuo portafoglio fornisce in realtà tre "elementi" alla rete Bitcoin: il messaggio di transazione originale, la firma digitale e la tua chiave pubblica (che è collegata all'indirizzo in cui è attualmente memorizzato il bitcoin che desideri inviare).
  2. Una volta che un nodo Bitcoin riceve questi "elementi", li separerà.
  3. Prenderà il messaggio di transazione originale e lo eseguirà attraverso la stessa funzione hash che hai usato in precedenza. (Tutto il software Bitcoin utilizza la stessa funzione hash.) Per quanto riguarda la firma digitale, utilizzerà la chiave pubblica che hai fornito per decrittografarla.
  4. Entrambi gli hash saranno quindi confrontati.
  5. Entrambi gli hash corrispondono esattamente?
  6. Se entrambi gli hash corrispondono, ciò dimostra che sei il vero proprietario del bitcoin che desideri inviare.

Ecco un diagramma di flusso di questo processo:

How a Digital Signature is Verified

Ci sono due cose da sottolineare:

1. Essere in grado di decriptare con la chiave pubblica dimostra l'identità del mittente.

Nel passaggio 3, una volta che un nodo è in grado di decriptare la firma digitale, questo dimostra la tua "identità".

Ricorda, poiché una chiave privata e una chiave pubblica sono matematicamente collegate, se sei in grado di decriptare un messaggio con la mia chiave pubblica, significa che l'ho criptato con la mia chiave privata.

Se non sei riuscito a decifrare il messaggio, significa che è stato cifrato con la chiave privata di qualcun altro. E questo significa che il messaggio non proviene da me.

2. Gli hash che corrispondono esattamente dimostrano che il messaggio non è stato alterato.

Nel passaggio 6, controllando che entrambi gli hash corrispondano esattamente, ci si assicura che il messaggio originale non sia stato alterato.

È importante saperlo perché, a differenza della firma digitale che è crittografata, il messaggio della transazione originale è in chiaro perché tutte le transazioni Bitcoin sono pubbliche e visibili a tutti.

Ricorda, qualsiasi piccola modifica produrrebbe un hash completamente diverso. Quindi se qualcuno dovesse intercettare il messaggio della transazione originale mentre è in viaggio verso un nodo e modificarlo (ad esempio per inviare il bitcoin al suo indirizzo), quando il messaggio passa attraverso la funzione hash, produrrebbe un hash completamente diverso dalla firma digitale.

Simile a come una firma scritta a mano collega una persona a un documento specifico, una "firma digitale" che utilizza la crittografia... crittograficamente... collega l'identità a un messaggio specifico.

Sommario

Ora che hai capito come viene creata e verificata una firma digitale, ecco una GRANDE panoramica di cosa significhi effettivamente "firmare" una transazione e come la "firma digitale" del mittente viene utilizzata per verificare la proprietà dei bitcoin che desidera inviare:

Digital Signature Process