Intercambio de Ethereum Intercambio de Ethereum
Ctrl+D Intercambio de Ethereum
ads
Casa > OKB > Info

¿Cuál es el impacto de la bifurcación dura de Berlín en Gas?

Author:

Time:

La bifurcación dura de Berlín se lanzó en la red principal el 14 de abril e introdujo cuatro EIP. Dos de ellos (EIP-2929   EIP-2930) tienen un impacto en el costo del gas de la transacción. Este artículo explicará cómo se calcularon algunos costos de gas antes de Berlín, cómo cambiará después de que se agregue EIP-2929 y cómo usar las listas de acceso introducidas por EIP-2930. Esta publicación es larga, aquí está la sinopsis: la bifurcación dura de Berlín cambia el costo de gas de algunos códigos de operación. Si el valor de la tarifa del gas está codificado en un dapp o un contrato inteligente, pueden cancelar. Si esto sucede, y el contrato inteligente no se puede actualizar, los consumidores necesitarán listas de acceso de EIP-2930 para usar esa parte del código de operación. Las listas de acceso se pueden usar para reducir los costos de gas en una pequeña cantidad, pero en la práctica pueden aumentar el consumo total de gas en algunos casos. geth agregó un nuevo método RPC llamado eth_createAccessList para simplificar la creación de listas de acceso. Cada código de operación ejecutado por el EVM tiene un costo de gas asociado. La mayoría tienen un coste fijo: PUSH1 siempre consume 3 unidades de gas, MUL 5, etc. Otros varían: por ejemplo, el costo del código de operación de  SHA3  depende de su tamaño de entrada. Discutimos principalmente los códigos de operación  SLOAD  y  SSTORE, ya que son los más afectados por la bifurcación dura de Berlín. Discutiremos los códigos de operación específicos de la dirección más adelante, como todos los  EXT*  y  CALL* , ya que sus costos de gasolina también han cambiado. Los datos de costo de gas del antiguo SLOAD de Berlín: Ethereum ha alcanzado la altura del bloque de bifurcación dura de Berlín de 12,244,000: según los datos de OKLink, la altura actual del bloque de la red Ethereum es 12,244,000, que ha alcanzado el bloque de la altura de actualización de la red de bifurcación dura de Berlín ; la potencia informática promedio de toda la red Ethereum en la última semana es de 502,37 TH/s, y el tiempo promedio de generación de bloques es de 13 segundos. Esta actualización incluirá cuatro propuestas de mejora de Ethereum (EIP), incluidas EIP-2965 y EIP-2929. [2021/4/15 20:23:26] Antes de EIP-2929, el consumo de gas de SLOAD era simple: siempre consumía 800 de gas. Así que no hay (por ahora) nada que decir. Costo de gas de SSTORE antes de Berlín En términos de consumo de gas, SSTORE es probablemente el código de operación más complejo, porque su costo depende de cosas como el valor actual de la ranura de almacenamiento, el nuevo valor y si se ha modificado antes. Solo analizamos algunos casos para obtener una comprensión básica; si desea saber más, lea el enlace EIP al final del artículo. Si el valor de la ranura de almacenamiento cambia de 0 a 1 (o cualquier valor distinto de cero), el consumo de gas es 20000. Si el valor de la ranura de almacenamiento cambia de 1 a 2 (o cualquier otro valor distinto de cero), el consumo de gas es 5000. Si el valor de la ranura de almacenamiento cambia de 1 (o cualquier valor distinto de cero) a 0, el consumo de gas también es 5000, pero obtendrá 1 reembolso de la tarifa de gas al final de la transacción. Este artículo no tratará los reembolsos de gasolina, ya que no se vieron afectados por la bifurcación dura de Berlín. Si se modifica el valor del slot de almacenamiento en la misma transacción anterior, el consumo de gas de todos los  SSTORE  posteriores será de 800. Los detalles de esta parte no son interesantes, lo importante es que SSTORE es caro, y su consumo depende de varios factores. El rango de actualización de Ethereum Berlin puede incluir 5 propuestas, que pueden aumentar el costo del gas de algunas instrucciones: En la reunión de desarrolladores de Ethereum, los desarrolladores principales discutieron el alcance de la actualización de la próxima actualización de la bifurcación dura de Ethereum (nombre en código Berlín). las actualizaciones que se pueden incluir son EIP-2929, EIP-2930, EIP-2718, EIP-2565 y EIP2315. La parte más controvertida es EIP-2929, propuesta por Vitalik Buterin, proponiendo aumentar el costo del gas para la primera lectura de almacenamiento y acceso a la cuenta, pero esta solución puede afectar la ejecución de algunos contratos inteligentes antiguos. [2020/11/30 22:34:58] EIP-2929 tiene un impacto en el consumo de gas de todos los códigos de operación anteriores. Pero antes de sumergirnos en estos cambios, debemos hablar sobre un concepto importante introducido por este EIP: las direcciones a las que se accede y las claves de almacenamiento a las que se accede. Una dirección o clave de almacenamiento se considera "visitada" si ha sido "utilizada" en una transacción anterior. Por ejemplo, cuando LLAME (llame) a otro contrato, la dirección del contrato se marcará como "accedido (visitado)". Del mismo modo, cuando SLOAD (carga) o SSTORE (almacena) algunos espacios, otras partes de la transacción también se consideran visitadas. No importa qué código de operación lo ejecute: si un  SLOAD  lee un espacio, los siguientes  SLOAD  y SSTORE  se considerarán visitados. Vale la pena señalar aquí que las claves de almacenamiento están "integradas" en algunas direcciones. Como se explica en este EIP: Al ejecutar una transacción, mantenga un conjunto de direcciones_accedidas: Set[Address]  y claves_de_almacenamiento_accedido: Set[Tuple[Address, Bytes32]]dynamic| El mercadillo de Berlín comenzó a usar criptomonedas: según Noticias de Coingape, recientemente, un usuario en una plataforma social compartió una foto que muestra que alguien en un mercado de pulgas en Berlín comenzó a aceptar Bitcoin, Ethereum, IOTA y otras criptomonedas como medio de pago. [2018/9/10] Es decir, cuando decimos que se accede a una ranura de almacenamiento, en realidad decimos que se accede a un par de  (dirección, clave de almacenamiento) . A continuación, hablemos del nuevo consumo de gas. SLOAD después de Berlín Antes de la bifurcación dura en Berlín, SLOAD consume 800 de gasolina de forma fija. Ahora, depende de si se ha accedido a la ranura de almacenamiento o no. Si no se ha accedido el consumo de gas es de 2100, si se ha accedido es de 100. Por tanto, si el slot está en la lista de claves de almacenamiento accedidas, el consumo de gas de SLOAD  será inferior a 2000. SSTORE después de Berlín Volvamos al ejemplo anterior de  SSTORE  en el contexto de EIP-2929: Si el valor de la ranura de almacenamiento cambia de 0 a 1 (o cualquier valor distinto de cero), el consumo de gas es: La clave tiene si no se ha accedido, 22100 si se ha accedido, 20000 si el valor de la ranura de almacenamiento ha cambiado de 1 a 2 (o cualquier otro valor distinto de cero), el consumo de gas es: si no se ha accedido a la clave de almacenamiento, 5000 si se ha accedido, 2900 Si el valor del slot de almacenamiento pasa de 1 (o cualquier valor distinto de cero) a 0, el consumo de gas es el mismo que en el caso anterior, más el retorno. Si se modifica el valor del slot de almacenamiento en la misma transacción anterior, el consumo de gas de todos los  SSTORE  posteriores será de 100. Noticias | EOS Dublin anuncia soporte para WORBLI: Según informes de IMEOS, desde que EOS New York anunció la cooperación con WORBLI, EOS Dublin anunció que se convertirá en uno de los primeros BP de WORBLI blockchain. [2018/9/1] Como puede ver, si la ranura que está siendo modificada por el SSTORE  se visita antes, el primer SSTORE  consume menos de 2100 de gas. La siguiente tabla compara los valores anteriores: Nótese que en la última línea no es necesario hablar de si se ha visitado el slot, porque si se ha escrito antes, entonces se ha visitado. El otro EIP que mencionamos al principio es EIP-2930. Este EIP agrega un nuevo tipo de transacción, que puede agregar una lista de acceso a la transacción. Esto significa que puede declarar de antemano qué direcciones y espacios deben considerarse visitados antes de que comience la ejecución de la transacción. Por ejemplo, un  SLOAD  de un espacio no visitado necesita consumir 2100 de gasolina, pero si el espacio se agrega a la lista de acceso de transacciones, el mismo código de operación solo consume 100 de gasolina. Pero si las direcciones ya visitadas o las claves almacenadas cuestan menos gasolina, ¿eso significa que podemos agregar todo a la lista de acceso de transacciones para reducir el consumo de gasolina? ¡Excelente! ¡No más tarifas de gasolina! Sin embargo, este no es siempre el caso, ya que aún debe pagar la tarifa del gas cada vez que agrega una dirección y almacena una clave. Veamos un ejemplo. Si estamos enviando una transacción al contrato A, la lista de acceso puede ser la siguiente: Un café en Berlín, Alemania acepta pagos ETH y LTC: Un café llamado Crypto Cafe en Berlín, Alemania ha aceptado pagos ETH y LTC, que también es el primero en Berlín Un café que acepta pagos en moneda digital. [2018/2/14] Si enviamos una transacción con esta lista de acceso adjunta, el primer código de operación que usa la ranura 0x0 es SLOAD, que consume 100 de gas en lugar de 2100 de gas. Esto reduce el gas para el año 2000. Pero cada vez que se agrega la clave de almacenamiento a la lista de acceso de la transacción, consumirá 1900 gas. Entonces solo ahorramos 100 de gasolina. (Si el primer código de operación para acceder a la ranura es  SSTORE en lugar de  SLOAD, podemos ahorrar 2100 de gasolina, lo que significa que si consideramos el consumo de la clave de almacenamiento, ahorramos un total de 200 de gasolina). ¿Significa que mientras usemos listas de acceso a transacciones, podemos ahorrar gasolina? No, porque también tenemos que pagar la gasolina por añadir la dirección a la lista de acceso (es decir,  "<dirección de A>"  en nuestro ejemplo). Hasta ahora solo hemos discutido los códigos de operación  SLOAD  y  SSTORE, pero estos no son los únicos códigos de operación que han cambiado después de la actualización de Berlín. Por ejemplo, el costo fijo antes del código de operación  CALL  es 700. Pero después de EIP-2929, si la dirección no está en la lista de acceso, su consumo pasa a ser 2600, si lo está, es 100. Además, al igual que las claves almacenadas a las que se ha accedido, no importa a qué código de operación se accedió antes (por ejemplo, si se llama a EXTCODESIZE  por primera vez, este código de operación consumirá 2600 gas y cualquier uso posterior de la misma dirección  EXTCODESIZE ,  CALL  o STATICCALL solo consumen 100 de gas). ¿Cómo afecta esto a las transacciones con listas de acceso? Por ejemplo, si enviamos una transacción al contrato A, y el contrato llama a otro contrato B, entonces podemos agregar una lista de este tipo: Tendremos que pagar 2400 de gasolina para agregar esta lista de acceso a la transacción, pero luego usar  La primera El código de operación en la dirección B  solo consume 100 de gas, no 2600. Por lo tanto, ahorramos 100 de gasolina al hacer esto. Si B usa su almacenamiento de cierta manera, y sabemos qué teclas se usan, entonces también podemos agregarlas a la lista de acceso, lo que puede ahorrar entre 100 y 200 gasolina por tecla (dependiendo de si su primer código de operación fue  SLOAD  o  SSTORE ). Pero, ¿por qué estamos hablando de otro contrato? ¿Qué pasa con el contrato que estamos llamando? ¿Por qué no hacer estas operaciones en este contrato? Podemos hacer esto, pero no es rentable, porque EIP-2929 estipula claramente que la dirección del contrato que se llama (es decir, tx.to) se agregará a la lista de  direcciones_accedidas de forma predeterminada. Entonces no tenemos que pagar los 2400 adicionales de gasolina. Analicemos el ejemplo anterior nuevamente: a menos que queramos agregar algunas claves de almacenamiento más, esto es realmente un desperdicio. Si configuramos  SLOAD  para usar siempre primero la clave de almacenamiento, entonces necesitamos al menos 24 claves de almacenamiento para conservar el capital. Como puede imaginar, hacer análisis no es tan divertido como crear manualmente una lista de acceso. Afortunadamente, en realidad hay una mejor manera. Geth (desde la versión 1.10.2) ha agregado un nuevo método RPC  eth_createAccessList  que puede usar para generar listas de acceso

