// TECNOLOGÍA
Finalidad: ¿cuándo termina de verdad una transacción?
6 min de lecturanijitech
«Confirmada» e «irreversible» no son lo mismo. Para un sistema que cobra pagos, esa diferencia decide cuántos segundos hay que esperar.
Artículo completo
La primera pregunta al construir un sistema que cobra en una cadena de bloques suele ser: ¿cuánto tarda una transacción en confirmarse? Esa no es la pregunta correcta. La correcta es cuánto tarda en volverse irreversible.
La distancia entre ambas es la diferencia entre cobrar un café y cobrar un coche.
Confirmación no es finalidad
Una transacción que entra en un bloque es una confirmación. Pero en algunas cadenas ese bloque puede perder validez si aparece en la red una cadena más larga, y las transacciones que contiene se revierten. La primera confirmación, por tanto, no es una garantía sino un enunciado de probabilidad.
A medida que pasa el tiempo y se apilan bloques encima, la probabilidad de una reversión se reduce, pero en teoría nunca llega a cero. A esto se le llama finalidad probabilística: «espere lo suficiente y será suficientemente seguro».
Qué cambia la finalidad determinista
En algunos diseños de consenso un bloque es final en el momento en que lo aprueba una mayoría de validadores, y no puede revertirse. Esperar no sirve de nada: o la transacción es final o nunca ocurrió. La zona gris desaparece.
Por qué importa tanto del lado del pago
Si entrega un bien físico o desbloquea un servicio de inmediato, ha aceptado un pago que podría revertirse. En el mundo tradicional de las tarjetas a esto se le llama contracargo y los comercios llevan años gestionando el riesgo. En cadena, el riesgo depende del modelo de finalidad de la red que eligió.
Preguntas para el diseño
- ¿La finalidad de esta red es determinista o probabilística?
- Si es determinista, ¿cuál es el tiempo típico: segundos o minutos?
- Si es probabilística, ¿cuántas confirmaciones esperamos a qué importe?
- ¿Qué le mostramos al usuario mientras espera?
Lo último pertenece al lado de producto y es lo que más se salta. Una pantalla que dice «procesando» sin decirle al usuario cuánto va a esperar es una mala experiencia por corta que sea la espera real.
La compatibilidad es un eje aparte
El modelo de finalidad y el entorno de desarrollo son dos elecciones independientes. Una red puede ofrecer finalidad rápida y determinista y ser a la vez compatible con EVM, en cuyo caso los contratos Solidity, las carteras y las herramientas de desarrollo existentes funcionan tal cual.
En la práctica esto desacopla la decisión arquitectónica del equipo: usted elige el modelo de finalidad que exige su infraestructura y el equipo sigue trabajando con las herramientas que conoce.
En resumen
Tres frases
- Confirmación significa «entró en un bloque»; finalidad significa «no puede revertirse»
- Con finalidad probabilística, el importe decide el tiempo de espera
- Con finalidad determinista esa decisión desaparece: la lógica de producto se simplifica
Productos mencionados en este artículo
Del glosario: Finalidad · Compatibilidad EVM