SegWit: ¿cuál es la dirección a la que debo depositar?

Estoy usando bitcoin core 0.16.0 y regtestllamo a getnewaddress.
Obtengo "2N4dpih8KAdfJyXn2vhWixUwmYJ6DBfeRM1"
.
{ "isvalid": true, "address": "2N4dpih8KAdfJyXn2vhWixUwmYJ6DBfeRM1", "scriptPubKey": "a9147cef86e3cf39b81f5263375b798536f19d4e8d0687", "ismine": true, "iswatchonly": false, "isscript": true, "iswitness": false, "script": "witness_v0_keyhash", "hex": "00147568d37152e5b720780b2e4d2346db97b2af5d8f", "pubkey": "0211ea7f9c2f4aba987926365ecbe009788d6ca905231f28828ff301d261cfc06d", "embedded": { "isscript": false, "iswitness": true, "witness_version": 0, "witness_program": "7568d37152e5b720780b2e4d2346db97b2af5d8f", "pubkey": "0211ea7f9c2f4aba987926365ecbe009788d6ca905231f28828ff301d261cfc06d", "address": "bcrt1qw45dxu2jukmjq7qt9exjx3kmj7e27hv0umayga", "scriptPubKey": "00147568d37152e5b720780b2e4d2346db97b2af5d8f" }, "addresses": [ "bcrt1qw45dxu2jukmjq7qt9exjx3kmj7e27hv0umayga" ], "account": "", "timestamp": 1517310214, "hdkeypath": "m/0'/0'/37'", "hdmasterkeyid": "c975977fb41bc2613d6cda5f10b917a2954893ad" }

¿Cuál es la dirección de segwit? ¿Es el que obtuve de getnewaddress o "bcrt1qw45dxu2jukmjq7qt9exjx3kmj7e27hv0umayga" dentro de la sección "incrustada" con "iswitness": verdadero?

Entonces, para verificar este problema, envié a ambas direcciones 2 btc en el registro y decodifiqué la transacción sin procesar, para 2N4dpih8KAdfJyXn2vhWixUwmYJ6DBfeRM1 tx es:

{ "txid": "03a9d0e354d2ab25a5b14d0aa9a7651e7209a61596cd81886a501a6968cfb721", "hash": "668ca307cf165b2e5658de7278545ddaad3e071147d41293f60471442a3eddd9", "version": 2, "size": 247, "vsize": 166, "locktime": 115, "vin": [ { "txid": "cea9f59c19c8dbaf1e2cb253a2980228a45c9658b8b7e48a87288a1d269867f9", "vout": 0, "scriptSig": { "asm": "00142f6c397ad231f08de05da5d0aee634dd5974f75a", "hex": "1600142f6c397ad231f08de05da5d0aee634dd5974f75a" }, "txinwitness": [ "304402201d063a846bc7f8504399d47649e7749e4c6c68070cb2840fb72d1c3f2cc717f302202b0314aea962da5aa056e33e71315ad9f0e4e0501dacc800fee82b70c870e79601", "03ecef34be2e1f0a1dc7ec43fa2248cf0d06d85be13c8220aec6bda0d0405c19c2" ], "sequence": 4294967293 } ], "vout": [ { "value": 4.00029480, "n": 0, "scriptPubKey": { "asm": "OP_HASH160 bf181b015a2022e0d2d63c2af8793c0addb117ce OP_EQUAL", "hex": "a914bf181b015a2022e0d2d63c2af8793c0addb117ce87", "reqSigs": 1, "type": "scripthash", "addresses": [ "2NAfdvoVHL3XWtiyB4ULkB7sST71ZafEVXg" ] } }, { "value": 1.00000000, "n": 1, "scriptPubKey": { "asm": "OP_HASH160 7cef86e3cf39b81f5263375b798536f19d4e8d06 OP_EQUAL", "hex": "a9147cef86e3cf39b81f5263375b798536f19d4e8d0687", "reqSigs": 1, "type": "scripthash", "addresses": [ "2N4dpih8KAdfJyXn2vhWixUwmYJ6DBfeRM1" ] } } ] }

