¿Es posible convertir una dirección de p2pkh a p2sh?

¿Es posible convertir una dirección p2pkh en una dirección p2sh?

Además, ¿se transferirá el saldo de la dirección p2pkh a la dirección p2sh?

Respuestas (2)

¿Es posible convertir una dirección p2pkh en una dirección p2sh?

No.

Las direcciones están determinadas por la billetera. Es la billetera del destinatario que dice "Aceptaré el pago cuando llegue a la dirección X". Enviarlo a otra dirección puede significar que la billetera no lo reconoce. En el peor de los casos, si el receptor tiene algún módulo de seguridad de hardware que almacena la clave, puede ser literalmente imposible incluso recuperar los fondos cuando se envían a la dirección incorrecta.

Esto no es diferente de deberle dinero a un amigo y "pagarlo" enterrando un sobre con dinero en efectivo en su jardín. Técnicamente, puede considerar que se trata de una transferencia de fondos a ellos, pero si no se hace de una manera conocida o incluso reconocible por ellos, es muy difícil considerarlo un pago.

Como remitente, no debería preocuparse por el tipo de dirección que le da el destinatario y, desde luego, no tratar de adivinar cómo puede modificarla.

Como receptor, si desea dar una dirección P2SH (¿presumiblemente porque desea seguridad multisig o segwit?), simplemente actualice su billetera a un software que admita dicha función y cree una nueva dirección.

¿También se trasladará el saldo de la dirección p2pkh a la dirección p2sh?

No, las direcciones no tienen saldos.

Si bien estoy de acuerdo con Pieter en que, por lo general, no debe hacer esto, se puede obtener cierta comprensión técnica al saber cómo se puede hacer esto. Lo siguiente es para referencia:

P2PKH

Una dirección P2PKH A se crea a partir de la clave pública K de la siguiente manera:

A = BASE58CHECK(0x00 HASH160( K ))

Donde HASH160( K ) es equivalente a RIPEMD160( SHA256( K ) ) y 0x00 representa el byte de versión (para P2PKH)

P2SH

Con las direcciones P2SH, en lugar de codificar la clave pública, codifica un script de transacción .

Una transacción multisig 1 de 1 se crea concatenando los siguientes valores de bytes:

OP_0 0x14 HASH160( K )

Por lo tanto, para crear una P2SHdirección que utilice una transacción multisig 1 a 1, la construye de la siguiente manera:

BASE58CHECK( 0x05 HASH160( OP_0 0x14 HASH160( K ) ) )

Donde 0x05 es el byte de versión para las direcciones hash del script y 0x14 es la cantidad de bytes que se esperan en HASH160( K ).

Referencia de secuencias de comandos de Bitcoin