¿Qué es P2PKH?

Las direcciones P2PKH son el género de direcciones más frecuentes en Bitcoin, y son las que generalmente empleamos para efectuar transacciones en tal criptomonedas. Conoce aquí cuales son sus peculiaridades y su funcionamiento.

Aunque existen nuevos scripts en Bitcoin que han ido ganando popularidad, la manera más frecuente de la red de realizar transacciones es mediante los scripts Pay to Public Key Hash, o bien mejor conocido como P2PKH. En un comienzo la red empleaba el script Pay to Public Key (P2PK), mas debido a la vulnerabilidad de padecer un ataque futuro a través de computadoras cuánticas, se cambió a P2PKH para mayor seguridad y protección de la red. Y desde ese momento, este script juega un papel fundamental en la mayor parte de las transacciones realizadas en Bitcoin.

La verdad es que tanto P2PK y P2PKH se semejan mucho. Puesto que tanto en P2PK como en  P2PKH, los usuarios deben probar un complejo mecanismo criptográfico. Este mecanismo se fundamenta en probar que son los auténticos dueños de la clave pública para percibir los pagos y de la clave privada para gastar el pago que reciben. Mas la primordial diferencia entre P2PK y P2PKH, es que este último deja que al instante de percibir una transacción el usuario no deba suministrar su clave pública completa al scriptPubKey. Una situación que si ocurría en los scripts P2PK. Que mandaba de manera directa la clave pública del receptor de la transacción.

Este fácil cambio mejoraba enormemente la seguridad de Bitcoin en frente de posibles ataques que podrían hacerse con computadores cuánticos. Mas al tiempo, asimismo mejoraba la privacidad de la transacciones, aparte de reducir el tamaño de cada transacción, algo excelente para la escalabilidad de Bitcoin. Esto se debe al hecho de proporcionar solo un hash de veinte bytes de longitud en vez de la clave pública completa. Una situación que evitaba que esta pudiese ser famosa o bien revelada, acrecentando la seguridad general de la red.

Pero probablemente te vas a preguntar ¿De qué forma torna posible P2PKH todo esto? ¿Qué mecanismos dejan su funcionamiento? Puesto que bien todo esto lo examinaremos ahora.

¿De qué manera marcha un script P2PKH?

El funcionamiento de un script P2PKH comienza en el instante, en el que el receptor y transmisor se preparan para efectuar una transacción.    En ese instante, el receptor debe crear dos claves públicas y privadas. Una vez cree dichas claves, el receptor compartirá su clave pública con el transmisor de la transacción. En el proceso de codificación de estas claves, el receptor crea un hash de la clave pública que transmitirá al expedidor de manera segura a fin de que realice la transacción. Ese hash es nuestra dirección de criptomonedas o bien de Bitcoin. Si quieres saber un tanto sobre este proceso de generación puedes leer nuestro artículo de ¿De qué forma se crea una dirección de Bitcoin?.

Ahora bien, en el instante en el que el transmisor tiene la dirección de Bitcoin, este empieza con el proceso de crear la transacción. Este proceso lleva a la utilización de Bitcoin Script, para producir un sub-script singular que formará una parte del P2PKH. Este sub-script lleva el nombre de scriptSig y su función es contrastar que el transmisor verdaderamente tiene la propiedad de las criptomonedas que gastará. Para esto, toma la clave pública con la que el transmisor recibió las criptomonedas en su instante y comprueba que tenga la clave privada que le habilite para el gasto. Al contrastarse este paso, el transmisor puede entonces proseguir con el proceso de generación del script P2PKH.

La segunda una parte del proceso produce el sub-script scripPubKey. Esta una parte del script entrega la potestad de las criptomonedas mandadas al hash de clave pública que ha recibido el transmisor. Al unir el scriptSig y el scriptPubKey tenemos como resultado un P2PKH completo, cuyo función se puede resumir de la próxima forma:

Un transmisor solo puede gastar bitcoins que ha recibido en una dirección pública de su propiedad. Mas para gastarlos, debe demostrar que esa dirección verdaderamente es suya. Con lo que debe administrar la clave pública y la clave privada adecuada para desbloquear el gasto.

Confirmado este punto, el transmisor manda a otra dirección una determinada cantidad de monedas que dejan de ser de su propiedad  para pasar a ser propiedad de otro usuario, que solo va a poder gastar esas monedas siguiendo exactamente el mismo proceso.

Ejemplo de un P2PKH

Veamos un caso para tener una explicación más detallada de de qué forma ocurre todo este proceso en Bitcoin. Si María desea mandar una transacción estándar en formato P2PKH a Pedro, entonces Pedro debe comenzar el proceso creando el conjunto de clave privada y clave pública donde quiere percibir la transacción.

En el sistema Bitcoin, este conjunto de claves es creado de manera segura usando el algoritmo de firma digital de curva elíptica (ECDSA) con la curva secp256k1. Entonces la clave pública generada es transformada utilizando las funciones SHA-256 y RIPEMD-ciento sesenta.

