Descripción detallada de EIP-7706 y el último mecanismo de gas de Ethereum
Autor original : @Web3Mario
Introducción :Vitalik publicó la propuesta EIP-7706 el 13 de mayo de 2024, proponiendo una solución complementaria al modelo de gas existente, separando el cálculo del gas de los datos de llamadas y personalizando un mecanismo de fijación de precios de tarifa base similar al gas Blob para reducir aún más el costo operativo de L2. Las propuestas relacionadas deben remontarse a la EIP-4844 propuesta en febrero de 2022, lo cual es hace mucho tiempo. Por lo tanto, he consultado materiales relevantes y espero hacer un resumen del último mecanismo de gas de Ethereum para que todos lo comprendan rápidamente.
Modelos de Ethereum Gas admitidos actualmente: EIP-1559 y EIP-4844
En el diseño inicial, Ethereum utilizó un mecanismo de subasta simple para fijar el precio de las tarifas de transacción, que requería que los usuarios pujaran activamente por sus propias transacciones, es decir, que fijaran el precio del gas. Por lo general, dado que las tarifas de transacción pagadas por los usuarios pertenecerán a los mineros, estos decidirán el orden de empaquetado de las transacciones según el principio de optimalidad económica y el precio de la oferta. Tenga en cuenta que esto ignora el MEV. En ese momento, los desarrolladores principales creían que este mecanismo enfrentaba los siguientes cuatro problemas:
-
El desajuste entre la volatilidad de los niveles de las tarifas de transacción y el costo de consenso de las transacciones: en el caso de las cadenas de bloques activas, existe una demanda suficiente de empaquetamiento de transacciones, lo que significa que los bloques se pueden llenar fácilmente, pero esto a menudo también significa que la volatilidad general de las tarifas es extremadamente grande. Por ejemplo, cuando el precio promedio del gas es de 10 Gwei, el costo marginal de que la red acepte otra transacción en un bloque es 10 veces mayor que cuando el precio promedio del gas es de 1 Gwei, lo cual es inaceptable.
-
Retrasos innecesarios para los usuarios: Debido al límite de gas por bloque y las fluctuaciones naturales en el volumen histórico de transacciones, las transacciones a menudo esperan varios bloques antes de ser incluidas, lo que es ineficiente para la red en su conjunto; es decir, no existe un mecanismo de relajación que permita que un bloque sea más grande y el siguiente sea más pequeño para acomodar la diferencia en la demanda bloque por bloque.
-
Precios ineficientes: el mecanismo de subasta simple da como resultado una baja eficiencia en el descubrimiento de precios justos, lo que significa que es difícil para los usuarios ofrecer un precio razonable. Esto significa que, en muchos casos, los usuarios pagan tarifas elevadas.
-
Una cadena de bloques sin recompensas de bloque será inestable: cuando se cancelan las recompensas de bloque generadas por la minería y se adopta un modelo de tarifa pura, puede causar mucha inestabilidad, como incentivar la minería de bloques hermanos que roban tarifas de transacción, abrir vectores de ataque de minería egoísta más poderosos, etc.
Hasta la propuesta e implementación de EIP-1559, el modelo de gas tuvo su primera iteración. EIP-1559 fue propuesto por Vitalik y otros desarrolladores principales el 13 de abril de 2019 y fue adoptado en la actualización de Londres el 5 de agosto de 2021. Este mecanismo abandona el mecanismo de subasta y adopta un modelo de precios dual de tarifa base y tarifa prioritaria, en el que la tarifa base se calculará cuantitativamente a través de un modelo matemático establecido basado en la relación entre el consumo de gas generado en el bloque principal y un objetivo de gas flotante y recursivo. El efecto intuitivo es que si el uso de gas en el bloque anterior excede el objetivo de gas predeterminado, se aumentará la tarifa base, y si es menor que el objetivo de gas, se reducirá la tarifa base. Esto puede reflejar mejor la relación entre la oferta y la demanda y hacer que la predicción de gas razonable sea más precisa, a fin de evitar precios de gas altísimos causados por un mal funcionamiento, porque el cálculo de la tarifa base lo determina directamente el sistema en lugar de especificarlo libremente el usuario. El código específico es el siguiente:
Se puede observar que cuando parent_gas_used es mayor que parent_gas_target, la tarifa base del bloque actual se comparará con la tarifa base del bloque anterior más un valor de compensación. El valor de compensación es el valor máximo de parent_base_fee multiplicado por la compensación de la tarifa total de gas del bloque anterior en relación con el objetivo de gas y el módulo del objetivo de gas y una constante y 1. La lógica es similar en el caso opuesto.
Además, la tarifa base ya no se distribuirá a los mineros como recompensa, sino que se destruirá directamente, por lo que el modelo económico de ETH se encuentra en un estado deflacionario, lo que favorece la estabilidad del valor. Por otro lado, la tarifa de prioridad es equivalente a la recompensa que dan los usuarios a los mineros, que se puede fijar libremente, lo que hasta cierto punto permite reutilizar el algoritmo de clasificación de los mineros en cierta medida.
A medida que pasa el tiempo hasta 2021, el desarrollo de Rollup va mejorando gradualmente. Sabemos que tanto OP Rollup como ZK Rollup implican que algunos datos de prueba después de la compresión de datos L2 deben cargarse en la cadena a través de calldata para lograr la disponibilidad de datos (Datos disponibles) o entregarse directamente a la cadena para su verificación. Esto hace que estas soluciones Rollup se enfrenten a un gran costo de gas al mantener la finalidad de L2, y estos costos eventualmente se trasladarán a los usuarios. Por lo tanto, el costo de usar la mayoría de los protocolos L2 en ese momento no era tan bajo como se imaginaba.
Al mismo tiempo, Ethereum también se enfrenta al dilema de la competencia por el espacio de bloques. Sabemos que cada bloque tiene un límite de gas, lo que significa que el consumo total de gas de todas las transacciones en el bloque actual no puede exceder este valor. De acuerdo con el límite de gas actual de 30000000, existe un límite teórico de 30 000 000 / 16 = 1 875 000 bytes, donde 16 significa que EVM necesita consumir 16 unidades de gas para procesar cada byte de datos de llamada, lo que significa que el tamaño máximo de datos que un solo bloque puede transportar es de aproximadamente 1,79 MB. Los datos relacionados con Rollup generados por el clasificador L2 suelen ser de gran tamaño, lo que provoca competencia con la confirmación de transacciones de otros usuarios de la cadena principal, lo que resulta en una menor cantidad de transacciones que se pueden empaquetar en un solo bloque, lo que a su vez afecta el TPS de la cadena principal.
Para resolver este dilema, los desarrolladores principales propusieron la propuesta EIP-4844 el 5 de febrero de 2022, y se implementó después de la actualización de Dencun a principios del segundo trimestre de 2024. La propuesta propuso un nuevo tipo de transacción, llamada Blob Transaction. En comparación con el tipo tradicional de Transaction, la idea central de Blob Transaction es agregar un nuevo tipo de datos, es decir, Blob data. A diferencia del tipo calldata, EVM no puede acceder directamente a los datos de blob, sino solo a su hash, también conocido como VersionedHash. Además, hay dos diseños que lo acompañan. Primero, en comparación con las transacciones ordinarias, el ciclo de GC de las transacciones de blob es más corto, lo que garantiza que los datos del bloque no estén demasiado inflados. En segundo lugar, los datos de blob tienen un mecanismo de Gas nativo. El efecto general es similar al de EIP-1559, pero se selecciona la función exponencial natural en el modelo matemático para que sea más estable cuando se trata de fluctuaciones en la escala de transacciones, porque la pendiente de la función exponencial natural también es una función exponencial natural. Esto significa que, sin importar en qué estado se encuentre la escala de transacciones de la red en este momento, cuando la escala de transacciones se dispara rápidamente, la tarifa base del gas blob reaccionará de manera más completa, frenando así de manera efectiva la actividad de transacciones. Al mismo tiempo, la función también tiene una característica importante. Cuando el eje horizontal es 0, el valor de la función es 1.
tarifa_base_por_gas_blob = TARIFA_BASE_MÍNIMA_POR_GAS_BLOB * e**(exceso_de_gas_blob / FRACCIÓN_DE_ACTUALIZACIÓN_DE_TARIFA_BASE_BLOB)
Entre ellas, MIN_BASE_FEE_PER_BLOB_GAS y BLOB_BASE_FEE_UPDATE_FRACTION son dos constantes, y el exceso de gas de blob se determina por la diferencia entre el consumo total de gas de blob en el bloque principal y una constante TARGET_BLOB_GAS_PER_BLOCK. Cuando el consumo total de gas de blob supera el valor objetivo, es decir, la diferencia es positiva, e**(excess_blob_gas / BLOB_BASE_FEE_UPDATE_FRACTION) es mayor que 1, entonces base_fee_per_blob_gas se vuelve más grande, de lo contrario se vuelve más pequeño.
De esta manera, algunos escenarios que solo quieren utilizar las capacidades de consenso de Ethereum para almacenar ciertos datos a gran escala para garantizar la disponibilidad se pueden ejecutar a un bajo costo sin exprimir la capacidad de empaquetado de transacciones del bloque. Tomando el clasificador Rollup como ejemplo, la información clave de L2 se puede encapsular en los datos de blob a través de la transacción de blob, y la lógica de verificación en cadena se puede implementar a través de versionedHash mediante un diseño sofisticado en EVM.
Cabe señalar que las configuraciones actuales de TARGET_BLOB_GAS_PER_BLOCK y MAX_BLOB_GAS_PER_BLOCK imponen un límite en la red principal, es decir, un objetivo de 3 blobs (0,375 MB) por bloque y un límite de 6 blobs (0,75 MB) por bloque. Estos límites iniciales tienen como objetivo minimizar la tensión en la red causada por este EIP y se espera que aumenten en futuras actualizaciones a medida que la red demuestre confiabilidad con bloques más grandes.
Mejora del modelo de consumo de gas en el entorno de ejecución – EIP-7706
Después de aclarar el modelo actual de Ethereum Gas, echemos un vistazo a los objetivos y los detalles de implementación de la propuesta EIP-7706. La propuesta fue propuesta por Vitalik el 13 de mayo de 2024. De manera similar a los datos Blob, esta propuesta elimina el modelo de Gas correspondiente a otro campo de datos especial, que es calldata, y optimiza la lógica de implementación del código correspondiente.
En principio, la lógica de cálculo de la tarifa base de los datos de llamada es la misma que la de la tarifa base de los datos de blob en EIP-4844. Ambos utilizan una función exponencial y calculan la relación de escala de la tarifa base actual en función de la desviación entre el valor de consumo de gas real en el bloque principal y el valor objetivo.
Cabe destacar que hay un nuevo diseño de parámetros, LIMIT_TARGET_RATIOS=[2, 2, 4], donde LIMIT_TARGET_RATIOS[0] representa la relación objetivo de la clase de operación de ejecución Gas, LIMIT_TARGET_RATIOS[1] representa la relación objetivo de la clase de datos Blob Gas y LIMIT_TARGET_RATIOS[2] representa la relación objetivo de la clase de datos de llamada Gas. Este vector se utiliza para calcular los valores objetivo de gas correspondientes a los tres tipos de gas en el bloque principal. La lógica de cálculo es la siguiente, es decir, se utiliza LIMIT_TARGET_RATIOS para dividir el límite de gas:
La lógica de configuración de gas_limits es la siguiente:
gas_limits[ 0 ] debe seguir la fórmula de ajuste existente
gas_limits[ 1 ] debe ser igual a MAX_BLOB_GAS_PER_BLOCK
gas_limits[ 2 ] debe ser igual a gas_limits[ 0 ] // CALLDATA_GAS_LIMIT_RATIO
Sabemos que el gas_limits[ 0 ] actual es 30000000, y CALLDATA_GAS_LIMIT_RATIO está preestablecido en 4, lo que significa que el objetivo de gas de calldata actual es de aproximadamente 30000000 // 4 // 4 = 1875000. De acuerdo con la lógica de cálculo de gas de calldata actual, cada byte distinto de cero consume 16 gases y un byte cero consume 4 gases. Suponiendo que la distribución de bytes distintos de cero y cero en un determinado calldata es 50% cada uno, se necesita un promedio de 10 gases para procesar 1 byte de calldata. Por lo tanto, el objetivo de gas de calldata actual debe corresponder a 187500 bytes de datos de calldata, que es aproximadamente el doble del uso promedio actual.
El beneficio de esto es que reduce en gran medida la probabilidad de que los datos de llamada alcancen el límite de gas y, a través del modelo económico, el uso de los datos de llamada se mantiene en un estado relativamente constante, al mismo tiempo que se evita el abuso de los mismos. La razón de este diseño es eliminar los obstáculos para el desarrollo de L2 y, con los datos blob, el costo del clasificador se reduce aún más.
Este artículo proviene de Internet: Descripción detallada de EIP-7706 y el último mecanismo de gas de Ethereum
Relacionado: 3 altcoins alcistas que se prevé que eclipsarán a Bitcoin (BTC) en mayo
En resumen Binance Coin está preparada para ser uno de los activos con mejor rendimiento, dada su continua consolidación y proximidad a la formación de un nuevo ATH. PEPE, que ya ha registrado un crecimiento de 585% en los últimos tres meses, aún podría aumentar otros 41%. Tron (TRX) acaba de evitar un cruce de la muerte en el gráfico diario, lo que le proporciona espacio y oportunidad para un mayor crecimiento. Bitcoin (BTC) es la criptomoneda más grande del mundo, pero a veces, incluso las altcoins pueden superar el rendimiento de la moneda reina. BeInCrypto analiza cuáles tres de estas altcoins tienen el potencial de superar a BTC en el mes de mayo. Binance Coin (BNB) sigue en la competencia El precio de Binance Coin ha estado en consolidación durante más de un mes y medio, intentando cerrar por encima de $640. Sin embargo, la altcoin no ha logrado…