Publicaciones
avatar

Un contrato que sigue ejecutándose tras una llamada fallida no tiene hoy una forma confiable de determinar si el llamado se revirtió intencionadamente o simplemente se quedó sin gas, según lo eligió el remitente. Esta brecha es la raíz del griefing por gas insuficiente, y una nueva propuesta en borrador intenta cerrarla a nivel EVM. EIP-8456, abierta a discusión en Ethereum Magicians el lunes, añade una instrucción llamada CALLSTATUS, provisionalmente en el opcode 0xA5 con un costo de 2 gas. Esta instrucción empuja el estado de finalización de la llamada o creación más reciente en el marco actual como tres bits. El bit 0 indica una reversión, el bit 1 indica una parada excepcional, como falta de gas, y el bit 2 indica que algo en un marco inferior se detuvo. El autor señala que la única evidencia disponible hoy es el cálculo de gasleft() tras la llamada, y que cada bifurcación de repricing ha roto esos umbrales. El propuesto gas bidimensional de EIP-8037 haría aún más débil ese cálculo, ya que su reservorio no es visible a través del opcode GAS. Entonces, ¿por qué el tercer bit? La mayoría de las llamadas reales pasan por intermediarios como proxies, el wrapper functionCall de OpenZeppelin, Multicall3 o verificadores de firma ERC-1271. Si solo se informara el estado final del llamado directo, un wrapper que capture una parada por falta de gas y revierta con un motivo parecería una reversión intencionada. El borrador mantiene una bandera persistente que viaja hacia arriba en cada marco, por lo que un remitente que solo controle el gas nunca podrá hacer que un llamador lea una reversión simple. Se informan resultados en lugar de causas, y un llamado aún puede producir una parada intencionada con INVALID. Solo protege código escrito después de su implementación, ya que los contratos desplegados no lo leerán. Aún no hay revisiones externas, el número del opcode sigue abierto, y un prototipo junto con pruebas para los 58 casos listados aún está pendiente. Enlace - https://t.co/KnByUBgWrY

Este contenido es solo para fines informativos y educativos. Puede incluir opiniones de terceros, contenido patrocinado o material promocional por el que el creador puede recibir una compensación. Nada en este feed constituye asesoramiento de inversión ni una garantía de rentabilidad. Eres el único responsable de tus propias decisiones de inversión. Investiga siempre por tu cuenta y actúa con precaución antes de operar. No garantizamos la exactitud de la información de terceros y no nos hacemos responsables de las pérdidas que puedas sufrir. El rendimiento pasado no es indicativo de resultados futuros. Consulta nuestros Términos de la Comunidad y la Declaración de Riesgos para más detalles.

avatarPublica tu respuesta

Comentar