Para todos / Pickle en términos sencillos

Cuándo está confirmado

La mayoría de las veces una billetera dice pendiente y luego dice hecho. Aquí hay tres momentos distintos entre esas dos palabras, y garantizan cosas diferentes.

Tres momentos

MomentoQué es
Preconfirmaciónminibloque firmadoobjetivo de programación de 10 ms. El secuenciador se ha comprometido con este orden y este resultado
Confirmaciónbloque EVMobjetivo de programación de 250 ms. Lo que ven las billeteras y los exploradores
Finalidadliquidación en Ethereumlos datos necesarios para rederivar el bloque están comprometidos en Ethereum, y ese compromiso es a su vez final

Piense en entregar una carta en una ventanilla atendida por un empleado muy rápido. Primero, el empleado la lee, calcula la respuesta y le da un recibo firmado: esa es la preconfirmación, y ocurre casi en cuanto le entrega la carta. Un poco después el empleado la archiva en el libro del día, que es lo que todos los demás pueden consultar: esa es la confirmación. Por último, una copia del libro se envía a una caja fuerte fuera de la tienda que nadie en la tienda puede modificar: esa es la finalidad. Cada paso es más lento que el anterior y cada uno es más difícil de deshacer.

Su transacción se ejecuta en el instante en que llega al secuenciador, así que el resultado existe antes que cualquier bloque. A un objetivo de programación de 10 milisegundos, el secuenciador sella un minibloque que contiene todo lo ejecutado en ese intervalo y lo firma. Esa firma es la preconfirmación: el secuenciador se ha comprometido con ese orden y ese resultado, y la cabecera firmada es una prueba contra él si un bloque posterior la contradijera.

A un objetivo de programación de 250 milisegundos, el secuenciador sella un bloque EVM estándar con forma de Ethereum que envuelve los minibloques de ese intervalo. Esa es la confirmación: el bloque que una billetera o un explorador le muestra, con un número de bloque y un hash.

La finalidad es la liquidación en Ethereum. Un bloque es final cuando los datos necesarios para rederivarlo se han comprometido en Ethereum y ese compromiso es a su vez final. Solo en ese punto el registro deja de depender del secuenciador por completo.

La ejecución es síncrona con la admisión, así que un recibo existe antes de que se selle el bloque que lo contiene. Un minibloque, al objetivo de programación de 10 ms, lleva las transacciones, recibos y logs del intervalo, un hash del diferencial de estado, una marca de tiempo en microsegundos y una firma de la clave del secuenciador sobre la cabecera; se expone mediante sus propios métodos RPC y una suscripción WebSocket, para que una aplicación sensible a la latencia pueda actuar sobre él. Un bloque EVM, al objetivo de programación de 250 ms, envuelve los minibloques del intervalo con la marca de tiempo del bloque siguiente fijada en el sellado anterior, que es lo que permite a una reejecución independiente reproducir el hash del bloque. La finalidad es el compromiso en el buzón de entrada de la L1 que nombra la carga de derivación del bloque, a su vez final en Ethereum. El intervalo de los minibloques es un parámetro de consenso, no un ajuste del operador, porque una réplica tiene que estar de acuerdo en cómo se corta el flujo.

Un objetivo de programación no es una promesa

Los dos intervalos son objetivos de programación, no garantías de latencia, y ninguno es una afirmación de rendimiento. Describen el ritmo al que apunta el secuenciador, no un plazo que cumpla en cada tic.

Lo que garantiza cada uno

  • Una preconfirmación prueba que el secuenciador dijo que esto ocurrió, en este orden, con este resultado. Descansa en la honestidad del secuenciador, y es una prueba: una cabecera firmada que un bloque posterior contradijera mostraría que el secuenciador rompió su palabra.
  • Una confirmación coloca la transacción en la secuencia canónica de bloques que toda herramienta entiende. Sigue descansando en el secuenciador, la única parte que sella bloques.
  • La finalidad significa que el contenido del bloque está comprometido desde Ethereum. A partir de ahí, cualquiera puede rederivar el bloque a partir de datos públicos, y el secuenciador no puede reescribirlo sin que la divergencia sea detectable por cada réplica.

Cuándo importa la diferencia

Para la mayor parte de lo que hace una persona, la preconfirmación es el momento que importa: una aplicación puede mostrar el resultado, y el resultado no cambiará salvo que el secuenciador contradiga su propia firma. Un juego, una interfaz de trading o un pago en caja pueden actuar sobre ella.

La confirmación es lo que informan las herramientas corrientes, así que es el momento que una billetera muestra como hecho. La finalidad es el momento para todo lo que no debe depender del secuenciador en absoluto: un retiro hacia Ethereum a través del bridge se revalida contra un recibo canónico finalizado antes de liberar los fondos, exactamente por esta razón.

Las palabras que verá

  • Pendiente: la billetera la ha enviado y aún no ha visto un bloque. En Pickle esto suele ser más corto que el propio refresco de la billetera.
  • Preconfirmada: una aplicación que lee minibloques dice que el secuenciador ha firmado por ella.
  • Confirmada: está en un bloque EVM con número.
  • Final: los datos de su bloque están comprometidos desde Ethereum. Este sitio no usa la palabra para nada más.