P2PK
acronimo di: Pay-to-Public-Key
P2PK
acronimo di: Pay-to-Public-Key
Difficoltà: intermedio
Argomento: tecnologia
DEFINIZIONE
P2PK, Pay-to-Public-Key in italiano Paga alla Chiave pubblica, è il primo e più semplice metodo di pagamento su Bitcoin.
Si tratta di un tipo di ScriptPubKey (o locking script) che vincola la spesa dei bitcoin a una chiave pubblica specifica.
In questo caso, il pagamento non viene effettuato a un "indirizzo Bitcoin", ma direttamente a una chiave pubblica.
Storia e deprecazione
P2PK è stato introdotto da Satoshi Nakamoto nella prima versione di Bitcoin, ma è stato rapidamente deprecato a favore di P2PKH. Quest'ultimo migliora la sicurezza e la privacy, sostituendo la chiave pubblica in chiaro con il suo hash.
Funzionamento
Una transazione P2PK è una transazione in cui gli input utilizzano la chiave pubblica in chiaro.
Ad esempio, se Alice invia 1 BTC a Bob in una transazione P2PK, include direttamente la chiave pubblica di Bob nella transazione. Per spendere questi bitcoin, Bob dovrà fornire una firma digitale generata con la sua chiave privata corrispondente.
La chiave pubblica, derivata dalla chiave privata tramite crittografia a curva ellittica, può essere rappresentata in diversi formati:
-
Compressa (33 byte): contiene solo la coordinata x con un prefisso che indica la parità della coordinata y
-
Non compressa (65 byte): contiene sia la coordinata x che y
Prefisso | Contiene | Lunghezza (byte) | y | formato compresso |
---|---|---|---|---|
02 | x | 33 | pari | sì |
03 | x | 33 | dispari | sì |
04 | x, y | 65 | no |
Essendo la curva ellittica simmetrica rispetto all'asse x, nel formato compresso si memorizza solo x con l'indicazione della parità di y.
Lo script ScriptPubKey P2PK ha la seguente forma:
<Chiave pubblica da inviare> OP_CHECKSIG
Per sbloccare i fondi, il destinatario deve fornire una firma digitale valida, inserita nello scriptSig:
<SIGNATURE> (Firma digitale valida)
Un esempio dell'uso di P2PK è nella prima transazione Bitcoin, fatta il 12 gennaio 2009 da Satoshi a Hal Finney, presente nel blocco 170.
Satoshi stesso decise di abbandonare P2PK al posto di P2PKH per due motivi:
-
La crittografia a curva ellittica è vulnerabile a una versione modificata dell'algoritmo di Shor, che può risolvere il problema del logaritmo discreto sulle curve ellittiche. In parole semplici, ciò significa che in futuro un computer (es. quantistico) potrebbe essere in grado di ricavare una chiave privata partendo da una chiave pubblica. Pubblicando la chiave pubblica solo quando le monete vengono spese (e assumendo che gli indirizzi non vengano riutilizzati), un attacco di questo tipo diventa inefficace.
-
Poiché l'indirizzo è più piccolo (20 byte) della chiave pubblica, è più facile da stampare e più semplice da incorporare in supporti di archiviazione ridotti, come i codici QR.
P2PK è l'indirizzo che si vede più spesso nelle transazioni coinbase dei primi blocchi della blockchain. Ciò è dovuto al fatto che il miner originale Bitcoin Core utilizzava P2PK per la ricompensa di blocco quando creava nuovi blocchi.
- Vedi anche
- P2PKH (Pay-to-Public-Key-Hash)
- Public Key Chiave pubblica
- Script
- ScriptPubKey
aggiornato il 2025-02-19