En este punto, Pedro manda a María la dirección, que entonces empieza con el proceso de generación de la transacción y del script P2PKH. María introduce los datos de la transacción en su monedero, que entonces va a traducir estos datos en un script P2PKH. Y desde que María presiona “Enviar” empieza el proceso. La transacción se manda a la red, donde los mineros la tomaran y también incluirán en un bloque. Al concluir la generación de este bloque, los nodos de la red empezarán a efectuar las acciones individuales de cada una de estas transacciones.

Es en ese instante, donde el pago de María a Pedro se hace una realidad. Esto puesto que, los nodos ejecutarán el script P2PKH pasando la propiedad de las monedas que María ha mandado a Pedro, haciendo que Pedro tomé propiedad absoluta de dichas monedas. En caso, de que la operación produzca un cambio, este cambio se manda a María quien sostendrá la propiedad sobre exactamente el mismo. El resto de monedas que no son parte del envío de monedas a Pedro ni del cambio de María, son las comisiones que los mineros tomaron por su trabajo.

Implementación de P2PKH

El script P2PKH está presente de manera predeterminada en las wallets o bien monederos que incorporan el usuario de Bitcoin desde prácticamente el inicio del sistema. De este modo, solo unos días tras el lanzamiento de Bitcoin y de haber minado los primeros bloques de la red, el dieciseis de enero de dos mil nueve se empezó a incorporar el formato P2PKH en las transacciones de Bitcoin. Con lo que este script se halla en la mayor parte de los bloques minados que están en la blockchain.

Su creación se debe primordialmente a 2 razones:

  1. Satoshi Nakamoto deseaba que existiese una forma más simple y simple en la que 2 usuarios pudiesen compartir sus claves públicas para efectuar transacciones. De esta manera, para transformar la clave pública en una expresión más corta y simple de utilizar, se aplicó una función hash que transforma a esta clave en un conjunto azaroso de caracteres alfanuméricos considerablemente más manejable y aprovechable. Que se emplea como una dirección que se puede compartir con cualquier usuario fácilmente y fiable.
  2. Como ECDSA es frágil al algoritmo Shor cambiado. Este algoritmo puede inferir la clave privada desde la clave pública a través de una computadora cuántica. No obstante, la implementación de P2PKH previene este ataque. Al impedir que la clave pública completa pueda ser revelada a otro usuario al instante de realizar una transacción. Creando una capa de seguridad auxiliar sobre la clave privada y la red pública, dando un nivel superior de protección. Si bien esto es algo lejano pues la potencia cuántica precisa para ejecutar un ataque triunfante de esta clase se sitúa cerca de los mil quinientos qubits.

¿Cuánto sabes, criptonauta?

¿Las direcciones P2PKH nos dejan interaccionar con cualquier otro género de dirección en Bitcoin?

Ventajas y desventajas de la implementación de P2PKH

Ventajas

Una de las mayores ventajas de incorporar el script P2PKH, y que lo hacen muy fiable al instante de realizar transacciones, se debe a que reduce la posibilidad de padecer ataques o bien amenazas derivados de las computadoras cuánticas. Qué podrían llegar a inferir las claves privadas de un usuario a través de la clave pública que haya proporcionado para percibir una transacción. Y es que merced a P2PKH, las claves públicas jamás se revelan o bien mandan. Puesto que en vez de mandar la clave pública completa solo se utiliza un hash de exactamente la misma.

Otra gran ventaja que ofrece este script es la simplicidad y sencillez de uso. Puesto que las direcciones que incorporan P2PKH son considerablemente más cortas y manejables. Lo que por su parte asimismo disminuye la posibilidad de cometer fallos en comparación con las direcciones P2PK.

Desventajas

Aunque las direcciones P2PKH son considerablemente más simples al instante de usar, el proceso de creación de estas direcciones es considerablemente más complejo y bastante difícil que con los scripts P2PK. Con lo que requieren que la aplicación de muchos pasos o bien procesos auxiliares a nivel de programación para formar transacciones P2PKH. Sin embargo esto es algo transparente para los usuarios, y para los dispositivos actuales esto no produce ningún efecto negativo de desempeño.

Así mismo, como este script fue lanzado y también incorporado mucho ya antes de SegWit, las direcciones heredadas no son compatibles con las wallets o bien monederos que incorporan este formato, tal y como si lo hace el script P2SH. Si bien de ser posible mandar una transacción desde una dirección P2PKH a una dirección SegWit. No obstante, las comisiones de estas transacciones pueden ser elevadas por lo general. Con lo que, si bien la implementación de las transacciones P2PKH juegan un papel esencial en internet Bitcoin, su empleo puede verse perjudicado y disminuido si los usuarios empiezan a adoptar en mayor medida a SegWit.

bitcoin
Bitcoin (BTC) $ 64,070.00
ethereum
Ethereum (ETH) $ 3,870.33
binance-coin
Binance Coin (BNB) $ 484.12
tether
Tether (USDT) $ 1.00
cardano
Cardano (ADA) $ 2.10
xrp
XRP (XRP) $ 1.09
solana
Solana (SOL) $ 156.09
polkadot
Polkadot (DOT) $ 41.22
usd-coin
USD Coin (USDC) $ 0.998974
dogecoin
Dogecoin (DOGE) $ 0.243322