Interpretación del cálculo de la tarifa del gas Ethereum: ¿Cómo reducir los costos de transacción?

Autor: Rosario Borgesi

Traducción: Huohuo, blockchain vernácula

La cadena de bloques Ethereum ha revolucionado las aplicaciones descentralizadas y los contratos inteligentes, pero cada transacción genera tarifas de gas Ethereum. En esta guía, desmitificaremos las tarifas del gas de Ethereum y aprenderemos sobre sus principios básicos, métodos de cálculo, factores que afectan los costos y estrategias efectivas para optimizar las transacciones mientras se controlan los costos.

1. Comprender el gas Ethereum

El gas es el combustible para las transacciones y la ejecución de contratos inteligentes en la cadena de bloques Ethereum. Representa el trabajo computacional necesario para procesar estas operaciones y su precio se expresa en pequeñas denominaciones de Ether llamadas gwei (1 gwei = 10^-9 ETH).

En otras palabras, el gas es una unidad de medida para el trabajo computacional, equivalente a una determinada cantidad de éter.

Es por eso que las tarifas del gas son cruciales en el ecosistema Ethereum:

  1. Asignación de recursos: las tarifas del gas actúan como un mecanismo para asignar recursos de la red. Al exigir a los usuarios que paguen por la potencia informática y el espacio de almacenamiento que utilizan, la red garantiza un acceso justo y evita el abuso de recursos.

  2. Prevenir el spam en la red: sin tarifas de gas, los actores maliciosos podrían inundar la red con transacciones de spam, sobrecargando el sistema y ralentizando las transacciones legítimas. Las tarifas del gas hacen que enviar spam a la red sea costoso y financieramente poco práctico.

  3. Incentivar a los mineros: las tarifas del gas incentivan a los mineros a incluir transacciones en bloques. Los mineros dan prioridad a las transacciones con tarifas de gas más altas, alentando a los usuarios a ofrecer tarifas competitivas para el procesamiento oportuno de las transacciones.

  4. Seguridad de la red: las tarifas del gas contribuyen a la seguridad de la red Ethereum. Garantizan la correcta ejecución de transacciones y contratos inteligentes al exigir a los usuarios que paguen por los pasos computacionales involucrados. Esto bloquea posibles ataques y vulnerabilidades.

  5. Escalabilidad y eficiencia: al asignar un costo a cada operación, las tarifas del gas alientan a los desarrolladores a escribir código eficiente y optimizado. Centrarse en la eficiencia es fundamental para escalar la red, ya que fomenta las mejores prácticas y reduce la tensión en la cadena de bloques.

  6. Modelo económico: las tarifas del gas son una parte integral del modelo económico de Ethereum. Promueven un ecosistema sostenible donde los mineros son compensados por sus esfuerzos, promoviendo el crecimiento y la estabilidad de la red.

2. Componentes de la tarifa del gas

Comprenda los componentes principales que componen las tarifas del gas Ethereum:

  1. Tarifa base: Fijada por el acuerdo, debes pagar al menos esta cantidad para que tu transacción se considere válida.

  2. Tarifa de prioridad: es una propina que se agrega a la tarifa base para que su transacción sea atractiva para los validadores y opten por incluirla en el siguiente bloque.

Una transacción que sólo paga una tarifa base es técnicamente válida, pero es poco probable que se incluya porque no ofrece ningún incentivo para que los validadores la elijan.

La tarifa de prioridad depende del uso de la red cuando envía la transacción: si hay mucha demanda, es posible que deba establecer una tarifa de prioridad más alta, pero cuando hay menos demanda, puede pagar menos.

3. Cálculo de la tarifa de transacción

Por ejemplo, digamos que Jordan tiene que pagarle a Taylor 1 ETH. Una transferencia de ETH requiere 21.000 unidades de gas, con una tarifa base de 10 gwei. Jordan incluyó una propina de 2 gwei.

El costo total ahora es igual a:

unidades de gas utilizadas * (tarifa base + tarifa de prioridad)

La tarifa base es el valor establecido por el protocolo y la tarifa de prioridad es el valor establecido por el usuario como solicitud del validador.

即21.000 * (10 + 2) = 252.000 wei (0,000252 ETH).