y para bcrt1qw45dxu2jukmjq7qt9exjx3kmj7e27hv0umayga tx es:
{ "txid": "ed857e7318cca006a7f1f975c65742a1cdddf36e46b6f37b958e402c99da47f5", "hash": "ed40689ddf66c293ec9cc2c10fb7bb732c7b4e1e3d48c6ae0cd3644a4cad6b27", "version": 2, "size": 222, "vsize": 141, "locktime": 115, "vin": [ { "txid": "982bb35cc6057afbe92c75527b6c62b4ec855f4155042ef0fadbf784e1b60267", "vout": 0, "scriptSig": { "asm": "", "hex": "" }, "txinwitness": [ "3044022073995927c65c6dade5b8e141fb5c16095b233e163ce5fa28cd18eeb73f68f45f0220749ec988d670cb04b6aec57c0f43bf8ba67331849ce76c70e92a2c7605bb26bd01", "0379cc68acccb4442006844530052f7b5fbfe84e5ebb46a1f509f9fc474be4715c" ], "sequence": 4294967293 } ], "vout": [ { "value": 29.00024460, "n": 0, "scriptPubKey": { "asm": "0 acf33e42618956e6df4e1265d7c44500d0fa3c1e", "hex": "0014acf33e42618956e6df4e1265d7c44500d0fa3c1e", "reqSigs": 1, "type": "witness_v0_keyhash", "addresses": [ "bcrt1q4nenusnp39twdh6wzfja03z9qrg050q76nct4r" ] } }, { "value": 1.00000000, "n": 1, "scriptPubKey": { "asm": "0 7568d37152e5b720780b2e4d2346db97b2af5d8f", "hex": "00147568d37152e5b720780b2e4d2346db97b2af5d8f", "reqSigs": 1, "type": "witness_v0_keyhash", "addresses": [ "bcrt1qw45dxu2jukmjq7qt9exjx3kmj7e27hv0umayga" ] } } ] }
Entonces, entiendo que "bcrt1qw45dxu2jukmjq7qt9exjx3kmj7e27hv0umayga" es la dirección de SegWit porque veo en vout que el tx usa "witness_v0_keyhash" para firmar el 1 btc. Estoy en lo correcto ? si es así, ¿por qué necesito llamar a validateaddress en la dirección heredada para ver su dirección SegWit? Qué estoy haciendo mal ?

Respuestas (1)

La dirección a la que debe enviar es 2N4dpih8KAdfJyXn2vhWixUwmYJ6DBfeRM1 , ya que esa es la salida de getnewaddress.

Esa es una dirección P2SH-P2WPKH, que se convirtió en la predeterminada en 0.16. No es una dirección heredada, sino una dirección de segwit integrada en P2SH.

Si desea una dirección P2WPKH (nativa, bech32), debe indicar getnewaddressque es lo que desea llamando al getnewaddress "" "bech32". Alternativamente, puede indicar bitcoindque siempre desea addresstype=bech32ingresar bitcoin.conf.

Nunca intente convertir un tipo de dirección en otro usted mismo. validateaddresste está dando información sobre la dirección que pasaste. bitcoindNo espera pagos a nada más que a la dirección que getnewaddresste dieron.

¿Tendré que usar bech32 en algún momento de la futura adopción de segwit?
Si te gusta. No hay razón por la que tengas que hacerlo. Es un poco más barato para usted si lo hace (ya que las transacciones de gasto tendrán un peso menor).
@PieterWuille ¿Quiso decir que usando direcciones bech32 pagamos menos tarifas de tx?
Sí, si recibe monedas usando direcciones bech32 (como en: está dando direcciones bech32 a otras personas que le pagan), le resultará (con el tiempo) más barato enviar monedas. La diferencia para las transacciones típicas es de alrededor del 20%.