En la red de Ethereum, aunque algunas transacciones parecen completarse técnicamente con éxito, un problema de estimación de gas plantea que el resultado esperado por los usuarios no siempre se alcanza. La solicitud de incorporación número 36084 publicada por el desarrollador de Geth en GitHub busca abordar este problema en el mecanismo actual de estimación de gas del cliente.
Errores en las llamadas internas pueden afectar la estimación
En el centro del problema están las transacciones internas donde un contrato inteligente llama a otro contrato inteligente. Si se produce un error en esta estructura, el contrato puede, en algunos casos, capturar el error y devolver fondos, registrar el fallo o continuar con la transacción omitiendo el paso relacionado. De esta manera, la transacción se completa en la cadena, pero la operación principal deseada por el usuario puede no realizarse.
Por lo tanto, el límite de gas sugerido por las billeteras puede ser suficiente para completar la transacción externamente, pero insuficiente para completar todos los pasos internos de la transacción. El desarrollador indica que EIP 8037, junto con la cantidad de gas devuelto de una ejecución interna fallida, podría hacer más común este comportamiento.
El nuevo enfoque toma en cuenta las llamadas internas fallidas y los intentos de creación de contratos al estimar el gas, en lugar de solo verificar si la transacción se completó.
La nueva propuesta endurece la definición de éxito
La modificación propuesta hace más estricta la medición del éxito en la estimación del gas. Según ello, incluso si la transacción se completa en la cadena, la estimación se rechazará si produce más fallos internos en comparación con una ejecución de referencia realizada con un límite de gas más alto. Así, el sistema no considerará suficientes las transacciones completadas solamente en la superficie.
La propuesta también busca evitar que una llamada interna que falla continuamente empuje la estimación hacia arriba de forma ilimitada. El modelo de ejecución de referencia mantiene los errores existentes e inevitables, evitando que se consideren las fallas adicionales debido a un gas insuficiente. Además, se añade un marco de referencia específico para la actualización de Amsterdam.
En este tipo de cambios técnicos, lo más crucial para los usuarios es cuán confiables permanecen las estimaciones dadas por la billetera. Especialmente si el resultado de las llamadas internas modifica el resultado final de la transacción, observar los desarrollos de la red relacionados con un flujo de noticias exclusivo para cada criptomoneda y gráficos instantáneos a través de CryptoAppsy puede ofrecer un seguimiento más claro en cuanto al costo y el momento de la transacción.
Las pruebas corrigieron 64 de 67 casos
El desarrollador menciona que con las nuevas reglas de la actualización de Amsterdam, volvió a ejecutar 432 transacciones en la red principal. Según esto, los cambios propuestos corrigieron 64 de los 67 casos en los que hubo problemas. En 254 estimaciones adicionales donde no se encontró un problema, el resultado no cambió. Tres casos no pudieron ser identificados.
En las pruebas repetidas sobre 432 transacciones de la red principal, el nuevo enfoque con las reglas de Amsterdam corrigió 64 de 67 ejemplos problemáticos.
En las mismas pruebas, se observó que el límite de gas aumentó un promedio del 4%. Sin embargo, no existe una conexión verificada que indique que un límite de gas más alto significa directamente tarifas más altas. Esta distinción es importante para que los usuarios comprendan la diferencia entre las estimaciones que ven en la interfaz de su billetera y el costo real.
Si se acepta la propuesta, se espera que se reduzcan las situaciones en las que las transacciones de los usuarios de Ethereum parecen completarse sin alcanzar el resultado esperado. El objetivo principal del cambio es hacer que las estimaciones de las billeteras sean más confiables y calcular las fallas internas de manera más precisa que hasta ahora.


