₿itcoinItaliaNetwork 

P2PKH

acronimo di: Pay-to-Public-Key-Hash

Difficoltà: intermedio

Argomento: tecnologia


DEFINIZIONE

Pay-to-Public-Key-Hash (P2PKH) è un tipo di transazione che è stato disponibile fin dall'inizio di Bitcoin e apparve per la prima volta sulla blockchain meno di due settimane dopo il blocco di genesi.
Rispetto a P2PK, Pay-to-Public-Key, P2PKH introduce miglioramenti significativi, come l'uso di un indirizzo. Gli indirizzi contengono un checksum, che aiuta a prevenire errori di battitura e la perdita di bitcoin.

Gli indirizzi P2PKH sono solitamente lunghi tra i 33 e i 34 caratteri (ma possono arrivare a un minimo di 26) e sono codificati nel formato Base58. Iniziano con il prefisso "1".

La creazione di un indirizzo P2PKH prevede l'applicazione delle funzioni di hash SHA-256 e RIPEMD-160 su una chiave pubblica.
Questo processo riduce la quantità di dati, contribuendo a risparmiare spazio nel blocco e a diminuire le commissioni di transazione. Inoltre, aumenta la sicurezza contro l'ingegneria inversa della chiave privata, oltre alla già consolidata protezione offerta dalla curva ellittica secp256k1.

P2PKH: Funzionamento e Vantaggi

P2PKH, ovvero "Pay-to-Public-Key-Hash", consente di spendere bitcoin attraverso l'hash di una chiave pubblica. Si tratta del primo tipo di indirizzo Bitcoin, noto anche come Legacy, che inizia con "1" e può variare da 26 a 36 caratteri, ad esempio:

1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa

Questa tipologia di indirizzi ha sostituito P2PK, che utilizzava direttamente la chiave pubblica, apportando maggiore sicurezza. Con l'introduzione di SegWit gli indirizzi P2PKH hanno perso popolarità, ma rimangono fondamentali per comprendere il funzionamento degli script Bitcoin. Le commissioni medie per le transazioni da un indirizzo P2PKH sono più alte rispetto a quelle di SegWit, poiché le transazioni legacy occupano più spazio nei blocchi.

Esempio di Transazione P2PKH

In una transazione P2PKH, gli input vengono bloccati tramite lo ScriptPubKey P2PKH. L'hash della chiave pubblica funge da indirizzo, rendendo P2PKH uno dei tipi di script più comuni.
Per esempio, se Alice vuole inviare 1 BTC a Bob, quest'ultimo fornisce un indirizzo del suo wallet ad Alice, che lo include nella transazione. Quando Bob vorrà spendere i bitcoin ricevuti, dovrà firmare la transazione con la chiave privata associata alla chiave pubblica il cui hash è presente nella transazione di Alice.

Lo script di blocco P2PKH include l'hash della chiave pubblica e utilizza i seguenti opcode:

OP_DUP OP_HASH160 <indirizzo> OP_EQUALVERIFY OP_CHECKSIG

Per risolvere lo script, il proprietario dell'indirizzo deve fornire la chiave pubblica originale e una firma valida.

Vantaggi di P2PKH rispetto a P2PK

Satoshi Nakamoto decise di adottare P2PKH al posto di P2PK per due motivi principali:

  • Maggiore sicurezza contro attacchi futuri: La crittografia a curva ellittica (ECC), usata per le chiavi pubbliche e private, potrebbe essere vulnerabile a un futuro attacco con computer quantistici in grado di risalire alla chiave privata dalla chiave pubblica. Con P2PKH, la chiave pubblica viene rivelata solo al momento della spesa, riducendo il rischio di esposizione.

  • Maggiore efficienza: L'hash di una chiave pubblica è più piccolo (20 byte), facilitandone la stampa e l'incorporazione in supporti ridotti come i codici QR.


aggiornato il 2025-02-16