Esplora passo dopo passo la crittografia a curva ellittica: dalla geometria delle curve reali fino alla firma digitale ECDSA che protegge ogni transazione Bitcoin.
Una curva ellittica Γ¨ definita dall'equazione generale:
Bitcoin usa la curva chiamata secp256k1, dove a=0 e b=7:
La curva Γ¨ simmetrica rispetto all'asse x: per ogni punto (x, y) sulla curva, esiste il suo simmetrico (x, βy). Questo significa che ogni valore di x positivo corrisponde a due punti: uno con y positivo e uno con y negativo.
Un punto sulla curva Γ¨ qualunque coppia (x, y) che soddisfa l'equazione. Nella crittografia Bitcoin, i punti vengono calcolati su un campo finito (modulo un numero primo enorme), ma la geometria di base rimane la stessa.
Per sommare due punti P e Q su una curva ellittica, si usa la regola della corda:
Il risultato Γ¨ sempre sulla curva: questa Γ¨ la proprietΓ magica che rende l'addizione ellittica un'operazione di gruppo chiusa.
Il caso speciale P = Q (raddoppio) usa la tangente alla curva nel punto P:
La curva reale usa numeri in virgola mobile con precisione infinita β impraticabile per un computer. Invece, Bitcoin lavora su un campo finito: tutti i calcoli sono fatti modulo un numero primo enorme p.
L'equazione diventa:
I punti non formano piΓΉ una curva liscia, ma un insieme discreto di punti interi su una griglia p Γ p. La struttura di gruppo Γ¨ tuttavia preservata: l'addizione di punti funziona esattamente come prima, ma con aritmetica modulare.
Nell'esempio interattivo a destra usiamo p = 23 (piccolo per visualizzare). In Bitcoin, p Γ¨ un numero a 256 bit.
kΓG significa aggiungere il punto G a se stesso k volte: G + G + G + β¦ (k volte). Con k = 2Β²β΅βΆ questo sarebbe impossibile direttamente, ma si usa l'algoritmo double-and-add:
Con soli logβ(k) operazioni si ottiene il risultato. Per k a 256 bit: massimo 512 operazioni.
La cosa affascinante Γ¨ che kΓG sembra saltare casualmente sulla griglia quando k cresce di 1. Non c'Γ¨ nessuna relazione visibile tra k e la posizione di kΓG β questo Γ¨ il nucleo matematico della sicurezza Bitcoin.
In Bitcoin, tutti usano esattamente gli stessi parametri per la curva ellittica. Questi valori sono definiti nello standard secp256k1 e sono completamente pubblici. La sicurezza non dipende dalla segretezza di questi parametri, ma dall'impossibilitΓ matematica di invertire la moltiplicazione scalare.
Il Punto Generatore G Γ¨ un punto speciale fisso sulla curva. Tutti i wallet Bitcoin del mondo derivano le loro chiavi moltiplicando G per una chiave privata diversa.
La chiave privata k Γ¨ un numero casuale a 256 bit. Deve rimanere segreto β chi lo conosce controlla i bitcoin associati.
La chiave pubblica Q = kΓG Γ¨ il risultato della moltiplicazione scalare del Punto Generatore G per k. Γ completamente sicuro condividere Q pubblicamente β da Q Γ¨ impossibile ricavare k.
La chiave pubblica viene poi compressa: si conserva solo la coordinata X piΓΉ un prefisso (02 se Y Γ¨ pari, 03 se Y Γ¨ dispari) β questo funziona perchΓ© dalla x si puΓ² sempre ricostruire la y (Β±β(xΒ³+7 mod p)).
Con ECDSA (Elliptic Curve Digital Signature Algorithm) puoi firmare un messaggio con la tua chiave privata k. Chiunque abbia la tua chiave pubblica Q puΓ² verificare che la firma sia tua β senza che tu abbia rivelato k.
In Bitcoin, ogni transazione contiene una firma ECDSA che prova che il proprietario della chiave privata ha autorizzato il trasferimento.
Bitcoin Report School Γ¨ un progetto open source completamente gratuito. Nessuna pubblicitΓ , nessun tracker, nessun paywall. Se questi strumenti ti sono stati utili, considera una donazione in bitcoin.