Le script de blocage P2PK est le modèle de script initial que j'ai utilisé Bitcoin pour envoyer et recevoir crypto-monnaies dans son premier instant. Un modèle de script simple et élégant qui nous a permis d'explorer la puissance de Bitcoin et qui ouvrirait les portes à cette technologie intéressante. 

Escript de verrouillage P2PK ou payer à la clé publique, Est-ce que script de verrouillage le plus ancien et le plus primitif de Bitcoin, développé directement par Satoshi Nakamoto dans sa première version de Bitcoin. Il nous permet d'effectuer des paiements en bitcoins en utilisant la version étendue d'une clé publique au lieu d'un hachage de celle-ci comme c'est actuellement le cas avec le script standard P2PKH (Payer au hachage de la clé publique).

Grâce à cela, P2PK est une version beaucoup plus simple de P2PKH et a été utilisé par Nakamoto dans ses opérations minières initiales lors de la création du transaction coinbase de ses blocs. Mais vous avez également utilisé ce script dans vos premières transactions comme celle que vous avez effectuée Hal Finney.

Comment fonctionne un P2PK?

Le fonctionnement d'un P2PK suit le même schéma de base des transactions Bitcoin, en fait, le P2PK est à l'origine de ce schéma, mais d'une manière encore plus simple. Lorsque nous voulons effectuer une transaction en Bitcoin, nous n'avons besoin que de la clé privée en notre possession. Comme nous l'avons déjà expliqué dans Comment une adresse Bitcoin est-elle générée?, de la clé privée la clé publique sort mathématiquement et de la clé publique, elle est encodée pour obtenir l'adresse Bitcoin.

En P2PK, cette adresse Bitcoin (qui commence généralement par «1», «3» ou «bc1») n'est pas la dernière partie, c'est-à-dire qu'elle n'est pas cryptée. De cette façon, l'adresse reste comme la clé publique complète, qui aurait une forme similaire à celle-ci:

0496b538e853519c726a2c91e61ec11600ae1390813a627c66fb8be7947

be63c52da7589379515d4e0a604f8141781e62294721166bf621e73a82cbf2342c858ee

La clé publique Bitcoin précédente correspond à l'une des adresses de Satoshi Nakamoto, en particulier l'adresse à laquelle la deuxième coinbase Bitcoin a été envoyée.

Ainsi, par exemple, pour envoyer une transaction à cette adresse en utilisant un P2PK nous n'utilisons pas une adresse Bitcoin comme celle que nous connaissons aujourd'hui. Au lieu de cela, il suffirait de prendre toute la clé publique, de la mettre dans le portefeuille et de l'envoyer. Le résultat à la fin est le même, lorsque la transaction est confirmée, le propriétaire de cette clé publique aura les bitcoins que nous lui enverrons en sa possession et il pourra les utiliser sans problème.

P2PK contre P2PKH

Expliquer le processus de fonctionnement d'un P2PK

La différence dans le processus de soumission entre P2PK et P2PKH réside dans la façon dont les scripts de blocage fonctionnent, et nous expliquons ce détail ci-dessous:

Tout d'abord, dans un P2PK, il n'est pas nécessaire de crypter la clé publique. Au lieu de cela, il nous suffit de copier ladite clé complète, de la placer dans le script Bitcoin et nous pouvons envoyer la transaction. Le script P2PK à envoyer (ou bloquer les bitcoins) a la forme suivante:

Script de blocage (scritpPubKey): <Clé publique à envoyer> OP_CHECKSIG

Cela signifie que pour déverrouiller lesdits bitcoins et pouvoir les utiliser, nous devrons fournir une signature numérique valide pour la clé publique que nous avons donnée, comme nous pouvons le voir dans le scriptSig qui aurait la forme suivante:

Déverrouiller le script (scriptSig): <SIGNATURE> (Signature numérique valide)

Cependant, sur un P2PKH, cela change légèrement et le script de blocage est écrit comme suit:

Script de blocage (scritpPubKey): OP_DUP OP_HASH160 <Hash de clé publique> OP_EQUALVERIFY OP_CHECKSIG

Et son déverrouillage se fait au moyen de:

Déverrouiller le script (scriptSig): <SIGNATURE> <Clé publique>

Cela signifie que nous devons fournir une clé publique, la dupliquer, la hacher, vérifier que le hachage de la clé publique a été livré et vérifier les signatures numériques afin de pouvoir utiliser les bitcoins à cette adresse.

Comme vous pouvez le voir, le P2PK est une option beaucoup plus simple et moins coûteuse en termes de calcul. Cependant, P2PK est un script de blocage rarement utilisé dans le monde Bitcoin aujourd'hui, et nous expliquerons pourquoi ci-dessous.

Que savez-vous, cryptonuta?

Est-ce que la raison pour laquelle P2PK a été abandonné au profit de P2PKH pour la sécurité dans Bitcoin?

VRAI!

La principale raison de l'abandon du format P2PK dans Bitcoin était le fait d'ajouter une nouvelle couche de sécurité aux scripts chargés de faire des transactions au sein de Bitcoin une réalité, en particulier P2PKH car il offre une plus grande résistance aux attaques futures. que les ordinateurs quantiques pourraient faire.

Avantages et inconvénients du P2PK

Parmi les avantages du P2PK, nous pouvons souligner que:

  1. C'est un script beaucoup plus simple et moins coûteux en calcul que P2PKH.
  2. Il est largement compatible, toutes les versions de Bitcoin Core ont un support pour ce script, car il est à la base de son fonctionnement depuis sa création.

Cependant, contre cela on peut citer quelques risques, certains identifiés par Satoshi Nakamoto lui-même dans une analyse réalisée, qui n'a pratiquement plus utilisé le P2PK:

  1. Le risque que la cryptographie à courbe elliptique puisse être complètement compromise grâce à l'exécution réussie d'un algorithme de Shor modifié pour résoudre le problème du logarithme discret dans les courbes elliptiques. Il s'agit d'une situation où le déploiement de clés publiques comme P2PK rendrait ces adresses vulnérables. Pour éviter cela, Nakamoto a décidé d'utiliser un hachage de la clé publique par un processus qui ajoute une couche de sécurité supplémentaire à ce processus, résolvant ce problème. En fait, dans la version initiale de Bitcoin, les méthodes P2PK et P2PKH étaient parfaitement utilisables.
  2. L'extension plus courte de P2PKH était un autre facteur en faveur de l'abandon du P2PK, non seulement pour l'extension, mais aussi pour économiser des octets dans les transactions et améliorer l'évolutivité de Bitcoin.
  3. Ils sont moins «humains». Autrement dit, les clés publiques ont une longueur de 130 caractères au lieu des adresses Bitcoin habituelles et de ses 34 caractères. Cela signifie que les P2PK nécessitent plus de soin lors de la vérification de l'exactitude des adresses, car sinon les fonds pourraient être perdus de manière irréversible. Il est facile de voir qu'une adresse commence par 1 et de savoir qu'il s'agit d'une adresse Bitcoin, ou de vérifier les derniers caractères pour voir si l'adresse n'a pas changé grâce à somme de contrôle.