Les adresses P2PKH sont le type d'adresses le plus courant dans Bitcoin, et ce sont celles que nous utilisons habituellement pour effectuer des transactions dans lesdites crypto-monnaies. Découvrez ici quelles sont ses caractéristiques et comment cela fonctionne.
ABien qu'il existe de nouveaux scripts dans Bitcoin qui gagnent en popularité, le moyen le plus courant sur le réseau d'effectuer des transactions consiste à utiliser des scripts Payer au hachage de clé publique, ou mieux connu sous le nom de P2PKH. Au début, le réseau a utilisé le script Payer à la clé publique (P2PK), mais en raison de la vulnérabilité de subir une future attaque par des ordinateurs quantiques, il a été basculé vers P2PKH pour une plus grande sécurité et protection du réseau. Et depuis, ce script joue un rôle très important dans la plupart des transactions effectuées en Bitcoin.
La vérité est que P2PK et P2PKH sont très similaires. Eh bien, à la fois en P2PK et P2PKH, les utilisateurs doivent démontrer un mécanisme cryptographique complexe. Ce mécanisme est basé sur la preuve qu'ils sont les véritables propriétaires de la clé publique pour recevoir les paiements et de la clé privée pour dépenser le paiement qu'ils reçoivent. Mais la principale différence entre P2PK et P2PKH, est que ce dernier permet qu'au moment de la réception d'une transaction, l'utilisateur n'ait pas à fournir sa clé publique complète au scriptPubKey. Une situation qui s'est produite dans les scripts P2PK. Cela a directement envoyé la clé publique du destinataire de la transaction.
Ce simple changement a grandement amélioré la sécurité de Bitcoin contre d'éventuelles attaques qui pourraient être menées avec des ordinateurs quantiques. Mais en même temps, cela a également amélioré la confidentialité des transactions, ainsi que la réduction de la taille de chaque transaction, ce qui est excellent pour l'évolutivité de Bitcoin. Cela est dû au fait fournir juste un hachage de 20 octets au lieu du clé publique compléter. Une situation qui l'a empêchée d'être connue ou divulguée, augmentant la sécurité générale du réseau.
Mais vous vous demandez sûrement comment P2PKH rend tout cela possible? Quels mécanismes permettent son fonctionnement? Eh bien, nous examinerons tout cela ci-dessous.
Comment fonctionne un script P2PKH?
Le fonctionnement d'un script P2PKH commence au moment où le destinataire et l'expéditeur se préparent à effectuer une transaction. À ce stade, le destinataire doit créer une paire de clés publique et privée. Une fois ces clés créées, le destinataire partagera sa clé publique avec l'émetteur de la transaction. Lors du processus de codage de ces clés, le destinataire crée un hachage de la clé publique qui sera transmis à l'expéditeur de manière sécurisée pour effectuer la transaction. Ce hachage est notre adresse de crypto-monnaie ou Bitcoin. Si vous voulez en savoir un peu plus sur ce processus de génération, vous pouvez lire notre article sur Comment créer une adresse Bitcoin?
Désormais, dès que l'émetteur a l'adresse Bitcoin, cela commence par le processus de création de la transaction. Ce processus conduit à l'utilisation de Script Bitcoin, pour générer un sous-script spécial qui fera partie du P2PKH. Ce sous-script s'appelle scriptSig et sa fonction est de vérifier que l'émetteur est bien propriétaire des crypto-monnaies qu'il va dépenser. Pour ce faire, il prend la clé publique avec laquelle l'émetteur a reçu les crypto-monnaies à l'époque et vérifie qu'il dispose de la clé privée qui lui permet de dépenser. Lorsque cette étape est vérifiée, l'expéditeur peut alors poursuivre le processus de génération du script P2PKH.
La deuxième partie du processus génère le sous-script scriptPubKey. Cette partie du script délivre la puissance des crypto-monnaies envoyées au hachage de clé publique que l'émetteur a reçu. En joignant le scriptSig et le scriptPubKey, nous obtenons un P2PKH complet, dont la fonction peut être résumée comme suit:
Un émetteur ne peut dépenser que les bitcoins qu'il a reçus à une adresse publique qu'il possède. Mais pour les dépenser, vous devez prouver que cette adresse est bien la vôtre. Vous devez donc fournir la clé publique et la clé privée correctes pour débloquer la dépense.
Confirmé ce point, l'émetteur envoie à une autre adresse un certain nombre de pièces qui cessent d'être sa propriété pour devenir la propriété d'un autre utilisateur, qui ne peut dépenser ces pièces qu'en suivant le même processus.
Exemple de P2PKH
Regardons un exemple pour avoir une explication plus détaillée de la façon dont tout ce processus se déroule dans Bitcoin. Si Maria veut envoyer une transaction standard au format P2PKH à Pedro, alors Pedro doit démarrer le processus en créant la clé privée et l'ensemble de clés publiques là où il souhaite recevoir la transaction.
Dans le système Bitcoin, cet ensemble de clés est créé en toute sécurité à l'aide du Algorithme de signature numérique à courbe elliptique (ECDSA) avec la courbe secp256k1. Ensuite, la clé publique générée est transformée à l'aide des fonctions SHA-256 et RIPEMD-160.
À ce stade, Pedro envoie l'adresse à Maria, qui commence alors le processus de génération de la transaction et du script P2PKH. Maria entre les données de transaction dans son portefeuille, qui traduira ensuite ces données dans un script P2PKH. Et à partir du moment où Maria appuie sur "Envoyer", le processus commence. La transaction est envoyée au réseau, où les mineurs la prendront et l'incluront dans un bloc. A la fin de la génération de ce bloc, les nœuds du réseau commenceront à réaliser les actions individuelles de chacune de ces transactions.
C'est à ce moment-là que le paiement de María à Pedro devient une réalité. Ensuite, les nœuds exécuteront le script P2PKH en passant la propriété des pièces que Maria a envoyées à Pedro, ce qui permettra à Pedro de prendre la pleine propriété desdites pièces. Dans le cas où l'opération génère un changement, ce changement est envoyé à María qui en conservera la propriété. Le reste des pièces qui ne font pas partie de l'envoi de pièces à Pedro ou de l'échange de Maria, sont les commissions que les mineurs ont prises pour leur travail.
Implémentation P2PKH
le script P2PKH est présent par défaut dans les portefeuilles ou porte-monnaie qui implémentent le client Bitcoin depuis pratiquement le début du système. Ainsi, quelques jours seulement après le lancement de Bitcoin et après avoir miné les premiers blocs du réseau, le 16 janvier 2009, le format P2PKH a commencé à être implémenté dans les transactions Bitcoin. Donc, ce script se trouve dans la plupart des blocs minés qui se trouvent dans la blockchain.
Sa création est principalement due à deux raisons:
- Satoshi Nakamoto Je voulais qu'il y ait un moyen plus simple et plus facile que deux utilisateurs puissent partager leurs clés publiques pour effectuer des transactions. Ainsi, pour convertir la clé publique en une expression plus courte et plus facile à utiliser, une fonction de hachage a été appliquée qui transforme cette clé en un ensemble aléatoire beaucoup plus gérable et utilisable de caractères alphanumériques. Qui est utilisé comme une adresse qui peut être partagée avec n'importe quel utilisateur de manière simple et fiable.
- En tant qu'ECDSA, il est vulnérable à l'algorithme Shor modifié. Cet algorithme peut déduire la clé privée de la clé publique à l'aide d'un ordinateur quantique. Cependant, la mise en œuvre de P2PKH empêche cette attaque. En empêchant la clé publique complète d'être révélée à un autre utilisateur lors de l'exécution d'une transaction. Création d'une couche de sécurité supplémentaire sur la clé privée et le réseau public, offrant un niveau de protection plus élevé. Bien que cela soit quelque peu éloigné puisque la puissance quantique nécessaire pour exécuter une attaque réussie de ce type est proche de 1500 qubits.
Avantages et inconvénients de l'implémentation P2PKH
Avantages
L'un des plus grands avantages de l'implémentation du script P2PKH, et qui le rend très fiable lors des transactions, est que réduit la possibilité d'attaques ou de menaces dérivées d'ordinateurs quantiques. Ce que les clés privées d'un utilisateur pourraient déduire au moyen de la clé publique qu'il a fournie pour recevoir une transaction. Et est-ce que grâce à P2PKH, les clés publiques ne sont jamais révélées ou envoyées. Eh bien, au lieu d'envoyer la clé publique complète, seul un hachage de celle-ci est utilisé.
Un autre grand avantage offert par ce script est le simplicité et facilité d'utilisation. Et celales adresses qui implémentent P2PKH sont beaucoup plus courtes et plus faciles à gérer. Ce qui réduit également le risque de faire des erreurs par rapport aux adresses P2PK.
Inconvénients
Bien que les adresses P2PKH soient beaucoup plus faciles à utiliser, le processus de création de ces adresses est beaucoup plus complexe et difficile qu'avec les scripts P2PK. Par conséquent, ils nécessitent l'application de nombreuses étapes ou processus supplémentaires au niveau de la programmation pour former des transactions P2PKH. Cependant, cela est quelque peu transparent pour les utilisateurs et pour les appareils actuels, cela ne génère aucun effet négatif sur les performances.
De plus, comme ce script a été publié et implémenté bien avant SegWit, les adresses héritées ne sont pas compatibles avec les portefeuilles ou les porte-monnaie qui implémentent ce format, comme si le script le faisait P2SH. Bien qu'il soit possible d'envoyer une transaction d'une adresse P2PKH à une adresse SegWit. Cependant, les frais de ces transactions peuvent être globalement élevés. Ainsi, bien que la mise en œuvre des transactions P2PKH joue un rôle important dans le réseau Bitcoin, son utilisation peut être affectée et diminuée si les utilisateurs commencent à adopter SegWit davantage.