Cómo verificar la propiedad de la billetera con la dirección segwit

Entonces... esto parece una pregunta simple.

Si tengo una billetera y alguien quiere enviarme BTC. Quiero asegurarme de que son dueños de la billetera desde la que afirman estar enviando fondos. Por lo general, las personas hacen algo como una prueba de satoshi para confirmar esto.

Antes de que segwit, uno pudiera firmar un mensaje y con la dirección dada, podría descifrar el mensaje para confirmar que realmente posee la billetera que contiene esa dirección.

Después de segwit, esa funcionalidad está rota.

Además, no puedo tomar el getrawtransaction <trans> 1comando para encontrar el vinde la transacción y el para extraer el txidy voutdel vin. Luego, usando eso txidy nuevamente, ejecute getrawtransaction <trans> 1y observe la coincidencia vouty la "n" que coincide con la anterior voutya no funciona después de segwit. (Todo esto tiene sentido ya que la forma en que se forman las transacciones es completamente diferente).

Por lo tanto: si se supone que alguien debe enviarme 0.00001 BTC, ¿cómo verifico de qué billetera proviene?

En términos más simples: ¿Cómo puedo verificar que alguien posee una billetera con direcciones segwit?

Respuestas (1)

Antes de que segwit, uno pudiera firmar un mensaje y con la dirección dada, podría descifrar el mensaje para confirmar que realmente posee la billetera que contiene esa dirección.

Como descubrió, los RPC signmessagey verifymessageen Bitcoin Core actualmente no funcionan con segwit. Ha habido debates sobre la mejor manera de solucionarlo, pero al momento de escribir este artículo, el código actualizado aún no está disponible.

Además, no puedo usar el comando getrawtransaction 1 para

El getrawtransactionRPC ahora toma trueen lugar de 1para una salida JSON detallada. Los campos txid, vouty vinen la salida JSON son iguales para la forma en que los está usando (solo tienen algunos campos adicionales ahora para salidas y entradas de segwit).

¿Cómo puedo verificar que alguien posee una billetera con direcciones segwit?

No hay una manera fácil en este momento de usar Bitcoin Core o cualquier otro software que conozca. Si es posible, es posible que desee cambiar su flujo de trabajo para que no necesite verificar la propiedad de la billetera. Por ejemplo, si actualmente recibe todos los pagos en la misma dirección, puede comenzar a usar direcciones separadas para cada cliente, de modo que Alice pague $ADDRESS_1, Bob pague $ADDRESS_2 y pueda diferenciar entre sus pagos por qué dirección pagaron.

Alternativamente, si necesita verificar la propiedad de la dirección para los reembolsos, puede hacer que los usuarios proporcionen una dirección de reembolso al finalizar la compra.

Puedo ver en este escenario que tendría sentido. Estoy hablando de un escenario general. Alguien afirma que tiene 10,000 BTC. ¿Cómo puedo verificar esa afirmación?