Pasé un tiempo pensando en qué ocurre cuando dos transacciones alcanzan el mismo límite móvil antes de que cualquiera actualice el estado registrado.

Cada solicitud puede parecer válida por sí sola.

Si ambas se evalúan contra el mismo total anterior, una política @NewtonProtocol puede aprobar dos acciones que exceden el límite una vez que se ejecutan juntas.

Imagina que una cartera ha gastado $8,000 de su límite diario. Llegan dos solicitudes más al mismo tiempo, y cada una intenta gastar otros $1,500.

La primera solicitud lee el total registrado como $8,000. Su importe proyectado pasa a ser $9,500, así que la política lo aprueba.

Antes de que esa transacción finalice, la segunda solicitud lee el mismo total de $8,000. También proyecta $9,500 y recibe aprobación.

Ambas decisiones son correctas frente al estado que observó cada solicitud.

Juntas, autorizan $11,000 de actividad.

Esa es la problemática de estado detrás de los límites dinámicos.

Una regla solo por transacción necesita únicamente la solicitud actual. Un límite dinámico también requiere actividad histórica, autorizaciones pendientes, estado de ejecución y la ventana de tiempo exacta que se está aplicando.

Lo difícil no es solo leer lo que ya ha ocurrido.

Es evitar que el mismo cupo restante se prometa dos veces.

Un flujo de autorización de Newton más seguro puede necesitar reservar capacidad tan pronto como se emite una aprobación. Si la ejecución tiene éxito, esa reserva se convierte en un gasto finalizado. Si la transacción falla o expira, la cantidad reservada debe liberarse.

Sin ese paso de reserva, varias aprobaciones individualmente válidas pueden competir por el mismo límite no utilizado.

Pero las reservas introducen sus propias transiciones de estado.

Una atestación no utilizada no puede mantener capacidad para siempre. Una transacción fallida no debería reducir permanentemente el cupo del usuario. Una transacción retrasada puede pasar de una ventana dinámica a otra. Una cancelación debería liberar capacidad solo después de que el sistema pueda establecer que la autorización original ya no puede ejecutarse.

La actividad pendiente crea otro intercambio.

Si la política lee solo el historial finalizado, sigue siendo posible la concurrencia. Si cuenta cada autorización pendiente, una transacción atascada o abandonada puede bloquear actividad legítima.

Por ello, el sistema necesita una distinción fiable entre la capacidad disponible, reservada, consumida, expirada o liberada.

El mismo problema se vuelve más difícil cuando un límite acumulado abarca varias cadenas. Cada cadena puede ver únicamente su propia actividad finalizada, lo que permite que una billetera permanezca por debajo del límite localmente mientras lo excede globalmente.

Eso es una extensión del mismo problema de reserva, pero la falla principal ya existe en una sola cadena.

Por lo tanto, los límites dinámicos no son solo comparaciones entre una cantidad actual y un umbral.

Son máquinas de estado.

El sistema de autorización tiene que saber qué ha ocurrido, qué se ha aprobado pero no se ha completado, qué aún puede ejecutarse y cuándo cada reserva deja de ser válida.

El Protocolo Newton puede evaluar si una solicitud encaja con el estado presentado a la política. La garantía más difícil es determinar si ese estado ya incluye cada autorización en competencia que aún podría consumir el mismo cupo.

Así que la pregunta real no es solo si la transacción actual está por debajo del límite.

Se trata de si Newton ya prometió la capacidad restante a otra transacción.

@NewtonProtocol $NEWT #Newt

#SouthKoreaForcedLiquidationsHit344.2BWon

#JuneCPIWarshTestimonyBankEarningsSameWeek

#EuropeanStocksFall

#BitcoinETFsFirstWeeklyInflowInNineWeeks