₿itcoinItaliaNetwork 

Public Key

Chiave pubblica

Difficoltà: base

Argomento: tecnologia


DEFINIZIONE

Una chiave pubblica è la chiave che viene data ad altre persone come destinazione per ricevere i pagamenti, potremmo considerarla l’equivalente di un indirizzo fisico o di una e-mail.

È l’informazione che occorre fornire per farsi inviare criptovalute. In un tipico sistema a chiave pubblica, un utente genera una chiave privata e una chiave pubblica, mantiene la chiave privata segreta e può fornire la chiave pubblica a tutti.

Tali destinatari possono crittografare le informazioni con la chiave pubblica, e queste possono essere decrittate con la chiave privata ma non possono essere decrittate con la stessa chiave pubblica a causa dell'asimmetria della coppia di chiavi.

Una chiave privata può essere convertita in una chiave pubblica, ma una chiave pubblica non può essere riconvertita in una chiave privata perché la matematica funziona solo in un modo.

La chiave pubblica viene calcolata dalla chiave privata utilizzando la moltiplicazione della curva ellittica, che è irreversibile: K = k * G, dove k è la chiave privata, G è un punto costante chiamato punto generatore e K è la chiave pubblica risultante. L'operazione inversa, nota come "trovare il logaritmo discreto" - calcolare k se si conosce K - è difficile quanto provare tutti i possibili valori di k, cioè una ricerca a forza bruta.

La moltiplicazione della curva ellittica è un tipo di funzione che i crittografi chiamano funzione "unidirezionale": è facile da eseguire in una direzione (moltiplicazione) e impossibile da eseguire nella direzione inversa ("divisione", o trovare il logaritmo discreto) . Il proprietario della chiave privata può facilmente creare la chiave pubblica e quindi condividerla con il mondo sapendo che nessuno può invertire la funzione e calcolare la chiave privata dalla chiave pubblica.

Generazione di una chiave pubblica

Partendo da una chiave privata sotto forma di un numero k generato casualmente, lo moltiplichiamo per un punto predeterminato sulla curva chiamato punto generatore G per produrre un altro punto da qualche altra parte sulla curva, che è la chiave pubblica corrispondente K. Il punto generatore è specificato come parte dello standard secp256k1 ed è sempre lo stesso per tutte le chiavi in bitcoin.

Formato della chiave pubblica nelle transazioni bitcoin

Una chiave pubblica Bitcoin può essere nel formato non compressa, o nel formato compresso.

Chiave pubblica non compressa

Quando una chiave pubblica è rappresentata in formato non compresso, ha la seguente struttura:

  • 04: prefisso Indica che è una chiave pubblica non compressa.
  • X (32 byte): La coordinata x del punto sulla curva.
  • Y (32 byte): La coordinata y del punto sulla curva.

Quindi, la lunghezza totale della chiave pubblica non compressa è:
1 byte (prefisso 04) + 32 byte (x) + 32 byte (y) = 65 byte (520 bit).

Chiave pubblica compressa

Per risparmiare spazio, è possibile comprimere la chiave pubblica.

Le curve ellittiche utilizzate nella crittografia per Bitcoin sono simmetriche rispetto all'asse X. Questo significa che se un punto (x, y) si trova sulla curva, allora anche il punto (x, -y) si trova sulla curva.

Conoscendo la coordinata x, esistono solo due possibili valori per y (uno positivo e uno negativo rispetto alla curva).

In questo caso, il prefisso diventa:

  • 02 Se la coordinata y è pari.
  • 03 Se la coordinata y è dispari.

Al quale seguono i 32 byte della coordinata x

Quindi, la chiave pubblica compressa è lunga 33 byte (264 bit) invece di 65.

La chiave pubblica viene usata nelle transazioni di tipo P2PK. Tuttavia, per le transazioni Bitcoin, generalmente si usa l’indirizzo Bitcoin, che è una derivazione dell'hash della chiave pubblica.

Indirizzo bitcoin ottenuto dalla chiave pubblica

L'indirizzo Bitcoin è derivato dalla chiave pubblica attraverso l'uso dell'hashing crittografico unidirezionale.

  • Vedi anche
  • Address Indirizzo
  • ECC (Elliptic-Curve Cryptography) Crittografia a curva ellittica
  • Private Key Chiave privata
  • Secp256k1
  • Xpub (Extended Public Key) Chiave pubblica estesa

aggiornato il 2025-02-16