Cuando Jordan envía dinero, se debitarán 1,000252 ETH de la cuenta de Jordan. Taylor recibirá 1.0000 ETH. Los validadores reciben una propina de 0,000042 ETH. La tarifa ETHbase de 0,00021 se quema, lo que significa que se eliminará de la circulación.

4. Lectura y escritura de datos

La red Ethereum hace una distinción entre escribir datos en la red y leer datos de la red, y esta distinción juega un papel importante en la forma en que escribe sus aplicaciones. En términos generales, escribir datos se denomina transacción, mientras que leer datos se denomina llamada.

  1. Transacción: una transacción cambia el estado de la red al escribir o cambiar datos. Puede ser tan simple como enviar ether a otra cuenta o tan complejo como ejecutar una función de contrato o agregar un nuevo contrato a la red. Para realizar transacciones, tenemos que pagar tarifas de gas y su procesamiento lleva tiempo.

  2. Llamadas: las llamadas se pueden utilizar para ejecutar código a través de la red, pero no cambian los datos de forma permanente. Básicamente se utilizan para leer datos, por lo que funcionan de forma gratuita (no se gasta gasolina). Cuando ejecuta una función de contrato llamándola, recibirá el valor de retorno inmediatamente.

5. Objeto de transacción

Puede establecer la cantidad de gasolina que está dispuesto a pagar al enviar una transacción configurando los siguientes parámetros en el objeto de la transacción:

  1. GasLimit: La cantidad máxima de unidades de Gas que se pueden consumir en una transacción. EVM especifica las unidades de gas necesarias para cada paso de cálculo.

  2. maxPriorityFeePerGas: El precio máximo del Gas consumido como propina del validador.

  3. maxFeePerGas: La tarifa máxima por unidad de Gas que está dispuesto a pagar por la transacción (incluyendo baseFeePerGas y maxPriorityFeePerGas)

6. Actualización de Londres (EIP-1559)

Antes de la actualización de Londres, las tarifas se calculaban sin distinguir entre tarifas básicas y prioritarias.

En el objeto de transacción podemos configurar:

  1. GasLimit/startGas: La cantidad máxima de unidades de Gas que puede consumir una transacción. Igual que antes.

  2. Precio del Gas: La cantidad que estamos dispuestos a pagar por unidad de Gas.

Supongamos que Alice debe pagarle 1 ETH a Bob. En la transacción, el límite de gas es de 21.000 unidades y el precio del gas es de 200 gwei.

El costo total es: Unidades de gas (límite) * El precio del gas por unidad es 21.000 * 200 = 4.200.000 gwei0,0042 ETH

7. Cálculo de costos en transacciones complejas

Para comprender mejor los costos de transacción, podemos consultar el código de operación EVM. Entonces calculemos el costo de ejecutar esta función:

Función doMath ( uint a, uint b ) { a + b; b - a; a * b; a== 0; }

a + b (ADD) cuesta 3 unidades de gas b - a (SUB) cuesta 3 unidades de gas a * b (MUL) cuesta 5 unidades de gas a == 0 (EQ) cuesta 3 unidades de gas

Entonces el costo total de esta transacción es de 14 unidades de gas.

Lo importante a entender es que si en el objeto de transacción especificamos gasLimit igual a 6, solo se realizarán las dos primeras operaciones y luego se detendrá la transacción y no se restablecerá la tarifa de gas pagada ya que tenemos que pagar por el trabajo. hecho.

Entonces, si tenemos que establecer el parámetro gasLimit en un valor suficiente para que nuestra transacción pueda ejecutarse sin perder nuestro ether.

En este ejemplo particular, calcular su factura de gas es relativamente sencillo. Sin embargo, para funciones más complejas, especialmente aquellas que involucran bucles de variables de diferentes tamaños, determinar los costos del gas con anticipación puede resultar un desafío.

En este caso, podemos aprovechar las características proporcionadas por las dos bibliotecas de desarrollo más famosas de estimaGas: ethers.js y web3.js. Esta función nos permite estimar el costo del gas asociado con la ejecución de una función específica en la cadena de bloques Ethereum.

Sin embargo, vale la pena recordar que siempre es una buena práctica configurar gasLimit y maxFeePerGas para evitar ejecutar transacciones que consumirán demasiado ether.

8. Estrategias para reducir las tarifas del gas 1) Utilice la capa 2

