Aspectos Técnicos de Bitcoin

¿Qué Es Pay To Public Key? [P2PK]

Qué Es Pay To Public Key

Pay To Public Key o P2PK es un tipo de ScriptPubKey que bloquea los bitcoins con una clave pública. Esto significa que los BTC solo pueden ser gastados por el dueño de la clave privada que hace juego con ella.

Una clave pública puede ser vista como la dirección de un correo electrónico, a la que cualquiera puede enviar un e-mail (o en este caso bitcoins) debido a que es pública, aunque solo el que tenga la contraseña (clave privada) será capaz de leer el mail (acceder a los bitcoins).

Por ejemplo, si queremos enviar 1 BTC a un amigo usando una transacción P2PK, debemos incluir la clave pública de nuestro amigo en la transacción.

Cuando nuestro amigo quiera gastar ese bitcoin que recibió de nosotros, deberá firmar la transacción con su clave privada relacionada con la clave pública que utilizamos en la transacción que le enviamos.

Técnicamente, P2PK es el nombre de un tipo particular de script que tiene el requerimiento antes mencionado.

Cada salida de transacción de Bitcoin posee un determinado script, que determina como es posible gastar los bitcoins que se encuentran en ellas, y P2PK es uno de ellos.

Sin embargo, P2PK fue dejado de lado en favor de utilizar un nuevo tipo de script llamado P2PKH, que posee una mejora en la seguridad y en la conveniencia.

¿Cómo funciona P2PK?

Cuando enviamos bitcoins de una dirección a otra es necesario codificar la misma con un script de Bitcoin perteneciente al protocolo de esta cadena de bloques.

Los pasos que se realizan con P2PK son bastante sencillos si los comparamos con otro tipo de scripts, como pueden ser P2PKH o P2SH.

Cuando se crea una transacción P2PK y se envía a los nodos para que sea confirmada, el emisor lo que en realidad está haciendo es enviar de su propio monedero a la clave pública de otro usuario.

Lo único que el usuario dueño de la clave pública tiene que hacer es probar la propiedad de la misma, y para eso debe utilizar la clave privada correspondiente si quiere poder enviar esos fondos a otra clave pública.

Es importante entender cual es la relación entre la clave pública y privada en la blockchain de Bitcoin:

  • Clave pública: puede ser revelada a cualquier persona, ya que su propio nombre nos indica que es pública, y, por tanto, no corremos ningún riesgo.
  • Clave privada: solo el usuario puede conocerla, puesto que cualquier persona que la tenga en su poder controla los fondos que se encuentran vinculadas a la clave pública.

La clave pública se obtiene a partir de la clave privada, y son un par de claves que se obtienen a partir de lo que se conoce como curva elíptica, en particular la secp256k1.

Si bien es un tema más complejo y que no vamos a desarrollar aquí, la criptografía detrás de este algoritmo hace imposible que a partir de la clave pública se pueda obtener la clave privada. Por eso se puede compartir una y no la otra.

Por tanto, para hacer un pago con P2PK, el script de transacción necesita contener la clave pública y el opcode CHECKSIG (OP_CHECKSIG).

Cuando se corre el script, OP_CHECKSIG verifica que la firma digital de la clave privada corresponde con la clave publica a la que se han enviado los fondos.

Si la entrada de la transacción es válida, OP_CHECKSIG destraba los fondos y el receptor puede utilizarlos para cualquier transacción en el futuro.

Ventajas y Desventajas de Pay To Public Key

Mientras que los pagos con P2PK eran lo habitual en el pasado para las transacciones de Bitcoin, esta funcionalidad cuentan con algunas limitaciones.

La mayoría de los usuarios consideran que estas desventajas sobrepasan las ventajas. Por eso es que en la actualidad se ha dejado de lado para utilizar otro tipo de script que mejore la experiencia de usuario.

Pros

1. Script sencillo

El diseño de P2PK es mucho más simple que otros scripts de Bitcoin, como P2PKH o P2SH, lo que lo vuelven muy fácil de implementar comparado con estos ejemplos que necesitan de hashing criptográficos.

2. Compatibilidad

Los usuarios que tengan BTC bloqueados con el script P2PK tienen la habilidad de enviar fácilmente los fondos a otro usuario que utilicen tecnologías más nuevas y seguras.

Sin embargo, es bastante debatible esta ventaja, ya que P2PKH también ha estado disponible para su utilización desde el lanzamiento de Bitcoin en 2009.

Contras

1. Seguridad

Debido a que las transacciones P2PK hacen visibles a las claves públicas en la red, existe una capa menos de seguridad entre un potencial atacante y la clave privada.

Si un hacker solo tiene la dirección de un monedero de Bitcoin, entonces deberá romper dos encriptaciones para alcanzar la clave privada. Primero obteniendo la clave pública de la dirección de Bitcoin (rompiendo los algoritmos SHA-256 y RIPEMD-160), para luego obtener la privada a partir de la pública (rompiendo la encriptación ECDSA).

Si el hacker ya tiene la clave pública, solo le queda un paso para alcanzar la clave privada y los fondos.

Es cierto que es bastante complejo, prácticamente imposible, de hacer. Y es que la red de Bitcoin utiliza el algoritmo de Firma Digital de Curva Elíptica que es considerado extremadamente seguro.

A largo plazo, el desafío de la comunidad de desarrolladores es proteger ECDSA de la computación cuántica, que teóricamente podría romper esta protección.

Varios equipos de desarrollos están trabajando en una cadena de bloques segura contra este tipo de ordenadores. Si algún día ocurre, entonces P2PK será uno de los scripts más vulnerables.

2. Longitud de clave pública

Tener una clave pública es conveniente para enviar y recibir pagos en BTC. Por otro lado, mientras la dirección de Bitcoin es una cadena alfanumérica de entre 26 y 34 caracteres, la clave pública contiene 64.

La misma tampoco cuenta un mecanismo para revisar errores, lo cual puede llevar a que ingresemos o copiemos y peguemos mal la dirección cuando la enviamos entre dispositivos. Cuanto más larga, más posibilidades.

¿Todavía se sigue usando?

La realidad es que no. P2PK fue un tipo de pago en Bitcoin bastante importante cuando se lanzó en 2009. Esto debido a que era una opción muy sencilla si la comparamos con P2PKH.

En 2009 y 2010, las recompensas de bloques de Bitcoin de 50 BTC eran enviados a través de P2PK, y el software de la minería que utilizaba CPU soportaba este script. Esto hizo que se volviera muy popular en ese entonces.

También cabe destacar que P2PK fue utilizado en la transacción coinbase del bloque génesis, así como en el primer pago que se efectuó entre Satoshi Nakamoto y Hal Finney.

Posterior a esa epoca, el uso de P2PK ha sido mínimo, a pesar de la importancia en un primer momento.

De acuerdo a un estudio, más de 4 millones de BTC (19% del suministro total) se encuentra en transacciones con formato P2PK. Las cuales se encuentran en riesgo de una posible computación cuántica en el futuro.

Acerca del autor

Criptotario

Me llamo Martin, soy ingeniero y apasionado de las inversiones y la tecnología. Me gusta mucho leer libros y todo aquello que me haga mejorar día a día.

Agrega un Comentario

Haz clic aquí para añadir un comentario