¿Cómo "intercambiamos monedas en una cadena de bloques por las de la otra"?

Con la llegada de Segwit y BIP-148, he estado tratando de averiguar qué sucederá exactamente con Bitcoin después del 1 de agosto, viendo videos y leyendo artículos. Una cosa (entre muchas otras) me confunde..

Algunos dicen que puede intercambiar Bitcoins en una cadena de bloques (por ejemplo, la cadena de bloques heredada) por Bitcoins en la otra (por ejemplo, la cadena de bloques BIP-148). No entiendo cómo se puede hacer esto. De hecho, no creo que esto sea posible. Este es mi razonamiento:

Digamos que tengo 20 BTC en la cadena de bloques (heredada) antes del 1 de agosto. Ahora, llega el 1 de agosto y tenemos una bifurcación blanda BIP-148. Ahora, tengo 20 BTC en ambas, la cadena de bloques Legacy y la cadena de bloques BIP-148. Ahora, para "intercambiar Bitcoins en una cadena de bloques por otra" (o para cualquier otra transferencia), tengo que hacer una transacción: enviar o recibir.

Supongamos que envío 15 BTC a una persona P. Esta transacción se transmitirá a todos los nodos/mineros de la red, independientemente de si ese nodo/minero ejecuta el software BIP-148 o no. Si:

  1. Un minero BIP-148 resuelve la transacción primero: ese bloque se adjuntará a ambas cadenas de bloques. El minero Legacy dejará de intentar resolver esa transacción.
  2. Un minero de Legacy resuelve la transacción primero: el bloque se adjuntará a la cadena de bloques Legacy y todos los nodos BIP-148 rechazarán este bloque. Pero, los mineros BIP-148 todavía tienen esta transacción en su mempool. Seguirán tratando de resolverlo y eventualmente lo resolverán.

En los dos casos anteriores, el saldo de BTC tanto mío como de la persona P es el mismo en ambas cadenas de bloques.

Me parece que la única forma de tener saldos diferentes para una cuenta en particular (clave pública) es si alguien intenta hacer un gasto doble. (He llegado a esta conclusión después de hacer algunos análisis).

Entonces, ¿cómo se intercambian monedas en una cadena de bloques por monedas en la otra, de manera confiable?

Respuestas (1)

Hay dos formas de evitar la repetición de transacciones (además de que, para empezar, se integre algo en la bifurcación). Puede contaminar sus monedas o gastar dos veces.

Manchar sus monedas requiere que obtenga acceso a las monedas creadas después de la bifurcación en al menos una de las cadenas. Si crea una transacción que incluye una entrada de una transacción de base de monedas creada en la cadena BIP 148, entonces esa transacción no es válida en la cadena que no es BIP 148. Y viceversa. Entonces, cualquier transacción que gaste de esta transacción contaminante solo será válida en una cadena.

La otra forma es realizar un doble gasto. Supongamos que la cadena BIP 148 tiene menos tasa de hash (y, por lo tanto, bloques más lentos). Realiza una transacción que señala RBF que probablemente se confirme en el siguiente bloque en la cadena 148 que no es BIP. Dado que la cadena que no es BIP 148 produce bloques más rápidamente, es probable que su transacción se confirme en la cadena que no es BIP 148 antes que en la cadena BIP 148. Una vez que tenga una confirmación en la cadena que no sea BIP 148, cree un gasto doble que pague una tarifa más alta (para aprovechar RBF) y envíe las monedas a una dirección diferente. Luego, esta transacción se confirmará en la cadena BIP 148, ya que no es válida en la cadena que no es BIP 148 y ha reemplazado al original. Sus monedas ahora están separadas y no estarán en riesgo de repetición de transacciones.