Layer-2 es un marco o protocolo auxiliar construido sobre la cadena de bloques Ethereum. Estas soluciones están diseñadas para mejorar la escalabilidad y optimizar la velocidad de las transacciones procesando la mayoría de las transacciones fuera de la cadena principal de Ethereum (llamada Capa 1). La capa 1 involucra la cadena de bloques Ethereum básica, donde los costos de transacción son altos y pueden enfrentar problemas de escalabilidad debido a la alta demanda.

Entre los diversos métodos de Capa 2, se encuentran los Rollups adoptados en Arbitrum y Optimism.

Los rollups agregan múltiples transacciones en una sola transacción, comprimiendo los datos y almacenándolos en la red principal de Ethereum. Esto reduce significativamente las tarifas del gas y mejora la escalabilidad, ya que una sola transacción en la red principal puede representar una gran cantidad de transacciones fuera de la cadena.

  1. Ejecutar durante períodos de congestión de red reducida

Si queremos operar en la primera capa, la solución de ahorro de costes parece obvia: tenemos que emitir transacciones cuando la red esté menos congestionada.

De hecho, la cadena de bloques Ethereum solo permite entre 20 y 40 transacciones por segundo (TPS) (que es el número total de usuarios de Ethereum); cuando se alcanza el límite, los usuarios se ven obligados a competir entre sí para obtener sus transacciones, lo que causas Las tarifas están aumentando.

Para comprobar la carga de la red podemos utilizar Etherscan.

  1. Minimizar las transacciones

Cada transacción en la cadena de bloques Ethereum conlleva un costo, llamado tarifa de gas. Para reducir estas tarifas, siempre que sea posible, se deben combinar múltiples operaciones en una sola transacción. Por ejemplo, agrupar múltiples transferencias de tokens o interacciones con contratos inteligentes en una sola transacción puede reducir significativamente los costos generales.

  1. Optimizar la complejidad del código

Las transacciones de Ethereum implican la ejecución de código almacenado en la cadena de bloques. El código complejo e ineficiente requiere más recursos informáticos, lo que genera mayores cargos por gas. Al optimizar y simplificar su código, puede reducir el gas necesario para la ejecución. Esto implica prácticas de codificación eficientes, minimizar cálculos redundantes y utilizar técnicas de programación eficientes.

  1. Contrato inteligente de ahorro de energía

Al desarrollar contratos inteligentes, es fundamental diseñarlos de manera que minimice el consumo de gas. Esto incluye evitar operaciones de almacenamiento innecesarias, optimizar los bucles y reducir la complejidad de la lógica del contrato. Durante el desarrollo se deben utilizar herramientas de optimización de gas y mejores prácticas.

9. Conclusión

En resumen, las tarifas del gas son una parte importante de Ethereum, ya que mantienen la integridad de la red, incentivan el uso correcto, garantizan la seguridad y respaldan la escalabilidad, todo lo cual en conjunto ayuda a construir una red blockchain eficiente y sostenible.

En este artículo, exploramos el cálculo y la estimación de las tarifas del gas y brindamos información sobre varias estrategias para mitigar su impacto. Al emplear técnicas de optimización, aprovechar las soluciones de Capa 2 e implementar códigos de contratos inteligentes que ahorran combustible, los usuarios y desarrolladores pueden reducir efectivamente los costos de transacción y mejorar la eficiencia general de las aplicaciones en la red Ethereum.

Con una comprensión más profunda de las tarifas del gas y las estrategias prácticas para administrarlas, ahora está listo para navegar por el entorno Ethereum y optimizar sus esfuerzos de codificación. ¡Feliz codificación y que sus interacciones con Ethereum sean rentables e innovadoras!

Ver originales
Esta página puede contener contenido de terceros, que se proporciona únicamente con fines informativos (sin garantías ni declaraciones) y no debe considerarse como un respaldo por parte de Gate a las opiniones expresadas ni como asesoramiento financiero o profesional. Consulte el Descargo de responsabilidad para obtener más detalles.
  • Recompensa
  • Comentar
  • Compartir
Comentar
0/400
Sin comentarios
  • Anclado
Opere con criptomonedas en cualquier momento y lugar
qrCode
Escanee para descargar la aplicación Gate
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • Bahasa Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)