Gli indirizzi P2PKH sono il tipo più comune di indirizzi all'interno di Bitcoin e sono quelli che di solito utilizziamo per effettuare transazioni in dette criptovalute. Scopri qui quali sono le sue caratteristiche e come funziona.
ASebbene ci siano nuovi script in Bitcoin che stanno guadagnando popolarità, il modo più comune nella rete per effettuare transazioni è tramite script Paga all'hash della chiave pubblica, o meglio conosciuto come P2PKH. All'inizio la rete ha utilizzato lo script Paga con chiave pubblica (P2PK), ma a causa della vulnerabilità di futuri attacchi da parte di computer quantistici, è stato cambiato in P2PKH per una maggiore sicurezza e protezione della rete. E da allora, questo script gioca un ruolo molto importante nella maggior parte delle transazioni effettuate in Bitcoin.
La verità è che sia P2PK che P2PKH sono molto simili. Ebbene, sia in P2PK che in P2PKH, gli utenti devono dimostrare un meccanismo crittografico complesso. Questo meccanismo si basa sulla dimostrazione di essere i veri proprietari della chiave pubblica per ricevere i pagamenti e della chiave privata per spendere il pagamento che ricevono. Ma la differenza principale tra P2PK e P2PKH, è che quest'ultimo consente che al momento della ricezione di una transazione l'utente non debba fornire la propria chiave pubblica completa al scriptPubKey. Una situazione che si è verificata all'interno degli script P2PK. Che ha inviato direttamente la chiave pubblica del destinatario della transazione.
Questa semplice modifica ha notevolmente migliorato la sicurezza di Bitcoin contro possibili attacchi che potrebbero essere effettuati con computer quantistici. Ma allo stesso tempo, ha anche migliorato la privacy delle transazioni, oltre a ridurre le dimensioni di ciascuna transazione, il che è ottimo per la scalabilità di Bitcoin. Ciò è dovuto al fatto fornire solo un hash lungo 20 byte invece del file chiave pubblica completare. Una situazione che ne ha impedito la conoscenza o la divulgazione, aumentando la sicurezza generale della rete.
Ma sicuramente ti chiedi come fa P2PKH a rendere tutto questo possibile? Quali meccanismi ne consentono il funzionamento? Bene, esamineremo tutto questo di seguito.
Come funziona uno script P2PKH?
L'operazione di uno script P2PKH inizia nel momento in cui il destinatario e il mittente si preparano a effettuare una transazione. A quel punto, il destinatario deve creare una coppia di chiavi pubblica e privata. Una volta create queste chiavi, il destinatario condividerà la propria chiave pubblica con l'emittente della transazione. Nel processo di codifica di queste chiavi, il destinatario crea un hash della chiave pubblica che trasmetterà al mittente in modo sicuro per eseguire la transazione. Quell'hash è la nostra criptovaluta o indirizzo Bitcoin. Se vuoi conoscere un po 'di questo processo di generazione puoi leggere il nostro articolo su Come si crea un indirizzo Bitcoin?
Ora, nel momento in cui l'emittente ha l'indirizzo Bitcoin, inizia con il processo di creazione della transazione. Questo processo porta all'uso di Bitcoin Script , per generare uno speciale sotto-script che farà parte del P2PKH. Questo sotto-script si chiama scriptSig e la sua funzione è quella di verificare che l'emittente abbia realmente la proprietà delle criptovalute che sta per spendere. Per fare ciò, prendi la chiave pubblica con cui l'emittente ha ricevuto in quel momento le criptovalute e verifica che abbia la chiave privata che gli consente di spendere. Una volta verificato questo passaggio, il mittente può quindi continuare con il processo di generazione dello script P2PKH.
La seconda parte del processo genera il sub-script scripPubKey. Questa parte dello script fornisce la potenza delle criptovalute inviate all'hash della chiave pubblica che l'emittente ha ricevuto. Unendo lo scriptSig e lo scriptPubKey abbiamo come risultato un P2PKH completo, la cui funzione può essere riassunta come segue:
Un emittente può spendere solo bitcoin che ha ricevuto presso un indirizzo pubblico di sua proprietà. Ma per spenderli, devi dimostrare che quell'indirizzo è davvero tuo. Quindi è necessario fornire la chiave pubblica e la chiave privata corrette per sbloccare la spesa.
Confermato questo punto, l'emittente invia a un altro indirizzo una certa quantità di monete che cessano di essere di sua proprietà per diventare proprietà di un altro utente, che può spendere quelle monete solo seguendo la stessa procedura.
Esempio di P2PKH
Diamo un'occhiata a un esempio per avere una spiegazione più dettagliata di come si verifica l'intero processo in Bitcoin. Se Maria vuole inviare una transazione standard in formato P2PKH a Pedro, allora Pedro deve avviare il processo creando la chiave privata e la chiave pubblica impostate in cui desidera ricevere la transazione.
Nel sistema Bitcoin, questo set di chiavi viene creato in modo sicuro utilizzando l'estensione Elliptic Curve Digital Signature Algorithm (ECDSA) con la curva secp256k1. Quindi la chiave pubblica generata viene trasformata utilizzando le funzioni SHA-256 e RIPEMD-160.
A questo punto, Pedro invia a Maria l'indirizzo, che inizia quindi il processo di generazione della transazione e dello script P2PKH. Maria inserisce i dati della transazione nel suo portafoglio, che poi tradurrà questi dati in uno script P2PKH. E dal momento in cui Maria preme "Invia" inizia il processo. La transazione viene inviata alla rete, dove i miner la prenderanno e la includeranno in un blocco. Alla fine della generazione di questo blocco, i nodi della rete inizieranno a svolgere le singole azioni di ciascuna di queste transazioni.
È in quel momento che il pagamento di María a Pedro diventa realtà. In questo modo, i nodi eseguiranno lo script P2PKH passando la proprietà delle monete che Maria ha inviato a Pedro, facendo sì che Pedro prenda la piena proprietà di dette monete. Nel caso in cui l'operazione generi una modifica, questa viene inviata a María, che ne manterrà la proprietà. Il resto delle monete che non fanno parte dell'invio di monete a Pedro o dello scambio di Maria, sono le commissioni che i minatori hanno preso per il loro lavoro.
Implementazione P2PKH
Il copione P2PKH è presente di default nei portafogli o borsellini che implementano il client Bitcoin praticamente dall'inizio del sistema. Così, pochi giorni dopo il lancio di Bitcoin e dopo aver minato i primi blocchi della rete, il 16 gennaio 2009, il formato P2PKH ha iniziato ad essere implementato nelle transazioni Bitcoin. Quindi questo script si trova nella maggior parte dei blocchi estratti che si trovano all'interno della blockchain.
La sua creazione è dovuta principalmente a due motivi:
- Satoshi Nakamoto Volevo che ci fosse un modo più semplice e facile che due utenti potessero condividere le loro chiavi pubbliche per effettuare transazioni. Pertanto, per convertire la chiave pubblica in un'espressione più breve e più facile da usare, è stata applicata una funzione hash che converte questa chiave in un insieme casuale di caratteri alfanumerici molto più gestibile e utilizzabile. Che viene utilizzato come indirizzo che può essere condiviso facilmente e in modo affidabile con qualsiasi utente.
- Come ECDSA è vulnerabile all'algoritmo di Shor modificato. Questo algoritmo può dedurre la chiave privata dalla chiave pubblica utilizzando un computer quantistico. Tuttavia, l'implementazione di P2PKH impedisce questo attacco. Impedendo che la chiave pubblica completa venga rivelata a un altro utente durante l'esecuzione di una transazione. Creazione di un ulteriore livello di sicurezza sulla chiave privata e sulla rete pubblica, fornendo un livello di protezione più elevato. Anche se questo è un po 'distante poiché la potenza quantistica necessaria per eseguire un attacco di successo di questo tipo è vicino a 1500 qubit.
Vantaggi e svantaggi dell'implementazione P2PKH
Vantaggi
Uno dei maggiori vantaggi dell'implementazione dello script P2PKH, e questo lo rende molto affidabile quando si effettuano transazioni, è perché riduce la possibilità di attacchi o minacce derivanti dai computer quantistici. Cosa potrebbero dedurre le chiavi private di un utente per mezzo della chiave pubblica che hanno fornito per ricevere una transazione. Ed è che grazie a P2PKH, le chiavi pubbliche non vengono mai rivelate o inviate. Bene, invece di inviare la chiave pubblica completa, viene utilizzato solo un hash.
Un altro grande vantaggio offerto da questo script è il semplicità e facilità d'uso. E quellogli indirizzi che implementano P2PKH sono molto più brevi e più gestibili. Il che a sua volta riduce anche la possibilità di commettere errori rispetto agli indirizzi P2PK.
Svantaggi
Sebbene gli indirizzi P2PKH siano molto più facili da usare, il processo di creazione di questi indirizzi è molto più complesso e difficile rispetto agli script P2PK. Pertanto, richiedono l'applicazione di molti passaggi o processi aggiuntivi a livello di programmazione per formare transazioni P2PKH. Tuttavia, questo è in qualche modo trasparente per gli utenti e per i dispositivi attuali questo non genera alcun effetto negativo sulle prestazioni.
Inoltre, poiché questo script è stato rilasciato e implementato molto prima SegWit, gli indirizzi ereditati non sono compatibili con portafogli o borsellini che implementano questo formato, come se lo facesse lo script P2SH. Sebbene sia possibile inviare una transazione da un indirizzo P2PKH a un indirizzo SegWit. Tuttavia, le commissioni per queste transazioni possono essere complessivamente elevate. Quindi, sebbene l'implementazione delle transazioni P2PKH svolga un ruolo importante nella rete Bitcoin, il suo utilizzo può essere influenzato e ridotto se gli utenti iniziano ad adottare SegWit di più.