In questo piccolo articolo vediamo velocemente i protocolli standard on-chain utilizzati per ricevere bitcoin nel corso della sua evoluzione, evidenziando alcune distinzioni fondamentali che conferiscono un carattere unico a ciascun metodo.
P2PK
Esempio di indirizzo P2PK: 0411db93e1dcdb8a016b49840f8c53bc1eb68a382e97b1482ecad7b148a6909a5cb2e0eaddfb84ccf9
74446 4f82e160bfa9b8b64f9d4c03f999b8643f656b412a3
Pay-to-Public-Key (P2PK) rappresenta il metodo originario per ricevere bitcoin, caratterizzato dall’assenza di un indirizzo specifico. Invece, conformemente alla sua denominazione, i bitcoin vengono inviati direttamente a una chiave pubblica, che viene esposta; il P2PK ha perso popolarità a causa dei suoi costi elevati, minore privacy e della ridotta sicurezza.
P2PKH
Esempio di indirizzo P2PKH: 12higDjoCCNXSA95xZMWUdPvXNmkAduhWv
Pay-to-Public-Key-Hash (P2PKH) era già disponibile fin dai primi giorni di bitcoin e comparve sulla blockchain meno di due settimane dopo il primo blocco. Rispetto al P2PK, il P2PKH introduceva notevoli miglioramenti, tra cui l’adozione di un indirizzo, questi indirizzi incorporano un checksum che contribuisce a prevenire errori di battitura e la perdita di bitcoin. Gli indirizzi P2PKH generalmente consistono in 34 o 33 caratteri e vengono codificati nel formato Base58. Iniziano con il prefisso “1” e attualmente gestiscono il 43% della supply di bitcoin minati, una percentuale superiore a qualsiasi altro tipo di indirizzo. La creazione di un indirizzo P2PKH prevede l’applicazione della chiave pubblica alle funzioni di hash SHA-256 e RIPEMD-160. Ciò riduce la quantità di dati, così da risparmiare spazio nei blocchi e ridurre le spese di transazione. Inoltre, introduce un ulteriore livello di resistenza alla decodifica della chiave privata, aggiungendosi alla robustezza della curva ellittica secp256k1.
P2SH
Esempio di indirizzo P2SH: 342ftSRCvFHfCeFFBuz4xwbeqnDw6BGUey
Pay-to-Script-Hash (P2SH) è stato implementato nel protocollo Bitcoin attraverso un soft fork, in accordo con la proposta BIP 16/2012. Presenta notevoli somiglianze con P2PKH, ma la distinzione principale risiede nella creazione dell’indirizzo mediante l’hashing di uno script di redeem, anziché attraverso l’hashing di una singola chiave pubblica. Gli indirizzi sono caratterizzati da una lunghezza fissa di 34 caratteri e iniziano con il prefisso “3”, come specificato nel BIP 13. Uno script di redeem può essere concepito come un insieme di istruzioni codificate che delineano come i bitcoin ricevuti all’indirizzo P2SH potranno essere “spesi in futuro”. Le opzioni sono diverse e comprendono, ad esempio, l’utilizzo di diverse chiavi pubbliche. A differenza di P2PKH, è il destinatario a definire i dettagli dello script, e le istruzioni di spesa rimangono private fino al momento in cui i bitcoin vengono effettivamente spesi dall’indirizzo. L’utilizzo più diffuso di P2SH è stato quello di generare indirizzi Nested SegWit e portafogli multisig. Ad esempio, uno script potrebbe comprendere tre chiavi pubbliche e stabilire che le firme di almeno due di esse possano autorizzare la vendita dei bitcoin (indirizzo multisig 2 su 3).
P2WPKH
Esempio di indirizzo P2WPKH: bc1qc0ttuv7vhhle3y8hh920s4rzf3036gxz7qv8gz
Pay To Witness Public Key Hash – Questa era una caratteristica di segwit, (l’abbreviazione di Segregated Witness). Invece di utilizzare i parametri scriptSig per verificare la validità della transazione, c’è una nuova parte della transazione chiamata witness, dove avviene la validazione.