Pay-to-Public-Key (P2PK) es el método original para recibir bitcoins y no implica una dirección. En cambio, como sugiere el nombre, bitcoin se paga directamente a una clave pública expuesta. La primera transacción de bitcoins de una persona a otra utilizó P2PK, cuando Satoshi Nakamoto envió monedas a Hal Finney en el Bloque 170.
P2PK ya no se utiliza porque es una forma más cara, menos privada y menos segura de recibir bitcoins que los métodos posteriores.
Pay-to-Public-Key-Hash (P2PKH) estaba disponible para su uso al comienzo de bitcoin y apareció en la cadena de bloques por primera vez menos de dos semanas después del bloque de génesis. P2PKH realiza varias mejoras con respecto a P2PK, como la utilización de una dirección. Como se discutió en nuestro artículo anterior, las direcciones contienen una suma de verificación que ayuda a prevenir errores tipográficos y pérdida de bitcoins.
Las direcciones P2PKH suelen tener una longitud de 34 o 33 caracteres (pero, en teoría, podrían ser tan cortas como 26 caracteres) y están codificadas en formato Base58. Comienzan con el prefijo 1 y actualmente son responsables de recibir y asegurar el 43% del suministro de bitcoins extraídos, más que cualquier otro tipo de dirección.
Crear una dirección P2PKH implica poner una única clave pública a través de las funciones hash SHA-256 y RIPEMD-160. Esto acorta la cantidad de datos, lo que a su vez ayuda a ahorrar espacio en bloque y tarifas de transacción para el usuario. También introduce una mayor resistencia a la ingeniería inversa de la clave privada más allá de la curva elíptica secp256k1 que ya se cree irrompible.
Pay-to-Multisig (P2MS) es un tipo de transacción trivial que solo fue relevante brevemente y nunca ha sido responsable de mantener más de 100 bitcoins a la vez en todos los participantes de la red. Sin embargo, P2MS es parte de la historia de bitcoin.
P2MS se introdujo como script estándar a principios de 2012, según lo especificado por BIP 11. Sin embargo, este tipo de transacción sufrió los mismos problemas que P2PK, ya que incluía claves públicas expuestas y no utilizaba ningún formato de dirección. También limitó a tres la cantidad de claves públicas en un quórum multifirma. En unos meses, P2MS sería reemplazado por un método alternativo para recibir bitcoins en un acuerdo multifirma llamado P2SH, que cubriremos a continuación.
Pay-to-Script-Hash (P2SH) se introdujo en bitcoin como una bifurcación suave de acuerdo con BIP 16 el 1 de abril de 2012. Como la mayoría de los forks, la historia detrás de él es fascinante. P2SH tiene mucho en común con P2PKH. La principal diferencia es que la dirección se crea mediante el hash de un script de canje en lugar de una única clave pública.
Un script de canje puede considerarse como instrucciones codificadas que especifican cómo se pueden gastar en el futuro los bitcoins recibidos en la dirección P2SH. Podría haber una amplia gama de posibilidades, incluidas múltiples claves públicas diferentes. El receptor, no el remitente, determina los detalles del guión, y las instrucciones de gasto no se exponen públicamente hasta que se gasta bitcoin fuera de la dirección.
Si bien los usuarios avanzados pueden crear scripts complejos, los usos más comunes de P2SH han sido crear direcciones SegWit anidadas (que se tratan a continuación) y billeteras multifirma. Por ejemplo, un script puede incluir tres claves públicas y especificar que las firmas de dos de las claves privadas correspondientes pueden gastar el bitcoin. Esto crearía una dirección multifirma 2 de 3.
Las direcciones P2SH tienen exactamente 34 caracteres de longitud y comienzan con un prefijo 3, como lo especifica BIP 13. Antes de la bifurcación suave del 1 de abril, un puñado de transacciones experimentaron con este prefijo alternativo, el primero de los cuales se encuentra en el Bloque 170,052.
Pay-to-Witness-Public-Key-Hash (P2WPKH) es el primero de los dos tipos de direcciones introducidos en bitcoin en la bifurcación suave SegWit en agosto de 2017. La historia detrás de este soft fork extremadamente importante y particularmente polémico está documentada en un libro llamado The Blocksize War, escrito por Jonathan Bier.
P2WPKH es la variante SegWit de P2PKH, lo que en un nivel básico significa que elegir este tipo de dirección en lugar de direcciones P2PKH más antiguas le ayudará a ahorrar dinero en tarifas de transacción al mover sus bitcoins.
Las direcciones SegWit se ven bastante diferentes de los tipos de direcciones más antiguos porque, según BIP 173, utilizan codificación Bech32 en lugar de Base58. Lo más notable es que en Bech32 no hay letras mayúsculas. Las direcciones P2WPKH se pueden identificar mediante un prefijo bc1q y una longitud de caracteres de exactamente 42.
Pay-to-Witness-Script-Hash (P2WSH) es la variante SegWit de P2SH. La principal ventaja de usar P2WSH sobre P2SH es que puede ayudar a reducir las tarifas de transacción, y la razón principal para usar un hash de script en lugar de un hash de clave pública es para acomodar acuerdos multifirma.
Al igual que P2WPKH, una dirección P2WSH comienza con el prefijo bc1q. Sin embargo, tiene una longitud de caracteres más larga, exactamente 62. A diferencia de los tipos de direcciones cubiertos hasta ahora, las direcciones P2WSH se crean utilizando solo la función hash SHA-256, sin incluir RIPEMD-160, lo que da como resultado una mayor longitud de caracteres. Esto se implementó con cautela, agregando protección adicional contra un vector de ataque multigrado bastante matizado y extremadamente improbable.
Nested SegWit (también conocido como Wrapped SegWit) técnicamente no es un tipo de dirección diferente al que cubrimos anteriormente. Aún así, es una forma única de utilizar los tipos de direcciones discutidos anteriormente de una manera que fue temporalmente útil para la comunidad bitcoin.
Cuando se produjo la bifurcación suave de SegWit, no todos los nodos, software y servicios de bitcoin se actualizaron inmediatamente para admitir los nuevos tipos de direcciones nativas de SegWit, P2WPKH y P2WSH. Solo las entidades que actualizaron pudieron enviar a estas nuevas direcciones. Esto significaba que las personas que querían poder recibir bitcoins de cualquier persona (incluidos aquellos que no habían actualizado) no podían usar una billetera Native SegWit todavía. Sin embargo, dado que SegWit ofrecía tarifas de transacción más económicas, la mayoría de la gente estaba interesada en empezar a utilizarlo.
La astuta solución a este dilema fue utilizar el tipo de transacción P2SH. Las entidades que aún no habían implementado SegWit aún podían enviar bitcoins a direcciones P2SH, que, como se mencionó anteriormente, se construyen con un script de canje que especifica las instrucciones sobre cómo se pueden gastar los bitcoins más adelante. Resulta que estas instrucciones podrían incorporar el nuevo modelo de gasto SegWit, proporcionando a los usuarios un puente hacia tarifas reducidas. Por lo tanto, las direcciones P2SH que utilizaban este truco se conocieron como Nested SegWit y desempeñaron un papel importante en el proceso de adopción de SegWit.
En la superficie, las direcciones Nested SegWit son indistinguibles de otras direcciones P2SH, por lo que el suministro de bitcoins mantenido en este acuerdo es desconocido. Además, dado que todas las herramientas bitcoin modernas ahora pueden enviar directamente a direcciones nativas de SegWit, ya no hay una buena razón para usar Nested SegWit.
Pay-to-Taproot (P2TR) es el tipo de dirección más nuevo, puesto a disposición por el soft-fork Taproot en noviembre de 2021. La adopción de P2TR sigue siendo bastante baja al momento de escribir este artículo, y muchos softwares y servicios de bitcoin todavía están trabajando en la integración.
Mientras que P2WPKH y P2WSH se conocen como SegWit V0, P2TR se considera SegWit V1. En particular, P2TR utiliza un algoritmo de firma digital llamado Schnorr, que difiere del formato ECDSA utilizado en tipos de transacciones de bitcoin anteriores. Las firmas Schnorr tienen varias ventajas, incluidas reducciones adicionales en las tarifas de transacción y una mayor privacidad.
En cuanto a la privacidad, las agregaciones de claves y firmas posibles gracias a Schnorr permiten que las direcciones multifirma sean indistinguibles de las de una sola firma, y las condiciones de gasto para una dirección P2TR nunca se revelan públicamente. El creador de la dirección puede incluso incluir múltiples scripts de canje personalizados para elegir y gastar el bitcoin más tarde.
Las direcciones P2TR tienen 62 caracteres y utilizan la codificación Bech32m, una versión ligeramente modificada de Bech32, como se describe en BIP 350. Las direcciones P2TR se pueden identificar por su prefijo bc1p exclusivo.
Ahora que hemos cubierto todos los métodos estandarizados para recibir bitcoins en cadena, algunos de los datos breves y las características de las direcciones se pueden combinar en un gráfico conveniente como referencia.
Pay-to-Public-Key (P2PK) es el método original para recibir bitcoins y no implica una dirección. En cambio, como sugiere el nombre, bitcoin se paga directamente a una clave pública expuesta. La primera transacción de bitcoins de una persona a otra utilizó P2PK, cuando Satoshi Nakamoto envió monedas a Hal Finney en el Bloque 170.
P2PK ya no se utiliza porque es una forma más cara, menos privada y menos segura de recibir bitcoins que los métodos posteriores.
Pay-to-Public-Key-Hash (P2PKH) estaba disponible para su uso al comienzo de bitcoin y apareció en la cadena de bloques por primera vez menos de dos semanas después del bloque de génesis. P2PKH realiza varias mejoras con respecto a P2PK, como la utilización de una dirección. Como se discutió en nuestro artículo anterior, las direcciones contienen una suma de verificación que ayuda a prevenir errores tipográficos y pérdida de bitcoins.
Las direcciones P2PKH suelen tener una longitud de 34 o 33 caracteres (pero, en teoría, podrían ser tan cortas como 26 caracteres) y están codificadas en formato Base58. Comienzan con el prefijo 1 y actualmente son responsables de recibir y asegurar el 43% del suministro de bitcoins extraídos, más que cualquier otro tipo de dirección.
Crear una dirección P2PKH implica poner una única clave pública a través de las funciones hash SHA-256 y RIPEMD-160. Esto acorta la cantidad de datos, lo que a su vez ayuda a ahorrar espacio en bloque y tarifas de transacción para el usuario. También introduce una mayor resistencia a la ingeniería inversa de la clave privada más allá de la curva elíptica secp256k1 que ya se cree irrompible.
Pay-to-Multisig (P2MS) es un tipo de transacción trivial que solo fue relevante brevemente y nunca ha sido responsable de mantener más de 100 bitcoins a la vez en todos los participantes de la red. Sin embargo, P2MS es parte de la historia de bitcoin.
P2MS se introdujo como script estándar a principios de 2012, según lo especificado por BIP 11. Sin embargo, este tipo de transacción sufrió los mismos problemas que P2PK, ya que incluía claves públicas expuestas y no utilizaba ningún formato de dirección. También limitó a tres la cantidad de claves públicas en un quórum multifirma. En unos meses, P2MS sería reemplazado por un método alternativo para recibir bitcoins en un acuerdo multifirma llamado P2SH, que cubriremos a continuación.
Pay-to-Script-Hash (P2SH) se introdujo en bitcoin como una bifurcación suave de acuerdo con BIP 16 el 1 de abril de 2012. Como la mayoría de los forks, la historia detrás de él es fascinante. P2SH tiene mucho en común con P2PKH. La principal diferencia es que la dirección se crea mediante el hash de un script de canje en lugar de una única clave pública.
Un script de canje puede considerarse como instrucciones codificadas que especifican cómo se pueden gastar en el futuro los bitcoins recibidos en la dirección P2SH. Podría haber una amplia gama de posibilidades, incluidas múltiples claves públicas diferentes. El receptor, no el remitente, determina los detalles del guión, y las instrucciones de gasto no se exponen públicamente hasta que se gasta bitcoin fuera de la dirección.
Si bien los usuarios avanzados pueden crear scripts complejos, los usos más comunes de P2SH han sido crear direcciones SegWit anidadas (que se tratan a continuación) y billeteras multifirma. Por ejemplo, un script puede incluir tres claves públicas y especificar que las firmas de dos de las claves privadas correspondientes pueden gastar el bitcoin. Esto crearía una dirección multifirma 2 de 3.
Las direcciones P2SH tienen exactamente 34 caracteres de longitud y comienzan con un prefijo 3, como lo especifica BIP 13. Antes de la bifurcación suave del 1 de abril, un puñado de transacciones experimentaron con este prefijo alternativo, el primero de los cuales se encuentra en el Bloque 170,052.
Pay-to-Witness-Public-Key-Hash (P2WPKH) es el primero de los dos tipos de direcciones introducidos en bitcoin en la bifurcación suave SegWit en agosto de 2017. La historia detrás de este soft fork extremadamente importante y particularmente polémico está documentada en un libro llamado The Blocksize War, escrito por Jonathan Bier.
P2WPKH es la variante SegWit de P2PKH, lo que en un nivel básico significa que elegir este tipo de dirección en lugar de direcciones P2PKH más antiguas le ayudará a ahorrar dinero en tarifas de transacción al mover sus bitcoins.
Las direcciones SegWit se ven bastante diferentes de los tipos de direcciones más antiguos porque, según BIP 173, utilizan codificación Bech32 en lugar de Base58. Lo más notable es que en Bech32 no hay letras mayúsculas. Las direcciones P2WPKH se pueden identificar mediante un prefijo bc1q y una longitud de caracteres de exactamente 42.
Pay-to-Witness-Script-Hash (P2WSH) es la variante SegWit de P2SH. La principal ventaja de usar P2WSH sobre P2SH es que puede ayudar a reducir las tarifas de transacción, y la razón principal para usar un hash de script en lugar de un hash de clave pública es para acomodar acuerdos multifirma.
Al igual que P2WPKH, una dirección P2WSH comienza con el prefijo bc1q. Sin embargo, tiene una longitud de caracteres más larga, exactamente 62. A diferencia de los tipos de direcciones cubiertos hasta ahora, las direcciones P2WSH se crean utilizando solo la función hash SHA-256, sin incluir RIPEMD-160, lo que da como resultado una mayor longitud de caracteres. Esto se implementó con cautela, agregando protección adicional contra un vector de ataque multigrado bastante matizado y extremadamente improbable.
Nested SegWit (también conocido como Wrapped SegWit) técnicamente no es un tipo de dirección diferente al que cubrimos anteriormente. Aún así, es una forma única de utilizar los tipos de direcciones discutidos anteriormente de una manera que fue temporalmente útil para la comunidad bitcoin.
Cuando se produjo la bifurcación suave de SegWit, no todos los nodos, software y servicios de bitcoin se actualizaron inmediatamente para admitir los nuevos tipos de direcciones nativas de SegWit, P2WPKH y P2WSH. Solo las entidades que actualizaron pudieron enviar a estas nuevas direcciones. Esto significaba que las personas que querían poder recibir bitcoins de cualquier persona (incluidos aquellos que no habían actualizado) no podían usar una billetera Native SegWit todavía. Sin embargo, dado que SegWit ofrecía tarifas de transacción más económicas, la mayoría de la gente estaba interesada en empezar a utilizarlo.
La astuta solución a este dilema fue utilizar el tipo de transacción P2SH. Las entidades que aún no habían implementado SegWit aún podían enviar bitcoins a direcciones P2SH, que, como se mencionó anteriormente, se construyen con un script de canje que especifica las instrucciones sobre cómo se pueden gastar los bitcoins más adelante. Resulta que estas instrucciones podrían incorporar el nuevo modelo de gasto SegWit, proporcionando a los usuarios un puente hacia tarifas reducidas. Por lo tanto, las direcciones P2SH que utilizaban este truco se conocieron como Nested SegWit y desempeñaron un papel importante en el proceso de adopción de SegWit.
En la superficie, las direcciones Nested SegWit son indistinguibles de otras direcciones P2SH, por lo que el suministro de bitcoins mantenido en este acuerdo es desconocido. Además, dado que todas las herramientas bitcoin modernas ahora pueden enviar directamente a direcciones nativas de SegWit, ya no hay una buena razón para usar Nested SegWit.
Pay-to-Taproot (P2TR) es el tipo de dirección más nuevo, puesto a disposición por el soft-fork Taproot en noviembre de 2021. La adopción de P2TR sigue siendo bastante baja al momento de escribir este artículo, y muchos softwares y servicios de bitcoin todavía están trabajando en la integración.
Mientras que P2WPKH y P2WSH se conocen como SegWit V0, P2TR se considera SegWit V1. En particular, P2TR utiliza un algoritmo de firma digital llamado Schnorr, que difiere del formato ECDSA utilizado en tipos de transacciones de bitcoin anteriores. Las firmas Schnorr tienen varias ventajas, incluidas reducciones adicionales en las tarifas de transacción y una mayor privacidad.
En cuanto a la privacidad, las agregaciones de claves y firmas posibles gracias a Schnorr permiten que las direcciones multifirma sean indistinguibles de las de una sola firma, y las condiciones de gasto para una dirección P2TR nunca se revelan públicamente. El creador de la dirección puede incluso incluir múltiples scripts de canje personalizados para elegir y gastar el bitcoin más tarde.
Las direcciones P2TR tienen 62 caracteres y utilizan la codificación Bech32m, una versión ligeramente modificada de Bech32, como se describe en BIP 350. Las direcciones P2TR se pueden identificar por su prefijo bc1p exclusivo.
Ahora que hemos cubierto todos los métodos estandarizados para recibir bitcoins en cadena, algunos de los datos breves y las características de las direcciones se pueden combinar en un gráfico conveniente como referencia.