¿Se puede perder una transacción?

Dado que estoy conectado a la red con al menos un par, ¿puedo estar seguro de que una transacción que envié se ejecutará (ya sea con éxito o falla)? ¿Existe la posibilidad de que nunca llegue a la cadena de bloques, de modo que el remitente no gaste nada? ¿Qué sucede si se incluyó en algún bloque, pero luego el bloque queda huérfano? ¿Se "eliminará" mi transacción?

Si existe tal posibilidad, ¿cómo lidiar con ella? Dado que registro el TxHash, ¿puedo/debo verificarlo regularmente, y si aún no existe después de una "gran" cantidad de bloques, alertar al usuario que su transacción no se ejecutó y debe enviarla nuevamente? Esta solución parece que es propensa a duplicar el gasto. Además, de esta respuesta entiendo que una transacción puede desaparecer y reaparecer mucho más tarde, por lo que la "gran" cantidad de bloques a esperar es indefinida. Entonces , ¿ cómo puedo asegurarme de que una transacción esté incluida en la cadena de bloques?

Gracias

Respuestas (1)

Las cadenas de bloques basadas en la Prueba de trabajo son probabilísticas y, a medida que se construyen más bloques sobre el bloque que contiene una transacción, la probabilidad de que una reorganización de la cadena elimine ese bloque y la transacción se vuelve extremadamente baja.

¿Puedo/debo verificarlo regularmente, y si aún no existe después de una "gran" cantidad de bloques, alertar al usuario de que su transacción no se ejecutó y debe enviarla nuevamente?

Sí, y para ver algunos códigos, consulte ¿Cómo puede una DApp detectar una reorganización de bifurcación o cadena usando web3.js o bibliotecas adicionales?

En mainnet, alrededor de 12 confirmaciones se consideran seguras. (En redes de prueba como Ropsten, las garantías son mucho más débiles e incluso 64 confirmaciones son insuficientes ).

Para asegurarse de que una transacción esté incluida en la cadena de bloques, asegúrese de que tenga:

  • un precio de gasolina razonable (para que los mineros lo incluyan en un bloque)

  • suficiente gasolina (para que no se revierta la transacción)

Luego transmita la transacción a una docena de pares y supervísela usando múltiples clientes.

¡Excelente! Muchas gracias por esta respuesta. Por lo tanto, no hay forma de estar 100% seguro, pero podemos estar "lo suficientemente seguros" después de una serie de confirmaciones.
Por las matemáticas, eso es correcto. Como curiosidad, tenga en cuenta que incluso con la enorme cantidad de trabajo en la cadena de bloques de Bitcoin, todavía es posible que alguien (posiblemente del espacio exterior) venga con una cadena de bloques que tenga más trabajo, y todos los bloques de Bitcoin (después de la génesis) podrían reorganizarse . Si esto sucediera, la comunidad puede optar por un hardfork para preservar la cadena antes de la "intrusión".