Tags:

OKB
¿Qué significa una cotización directa de Coinbase para la industria de las criptomonedas?

Coinbase tendrá una cotización directa en la bolsa de valores Nasdaq el 14 de abril. Con valoraciones que van desde $ 20 mil millones a $ 230 mil millones.

Golden Trend丨BTC alcanza nuevos máximos, ¿cuándo terminará el mercado alcista?

La imagen de arriba muestra la tendencia semanal a largo plazo de BTC 2010-2020 en el ciclo de 10 años. En la actualidad.

Li Bin, Director de la Oficina de Gestión Macroprudencial del Banco Central: No hay un cronograma para el lanzamiento oficial del renminbi digital.

El 12 de abril, el banco central realizó una conferencia de interpretación de datos para el primer trimestre de 2021. El reportero notó que esta era la primera aparición pública de Li Bin.

¿Cuál es el impacto de la bifurcación dura de Berlín en Gas?

La bifurcación dura de Berlín se lanzó en la red principal el 14 de abril e introdujo cuatro EIP. Dos de ellos (EIP-2929   EIP-2930) tienen un impacto en el costo del gas de la transacción.

Golden Outpost | Coinbase, la primera acción encriptada, se cotizará esta noche con un precio de referencia de $250

La primera acción del cambio de moneda digital finalmente está llegando.Coinbase está planeando una cotización directa hoy, 14 de abril. Anoche esta mañana.

Buscar nuevo | Polkadex: una plataforma comercial descentralizada en Polkadot

"Find New" es un proyecto de observación de proyectos de blockchain lanzado por Jinse Finance. Cubre el desarrollo de proyectos en varios campos de la industria.

Proyectos de código abierto, NFT e impuestos Harberger simplificados

Fondo de bonificación de investigación DAOrayaki DAO: Dirección de financiación: 0xCd7da526f5C943126fa9E6f63b7774fA89E88d71 Progreso de la votación: Comité DAO 6/7 Aprobado Recompensa total: 50 USDC Tipo de investigac.

ads