¿Qué es P2SH (Pay-to-Script-Hash)?
P2SH (Pay-to-Script-Hash) es un tipo de salida de transacción de Bitcoin que permite enviar bitcoins al hash de un script, en lugar de enviarlos directamente a una clave pública o al hash de una clave pública.El remitente solo necesita un hash de script corto, mientras que quien gasta los fondos revela después el script completo y proporciona los datos necesarios para cumplir sus condiciones.En términos sencillos, P2SH permite que una dirección de Bitcoin represente reglas de gasto complejas sin obligar al remitente a entenderlas.En la mainnet de Bitcoin, las direcciones P2SH suelen empezar por el número
El estándar técnico de P2SH se introdujo en BIP16.
El formato de dirección de P2SH se describió en BIP13.
P2SH cobró importancia porque facilitó el uso de scripts avanzados de Bitcoin en pagos habituales con wallet.Antes de P2SH, quien quería pagar a un script complejo tenía que incluir directamente ese script en la salida de la transacción.Esto era ineficiente, difícil de compartir y complicado de admitir para las wallets corrientes.Con P2SH, el remitente puede pagar a un hash compacto y el destinatario se encarga de revelar y satisfacer el script completo al gastar los fondos.Este diseño hizo mucho más prácticos los monederos multifirma, las transacciones similares a un depósito en garantía y, posteriormente, la compatibilidad con SegWit anidado.Para los usuarios de criptomonedas, P2SH se entiende mejor como un diseño de dirección y script de Bitcoin que oculta la complejidad al recibir fondos y solo la revela cuando estos se gastan.Aspectos clave de P2SH
- P2SH significa Pay-to-Script-Hash.
- Permite bloquear bitcoins al hash de un script, en vez de a un hash de clave pública convencional.
- Las direcciones P2SH de la mainnet suelen empezar por 3.
- El remitente no necesita conocer el script de gasto completo.
- Quien gasta los fondos debe revelar el script de recuperación y cumplir sus condiciones.
- P2SH se estandarizó mediante BIP16 y su formato de dirección se describió en BIP13.
- P2SH ayudó a facilitar el uso de los monederos multifirma.
- También se utilizó como envoltorio de compatibilidad para la adopción inicial de SegWit.
- Los usuarios de Bitcoin pueden preferir direcciones nativas SegWit o Taproot cuando sean compatibles.
Por qué se creó P2SH
P2SH se creó para facilitar la recepción de pagos y el pago a scripts complejos de Bitcoin.Bitcoin Script permite bloquear monedas mediante condiciones de gasto.Un pago sencillo puede requerir una firma válida de una clave privada.Un pago más complejo puede requerir dos firmas de tres claves, un bloqueo temporal u otra lógica de script.Antes de P2SH, el remitente tenía que incluir el script completo en la salida de la transacción para pagar con esas condiciones.Esto trasladaba la complejidad al remitente, aunque era el destinatario quien elegía las reglas de seguridad.BIP16 establece que el propósito de P2SH es trasladar del remitente al beneficiario la responsabilidad de proporcionar las condiciones de desbloqueo.Este diseño resulta útil porque el remitente solo tiene que pagar a un hash de script corto.Así, el destinatario puede gestionar el script real de forma privada hasta que se gasten los fondos.Esto simplifica la experiencia de pago para las wallets y los usuarios.También reduce la necesidad de que los remitentes admitan todos los scripts personalizados posibles antes de poder pagar a alguien.El remitente puede tratar una dirección P2SH como una dirección normal, mientras que el destinatario puede aplicar detrás de ella reglas de gasto avanzadas.Cómo funciona P2SH
P2SH funciona bloqueando bitcoins al hash de un script.Ese script oculto se denomina script de recuperación (redeem script).El script de recuperación define las condiciones reales que deben cumplirse para gastar las monedas bloqueadas.La salida de la transacción no contiene el script de recuperación completo.En su lugar, contiene el hash de ese script.Cuando se gastan las monedas, quien las gasta proporciona el script de recuperación y los datos de desbloqueo necesarios.La red Bitcoin comprueba que el hash del script de recuperación coincide con el hash utilizado en la salida original.A continuación, la red comprueba que los datos de desbloqueo satisfacen las condiciones del script.Si ambas comprobaciones se superan, el gasto es válido.Si el script proporcionado no coincide con el hash, el gasto falla.Si el script coincide, pero las firmas u otras condiciones no se cumplen, el gasto también falla.Este proceso en dos pasos es la idea central de Pay-to-Script-Hash.Patrón básico de script P2SH
Un script de bloqueo P2SH estándar sigue un patrón sencillo.Suele escribirse como
Esto significa que la transacción de gasto debe proporcionar un script cuyo valor
La guía para desarrolladores de Bitcoin.org explica que P2SH se utiliza para enviar una transacción al hash de un script.
El script de desbloqueo proporciona los datos necesarios para el script de recuperación.También proporciona el propio script de recuperación.Una forma conceptual habitual es
¿Qué es un script de recuperación?
Un script de recuperación es el script oculto detrás de una dirección P2SH.Define las reglas de gasto reales de las monedas bloqueadas en esa dirección.Por ejemplo, un script de recuperación puede exigir que dos de tres claves públicas especificadas proporcionen firmas válidas.Esto daría lugar a una configuración multifirma 2 de 3.La dirección P2SH no muestra el script completo antes de que se gasten los fondos.Solo representa el hash del script de recuperación.Al gastar, el usuario revela el script de recuperación y demuestra que coincide con el hash.El usuario también debe proporcionar las firmas, claves públicas u otros datos que requiera el script.Por tanto, el script de recuperación es la verdadera política de seguridad de la salida P2SH.Si se pierde el script de recuperación, es posible que los fondos no se puedan gastar.Si el script es incorrecto, los fondos pueden quedar bloqueados bajo reglas que el usuario no pueda cumplir.Por ello, una wallet P2SH debe guardar copias de seguridad no solo de las claves privadas, sino también de los scripts necesarios para gastar.Formato de dirección P2SH
P2SH introdujo un nuevo formato de dirección de Bitcoin para que los usuarios pudieran compartir más fácilmente direcciones de pago basadas en hashes de scripts.BIP13 describe un formato de dirección Pay-to-Script-Hash en el que la dirección representa el hash codificado de un script, en lugar del hash codificado de una clave pública.
En la mainnet de Bitcoin, las direcciones P2SH suelen empezar por
Esto las distingue visualmente de las antiguas direcciones P2PKH, que suelen empezar por
La referencia de transacciones de Bitcoin.org indica que las direcciones P2SH utilizan el byte de versión
P2SH y los monederos multifirma
P2SH es conocido por haber facilitado el uso de los monederos multifirma.Un monedero multifirma requiere más de una clave privada para gastar fondos.Por ejemplo, un monedero multifirma 2 de 3 puede gastar fondos cuando firman dos de las tres claves aprobadas.Esto resulta útil para empresas, familias, cuentas de tesorería, acuerdos de depósito en garantía y almacenamiento personal en cold wallet.Sin P2SH, para enviar fondos a un script multifirma el remitente tenía que incluir el script multifirma completo en la salida.Con P2SH, el remitente solo envía los fondos a una dirección P2SH corta.La wallet del destinatario gestiona el script de recuperación multifirma cuando se gastan los fondos.Esto hizo que la multifirma fuera práctica para los pagos habituales.También simplificó las interfaces de wallet, ya que para el remitente una dirección multifirma podía parecer una dirección normal.El remitente no necesita saber si el destinatario utiliza una clave, varias claves o una configuración más compleja.El destinatario puede mejorar la seguridad sin complicar la experiencia del remitente.P2SH frente a P2PKH
P2PKH significa Pay-to-Public-Key-Hash.Es el tipo clásico de pago de Bitcoin en el que los fondos se bloquean al hash de una clave pública.Para gastar una salida P2PKH, quien la gasta proporciona una clave pública y una firma válida de la clave privada correspondiente.P2SH es distinto porque los fondos se bloquean al hash de un script.Ese script puede exigir una firma, varias firmas, una condición temporal u otra lógica permitida por Bitcoin Script.P2PKH es más sencillo.P2SH es más flexible.En la mainnet de Bitcoin, las direcciones P2PKH suelen empezar por
En la mainnet de Bitcoin, las direcciones P2SH suelen empezar por
P2SH frente a bare multisig
Bare multisig consiste en incluir un script multifirma directamente en la salida de una transacción.Esto era posible en Bitcoin antes de que P2SH se utilizara ampliamente.Sin embargo, bare multisig generaba salidas más grandes y obligaba al remitente a gestionar el script completo.P2SH mejoró este diseño al sustituir el script completo de la salida por un hash de script compacto.El script multifirma completo solo se revela cuando se gastan los fondos.Esto traslada los datos de la transacción de financiación a la transacción de gasto.Es más práctico porque el destinatario es quien elige y, posteriormente, satisface la política de gasto.Para los usuarios, el resultado práctico era sencillo.Podían recibir bitcoins en una configuración multifirma utilizando una dirección de aspecto normal.Esto ayudó a que la multifirma se convirtiera en una herramienta de seguridad habitual para la custodia de Bitcoin.P2SH y SegWit
P2SH volvió a cobrar importancia durante la adopción de SegWit.SegWit, definido en BIP141, introdujo los datos witness y nuevos tipos de salida, como P2WPKH y P2WSH.
La adopción inicial de SegWit se encontró con un problema de compatibilidad.Algunas wallets y servicios no podían enviar de inmediato a direcciones SegWit nativas.P2SH ofreció una solución de transición.Un script SegWit podía incluirse dentro de una dirección P2SH, lo que permitía a las wallets de envío antiguas pagar a una dirección que empezaba por
La guía de desarrollo de wallets Segregated Witness de Bitcoin Core indica que las wallets compatibles con SegWit deben admitir P2SH y su formato de dirección BIP13.
Esto convirtió P2SH en una herramienta de transición importante para la compatibilidad de las wallets de Bitcoin.SegWit anidado es menos eficiente que SegWit nativo, pero ayudó a usuarios y servicios a adoptar SegWit gradualmente.P2SH-P2WPKH
P2SH-P2WPKH significa Pay-to-Witness-Public-Key-Hash incluido dentro de P2SH.A menudo se denomina SegWit anidado.La dirección parece una dirección P2SH porque empieza por
BIP49 define un esquema de derivación para P2WPKH anidado en P2SH para wallets deterministas jerárquicas.
Esto ayudó a las wallets a organizar las cuentas SegWit anidadas de forma estandarizada.P2SH-P2WPKH fue especialmente útil durante el periodo de transición, cuando la compatibilidad con SegWit nativo no era universal.Hoy en día, muchas wallets pueden enviar directamente a direcciones SegWit nativas.Cuando SegWit nativo es compatible, suele ser más eficiente que SegWit anidado.P2SH-P2WSH
P2SH-P2WSH significa Pay-to-Witness-Script-Hash incluido dentro de P2SH.Su concepto es similar al de P2SH-P2WPKH, pero admite scripts witness más complejos.Un script P2WSH puede representar condiciones avanzadas, como políticas multifirma en la estructura witness de SegWit.Al incluirlo en P2SH, las wallets de envío antiguas podían pagar a esos scripts mediante una dirección familiar que empezaba por
P2SH frente a P2WSH
P2SH y P2WSH permiten bloquear fondos al hash de un script, pero no son lo mismo.P2SH es el diseño más antiguo de hash de script, introducido en BIP16.P2WSH es la versión de SegWit, que sitúa los datos del script y de la firma en la estructura witness.P2WSH puede ser más eficiente para muchos scripts complejos, porque los datos witness tienen un coste reducido conforme a las reglas de peso de Bitcoin.P2WSH también se beneficia de los cambios de estructura de transacción introducidos por SegWit.P2SH sigue siendo importante por su compatibilidad con sistemas heredados y por su adopción histórica.Una dirección P2SH empieza por
En la mainnet de Bitcoin, una dirección P2WSH SegWit nativa suele empezar por
P2SH frente a Taproot
Taproot es un tipo de salida de Bitcoin más reciente que puede mejorar la privacidad y la eficiencia de algunas políticas de gasto.Las salidas Taproot no son iguales que las salidas P2SH.Al gastar con P2SH, se revela el script de recuperación completo, aunque solo se utilice una de sus ramas lógicas.Taproot permite que algunas políticas complejas parezcan un gasto sencillo por la ruta de clave cuando se cumplen las condiciones cooperativas.Esto puede mejorar la privacidad, ya que los observadores quizá no vean las condiciones de script que no se hayan utilizado.Taproot también puede hacer más eficientes algunas políticas avanzadas de wallet.Sin embargo, P2SH sigue siendo importante porque forma parte de la historia de Bitcoin, de la compatibilidad de las wallets y del conjunto de monedas existente.Muchas direcciones y salidas antiguas siguen utilizando P2SH.Los usuarios no deben dar por hecho que todas las direcciones que empiezan por
Comisiones y tamaño de las transacciones
P2SH puede afectar a las comisiones de transacción porque los datos del script se revelan al gastar los fondos.Un gasto P2SH sencillo puede ser relativamente pequeño.Un gasto P2SH multifirma complejo puede ser mayor porque debe incluir el script de recuperación y varias firmas.Las comisiones de Bitcoin se basan en el peso o el tamaño de la transacción, según el contexto y el tipo de transacción.En general, los gastos de mayor tamaño cuestan más cuando las tasas de comisión son elevadas.Esta es una de las razones por las que SegWit nativo y Taproot resultaron atractivos para algunos usos.Pueden reducir los costes o mejorar la eficiencia en determinados patrones de gasto.Aun así, P2SH supuso una mejora importante respecto a incluir scripts complejos directamente en la salida.Permitió que la transacción de financiación fuera compacta y trasladó la complejidad al gasto.Los usuarios deberían comprobar las estimaciones de comisiones de la wallet antes de gastar desde wallets P2SH complejas, especialmente las multifirma.Características de privacidad de P2SH
P2SH oculta el script de recuperación hasta que se gastan las monedas.Esto significa que los observadores no pueden ver la política de gasto completa cuando se reciben las monedas.Solo pueden ver el hash del script.Cuando se gastan las monedas, el script de recuperación queda visible on-chain.En ese momento, los observadores a menudo pueden identificar si la salida utilizaba multifirma, SegWit anidado u otro patrón de script.Esto ofrece privacidad parcial, no privacidad completa.P2SH puede ocultar la complejidad antes del gasto, pero no oculta el script para siempre.Además, el propio formato de dirección puede revelar que la salida es P2SH.El análisis de blockchain aún puede identificar el comportamiento de las wallets, la reutilización de direcciones, los patrones de gasto y las relaciones entre transacciones.Los usuarios no deben considerar P2SH una solución de privacidad por sí sola.Ventajas de seguridad de P2SH
La principal ventaja de seguridad de P2SH es que facilitó la recepción de fondos en custodia multifirma.La multifirma puede reducir el riesgo de robo de una única clave, ya que un atacante podría necesitar más de una para gastar los fondos.La segunda ventaja es que P2SH reduce la necesidad de que el remitente gestione scripts complejos.Esto disminuye la posibilidad de que el remitente cree por error un script de salida incorrecto.La tercera ventaja es que P2SH permite a los destinatarios elegir su propia política de seguridad.Una empresa puede utilizar multifirma sin pedir a todos sus clientes que entiendan la configuración interna de su wallet.La cuarta ventaja es la flexibilidad para actualizarse.P2SH ayudó a facilitar la adopción de SegWit anidado cuando la compatibilidad de envío con SegWit nativo aún era desigual.La quinta ventaja es la compacidad del hash de script.Es más fácil codificar un hash corto en una dirección que un script de recuperación completo.Estas ventajas convirtieron P2SH en una de las mejoras de usabilidad más importantes de la historia de los scripts de Bitcoin.Riesgos de seguridad de P2SH
El principal riesgo es perder el script de recuperación.Si un usuario conserva las claves privadas, pero no el script necesario para gastar, es posible que no pueda acceder a los fondos.Esto es especialmente importante en las wallets multifirma.El segundo riesgo es crear un script de recuperación incorrecto.Si se envían fondos al hash de un script que nadie puede satisfacer, pueden quedar bloqueados permanentemente.El tercer riesgo es no entender los tipos de dirección.Una dirección que empieza por
P2SH y las copias de seguridad de wallet
Las wallets P2SH pueden exigir prácticas de copia de seguridad más cuidadosas que las wallets sencillas de una sola clave.En una wallet P2PKH sencilla, guardar la frase de recuperación puede ser suficiente si la wallet sigue rutas de derivación estándar.En una wallet multifirma P2SH, el usuario puede necesitar las frases de recuperación, las claves públicas, las rutas de derivación, la política de la wallet y la información del script de recuperación.Si falta parte de esta información, la recuperación puede resultar difícil.Las wallets multifirma modernas suelen exportar descriptores de wallet o ficheros de configuración para resolver este problema.Un descriptor puede especificar cómo se generan las direcciones y los scripts.Sin esa información, el usuario puede no saber qué claves y scripts controlan los fondos.Por esta razón, los usuarios de multifirma deberían probar la recuperación antes de depositar cantidades importantes.Una dirección P2SH puede parecer sencilla, pero la política de wallet que hay detrás puede ser compleja.Las buenas copias de seguridad deben conservar esa complejidad de forma que pueda recuperarse.P2SH y los desarrolladores
Los desarrolladores que trabajan con P2SH deben entender tanto la codificación de direcciones como la validación de scripts.Deben crear correctamente el script de recuperación.Deben calcular correctamente su hash.Deben codificar correctamente la dirección.Deben crear transacciones de gasto que proporcionen los datos de desbloqueo y el script de recuperación adecuados.Deben probar casos límite como el orden de multifirma, la codificación de firmas, los límites de dust, la estimación de comisiones, el peso de las transacciones y la recuperación de la wallet.También deben distinguir entre P2SH heredado y P2SH de SegWit anidado.Para los usuarios, ambos pueden parecer similares porque utilizan direcciones que empiezan por
P2SH y los usuarios
La mayoría de los usuarios no necesitan crear scripts P2SH manualmente.Se encuentran con P2SH a través de direcciones de wallet, bóvedas multifirma, configuraciones de custodia o wallets antiguas compatibles con SegWit.Si una wallet muestra al usuario una dirección que empieza por
Usos habituales de P2SH
El uso más conocido de P2SH es la custodia multifirma.Una familia, empresa o tesorería puede exigir varias claves para mover fondos.Otro uso es el depósito en garantía.Un script puede exigir firmas de las partes acordadas bajo condiciones específicas.Otro uso es la recepción de SegWit compatible con sistemas heredados.Una wallet puede utilizar el envoltorio P2SH para que remitentes con sistemas antiguos puedan pagar a una wallet compatible con SegWit.Otro uso es el control de acceso basado en scripts.Las monedas pueden bloquearse mediante reglas de script más avanzadas que la combinación de una clave y una firma.Otro uso es la recuperación de wallets antiguas.Muchas wallets y direcciones antiguas de Bitcoin utilizaban P2SH, por lo que es importante entenderlo al recuperar fondos antiguos.P2SH sigue formando parte del historial de transacciones activo de Bitcoin, aunque los tipos de salida más recientes sean cada vez más habituales.Malentendidos habituales sobre P2SH
Un malentendido habitual es creer que todas las direcciones que empiezan por
Buenas prácticas para P2SH
Utiliza software de wallet de confianza que gestione correctamente los scripts P2SH.No crees scripts de recuperación manualmente a menos que entiendas Bitcoin Script en profundidad.Haz copias de seguridad de todos los datos necesarios sobre la política de wallet, no solo de las frases de recuperación.En las wallets multifirma, guarda de forma segura la información de los cosignatarios y las rutas de derivación.Prueba la recuperación con cantidades pequeñas antes de utilizar saldos elevados.Da preferencia a SegWit nativo o Taproot cuando sean compatibles y adecuados para el caso de uso.Utiliza la compatibilidad P2SH solo cuando resuelva un problema real de compatibilidad de wallets.Verifica la dirección completa antes de enviar fondos.Evita reutilizar direcciones cuando la privacidad sea importante.Comprueba las estimaciones de comisiones antes de gastar desde salidas P2SH complejas.Mantén actualizado el software de la wallet para que pueda reconocer y gastar correctamente salidas P2SH antiguas.Entiende la diferencia entre las direcciones multifirma P2SH heredadas y las direcciones P2SH de SegWit anidado.P2SH en una frase
P2SH (Pay-to-Script-Hash) es un tipo de salida de Bitcoin que bloquea monedas al hash de un script de recuperación, de modo que el remitente puede pagar a una dirección sencilla y quien gasta los fondos puede revelar y satisfacer posteriormente el script completo.Preguntas frecuentes
¿Qué significa P2SH?
P2SH significa Pay-to-Script-Hash.¿Para qué se utiliza P2SH?
P2SH se utiliza para bloquear bitcoins al hash de un script, lo que facilita recibir pagos sujetos a reglas de gasto complejas mediante una dirección de aspecto normal.¿Por qué número empieza una dirección P2SH?
En la mainnet de Bitcoin, una dirección P2SH suele empezar por
¿Quién introdujo P2SH?
P2SH se estandarizó mediante BIP16, redactado por Gavin Andresen.¿Cuál es el propósito de P2SH?
Su propósito es trasladar del remitente a quien gasta los fondos la responsabilidad de proporcionar las condiciones de gasto complejas.¿Qué es un script de recuperación?
Un script de recuperación es el script completo que define cómo se pueden gastar las monedas bloqueadas en una salida P2SH.¿El remitente necesita conocer el script de recuperación?
No. El remitente solo necesita la dirección P2SH que representa el hash del script.¿Cuándo se revela el script de recuperación?
El script de recuperación se revela cuando se gasta la salida P2SH.¿P2SH es lo mismo que multifirma?
No. P2SH no es lo mismo que multifirma, aunque suele utilizarse para facilitar la recepción de pagos en wallets multifirma.¿Todas las direcciones que empiezan por 3 son multifirma?
No. Una dirección que empieza por
¿Se sigue utilizando P2SH hoy en día?
Sí. P2SH sigue apareciendo en transacciones de Bitcoin, especialmente por compatibilidad y en wallets antiguas, aunque muchos usuarios prefieren SegWit nativo o Taproot cuando son compatibles.¿Cuál es el mayor riesgo de P2SH?
El mayor riesgo es perder o construir incorrectamente el script de recuperación o la política de wallet, lo que puede impedir gastar los fondos.Conclusión
P2SH (Pay-to-Script-Hash) es una de las actualizaciones más importantes de la historia de los scripts de Bitcoin.Hizo prácticas las reglas de gasto complejas al permitir que los usuarios recibieran bitcoins mediante una dirección compacta basada en el hash de un script.El remitente no necesita entender el script completo.Quien gasta los fondos revela y satisface el script de recuperación únicamente al gastarlos.Este diseño facilitó el uso de monederos multifirma y ayudó a Bitcoin a admitir modelos de custodia más sólidos.También ayudó a Bitcoin a adoptar SegWit mediante formatos de dirección con SegWit anidado.P2SH no es el tipo de salida de Bitcoin más reciente ni el más eficiente en todos los casos.SegWit nativo y Taproot pueden ofrecer ventajas en comisiones, privacidad y diseño de scripts cuando son compatibles.Sin embargo, P2SH sigue siendo importante porque influyó en la forma en que las wallets de Bitcoin gestionan scripts avanzados y porque muchas salidas existentes todavía lo utilizan.Para los usuarios, la principal lección es que una dirección sencilla puede ocultar una política de gasto compleja.Para los desarrolladores, la lección principal es que la corrección de los scripts, las copias de seguridad y los datos de recuperación de la wallet son fundamentales.Para el ecosistema Bitcoin, P2SH demostró cómo una actualización del protocolo puede mejorar la usabilidad y conservar la descentralización y la compatibilidad.Entender P2SH ayuda a comprender la multifirma, SegWit anidado, los hashes de scripts, los scripts de recuperación y la cuidadosa filosofía de diseño de las actualizaciones de Bitcoin.También te puede interesar
WhatsMiner M30S++
Dominios Web3
Proyectos Web3
POPULAR
Criptomonedas de moda que están acaparando la atención del mercado
Volumen TOP
Las criptomonedas con mayor volumen de trading
Recién Añadidos
Criptomonedas recientemente listadas y disponibles para operar

