Cómo generar una dirección SegWit

¿Cómo genero una dirección SegWit usando Bitcoin Core CLI? ¿También podré canjear esas salidas y enviarlas a una dirección "heredada"? Si es así, ¿esta segunda transacción será aceptada por clientes más antiguos que no sean de SegWit?

Se pretende que no sea fácil para los usuarios crear direcciones P2WPKH hasta que esté en vivo en la red.
No parece ser complicado según la respuesta a continuación.

Respuestas (1)

¿Cómo genero una dirección SegWit usando Bitcoin Core CLI?

Puede usar addwitnessaddress addr, donde addr es una dirección P2PKH o P2SH existente. Construirá una dirección P2SH-P2WPKH o P2SH-P2WSH con la misma clave/script, si se sabe que es válida.

Tenga en cuenta que este comando no está disponible hasta que SegWit esté activo en la red, ya que antes de ese momento, todos podrían gastar tales salidas.

Desde Bitcoin Core v0.16.0, las direcciones P2SH-P2WPKH son las predeterminadas y el addwitnessaddressRPC está en desuso.

¿También podré canjear esas salidas y enviarlas a una dirección "heredada"?

Sí.

Si es así, ¿esta segunda transacción será aceptada por clientes más antiguos que no sean de SegWit?

Sí, es un softfork. Cada nueva transacción es válida de acuerdo con la regla anterior. De lo contrario, se produciría una división de la cadena. Sin embargo, es posible que los clientes más antiguos no vean la transacción hasta que se confirme.

Eso significa que necesito generar una dirección "heredada" y luego pasarla a addwitnessaddress y devolverá una dirección "segwit". ¿Y podré enviar los bitcoins recibidos en esa dirección "segwit" a cualquier otra dirección y los clientes más antiguos no se quejarán ("recibirán" esos bitcoins)?
Sí a todos esos.
en caso de que alguien esté interesado: la dirección heredada utilizada para crear la dirección SegWit y la dirección testigo resultante comparten la misma clave privada.
¿Hay quizás algún beneficio en usar una dirección P2SH en lugar de una dirección P2PKH?
¿Por qué necesita hacer esta estupidez de agregar testigos a una dirección diferente? No tiene ningún sentido.
Imita a addmultisigaddress y le enseña a la billetera a buscar una dirección en particular y cómo gastar. La implementación inicial de SegWit solo tenía un soporte de billetera rudimentario suficiente para las pruebas, pero no queríamos hacer todo el trabajo de implementación si SegWit no se hubiera activado. Ahora lo ha hecho, por lo que la próxima versión de Bitcoin Core hará que las direcciones de SegWit sean predeterminadas (eliminando la necesidad de una llamada RPC y teniendo una mejor recuperación de respaldo).
@venzen Daría una dirección P2SH si quisiera una dirección SegWit para una condición de gasto multisig, ya que no se pueden expresar usando P2PKH.
Intenté estas instrucciones. No he descargado la cadena de bloques completa. Recibo este error: el testigo segregado no está habilitado en la red (código -4)
creo que github.com/bitcoin/bitcoin/pull/11400 resuelve el error mencionado anteriormente que obtuve.
¿Cómo se genera la dirección heredada a partir de su dirección segwit correspondiente? hay un comando como el siguiente: getlegacyaddress <segwit addr>
@Karan Parece que podría ser una pregunta separada.
seguro @PieterWuille. Agregué un comentario aquí: bitcoin.stackexchange.com/questions/63472/…
"addwitnessaddress está en desuso y se eliminará por completo en v0.17. Para usar addwitnessaddress en v0.16, reinicie bitcoind con -deprecatedrpc=addwitnessaddress. Los proyectos deben pasar a usar el argumento address_type de getnewaddress, o la opción -addresstype=[bech32|p2sh -segwit] en su lugar. (código -32)" de bitcoin core 0.16
¿Todavía puedo generar una dirección "heredada" con core 0.16?
Sí, corre con -addresstype=legacy.
Abrí una nueva Q sobre el soporte heredado de V0.16 bitcoin.stackexchange.com/questions/73411/…