Limite tx a la cadena SegWit1x o 2x

Dada la falta de protección de reproducción cuando la bifurcación SegWit2x se divide en una cadena diferente, ¿existe un mecanismo seguro para transmitir un tx para que solo sea aceptado por los nodos de cadena 1x o 2x?

Si la respuesta es no, una opción sería ejecutar un nodo completo de bitcoin-core y btc1 y enviarme monedas a mí mismo en el nodo btc1. Una vez que se acepta tx en el bloque SegWit2x y NO en el bloque 1x, ¿habría dividido mis monedas de manera segura? Si el tx se reprodujo en la cadena 1x, podría intentarlo de nuevo, con suerte no demasiadas veces para evitar cargos.

Respuestas (2)

Todas las transacciones serían reproducibles en ambas cadenas, incluso después de que se confirmara una en un bloque en una cadena, porque dado que ambas cadenas comienzan con el mismo conjunto de UTXO, las transacciones que gastan esos UTXO son válidas en ambas cadenas. La única excepción son las monedas extraídas en cada cadena después de la bifurcación, porque esas monedas no serán válidas en la otra cadena. Así es como puede dividir sus monedas, necesitaría mezclar sus monedas en transacciones que usan monedas extraídas después de la bifurcación, por lo que solo son válidas en una cadena. En el caso de tal división, supongo que los mineros de ambas cadenas lanzarán algún tipo de servicio para comenzar a mezclar las monedas de las personas y dividirlas.

EDITAR: Ledger ha anunciado que ofrecerá una herramienta para hacer eso, es probable que otros también lo hagan: https://twitter.com/LedgerHQ/status/921730827117096960

Comprendido. En ese caso, incluso los grandes intercambios (no mineros) van a tener el problema de que no podrán dividir las monedas como lo han hecho con BCH y BGold. Por ejemplo, una de las publicaciones de coinbase.com indica que los clientes de BTC obtendrán la misma cantidad de B2X, pero si eso sucede y un cliente gasta su B2X, ¿el receptor también podría obtener su BTC?
Lo más probable es que los retiros se deshabiliten hasta que todo se solucione :)
Existe otra alternativa (pero no muy relevante): usar transacciones con más de 4M de peso. Tal txn no sería válido en Bitcoin, pero solo no estándar en 2X.

El documento de diseño de alto nivel de chainspl.it describe los 4 mecanismos diferentes que usarán para crear monedas que solo son válidas en una de las cadenas bifurcadas. Los detalles están en el documento, pero mi resumen rápido es:

  • Nuevas monedas coinbase. Como señaló @MeshCollider, si un utxo se incluye en un bloque con una moneda coinbase, solo es válido en la cadena que generó el tx coinbase. Las monedas de Coinbase solo se pueden gastar después de 100 bloques adicionales y tendría que haber alguna sincronización con un minero para obtener un utxo específico en el mismo bloque que el de Coinbase.

  • nTiempo de bloqueo. Si las cadenas divergen lo suficiente por la altura del bloque, entonces un tx puede usar el nlocktime para gastar inmediatamente en una cadena y luego transferirse las monedas a usted mismo en la otra cadena ANTES de que se alcance el tiempo de bloqueo.

  • Transacción masiva. Según el comentario de @Pieter Wuille sobre la respuesta aceptada. Obtenga un tx incluido en un bloque que exceda los límites de tamaño de Segwit1x. Parece probable que esto requiera un tx muy grande y resulte en una tarifa muy alta,

  • Tarifas altas/bajas. Una gran diferencia entre las tarifas en las cadenas podría significar que un tx con una tarifa baja solo se acepta en una cadena. Este enfoque sería muy arriesgado ya que un minero en la cadena costosa podría incluir arbitraria o maliciosamente el tx en la cadena de tarifas altas.

La idea de nLockTime es interesante, podría usarse aquí dependiendo de cómo caiga el poder de hash después de la división, ¡gracias!