Una investigación de la Ethereum Foundation publicada el 5 de octubre analiza las aserciones de transacción, que podrían rechazar ejecuciones cuyo resultado final incumpla una regla especificada. A 9 de octubre, EIP-7906 sigue siendo un borrador, depende de las transacciones por tramas de EIP-8141 y figura como propuesta en evaluación para la actualización Hegotá, mientras que EIP-8141 aparece como prevista para su inclusión.
Por qué importa
EIP-7906 propone tramas POST_TX de solo lectura que inspeccionan el estado resultante de una transacción. Sus instrucciones pueden enumerar cambios netos y eventos especificados, recuperar valores mediante una clave y copiar datos de eventos. El alcance definido incluye saldos de ETH, cambios de almacenamiento, contratos recién desplegados y hashes de código. Para comprobar saldos de tokens habría que interpretar el almacenamiento del contrato y aplicar un límite elegido.
La propuesta podría permitir políticas que vayan más allá de un único intercambio, como mantener los controles de una cuenta o restringir aprobaciones a lo largo de una ruta. Pero no exige que todas las transacciones incluyan una aserción. Las cuentas deben configurar la validación para exigir la comprobación concreta sin posibilidad de eludirla, y los protocolos deben aplicar por sí mismos la aserción requerida. En los flujos de liquidación mediante solver, la orden firmada o el protocolo deben vincular al solver a la política.
Impacto en el mercado
Uniswap v3 ya rechaza los intercambios que incumplen un mínimo recibido o un máximo de entrada, pero esos umbrales proceden de los parámetros de la llamada. Su guía advierte que fijar en cero el mínimo de salida es arriesgado en producción. Incluso un límite aplicado correctamente puede permitir una operación desfavorable si quien construye la transacción elige un umbral demasiado permisivo o lo calcula a partir de una cotización inadecuada.
EIP-7906 también tiene limitaciones: evalúa los cambios netos, por lo que puede que no aparezcan las escrituras intermedias que luego se revierten. Si falla una aserción, se revierte el cuerpo de ejecución, pero la transacción permanece en el bloque, se cobra el gas y los cambios del prefijo de validación quedan confirmados. Las directrices de seguridad de la propuesta recomiendan objetivos de aserción inmutables y referencias que la ejecución no pueda manipular, como valores fijados al firmar o tomados del estado inicial de la transacción. Ethereum podría aplicar una comprobación con precisión y, aun así, hacer cumplir un acuerdo desfavorable si la política o su referencia se eligen mal.
Preguntas frecuentes
-
¿Qué añade EIP-7906, la propuesta de Ethereum, a las comprobaciones de transacciones?
Propone tramas POST_TX de solo lectura que inspeccionan el estado resultante de una transacción y rechazan la ejecución si se incumple una regla de aserción.
-
¿Por qué un límite aplicado a un intercambio podría permitir aun así una operación desfavorable?
Quien construye la transacción puede elegir un umbral demasiado permisivo o calcularlo a partir de una cotización inadecuada. Aplicar el límite elegido no garantiza que sea una buena operación.
-
¿Quién debe asegurarse de que una transacción incluya la aserción requerida?
Las cuentas deben configurar la validación para exigir la trama POST_TX concreta sin posibilidad de eludirla. Los protocolos también deben aplicar la aserción requerida en las funciones protegidas.
-
¿Qué ocurre cuando falla una aserción POST_TX?
Se revierte el cuerpo de ejecución, pero la transacción permanece en el bloque y se cobra el gas. Los cambios realizados en el prefijo de validación quedan confirmados.
-
¿Cómo propone EIP-7906 proteger las comprobaciones frente a manipulaciones?
Sus directrices recomiendan objetivos de aserción inmutables y no actualizables, además de valores de referencia fijados al firmar o tomados del estado inicial de la transacción.