Precio de Bitcoin Precio de Bitcoin
Ctrl+D Precio de Bitcoin
ads
Casa > Tron > 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. Costo de gas de SLOAD antes de Berlín 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. EIP-2929 afecta 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. El GAFI cambia la terminología que requiere que las criptoentidades cumplan con los mismos requisitos contra el lavado de dinero que las finanzas tradicionales El campo de la innovación ha sido observado de cerca por los reguladores de todo el mundo. Además de aclarar su redacción sobre intercambios descentralizados (DEX), el GAFI también aludió a la creciente popularidad de los NFT. Con respecto a las plataformas DeFi, el GAFI declaró que es posible que sus estándares no se apliquen al software o la tecnología subyacente, pero las entidades relacionadas con las "DApps", como propietarios u operadores, ahora pueden considerarse proveedores de servicios de activos virtuales (VASP) y entidades criptográficas. debe cumplir con los mismos requisitos de "antilavado de dinero" que las finanzas tradicionales. Además, CipherTrace analizó que, en opinión del GAFI, solo los NFT que pueden promover el lavado de dinero y el financiamiento del terrorismo son "activos virtuales". [2021/3/21 19:04:01] 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  accessed_addresses: Set[Address]  y accessed_storage_keys: Set[Tuple[Address, Bytes32]] Es decir, cuando decimos que una ranura de almacenamiento es accedido Muy bien, en realidad estamos hablando de un par  (dirección, clave de almacenamiento)  al que se accede. 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. Como puede ver, la primera STIENDA consume menos de 2100 de gas si la ranura que está modificando la STIENDA se visita antes. 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? ¡Gran! ¡No más tarifas de gas! 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 enviamos una transacción al contrato A, la lista de acceso podría ser la siguiente: si enviamos una transacción con esta lista de acceso, el primer código de operación que usa la ranura 0x0 es SLOAD, que consume 100 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) agrega un nuevo método RPC  eth_createAccessList  que puede usar para generar listas de acceso. Su uso es similar a  eth_estimateGas , pero en lugar de la estimación de gas, devuelve un resultado como el siguiente: Es decir, te da una lista de direcciones y claves de almacenamiento que se utilizarán en la transacción, más una lista de acceso El gas consumido al ser añadido. (Al igual que  eth_estimateGas, que es una estimación, esta lista puede cambiar cuando se extrae la transacción). Sin embargo, esto no significa que el consumo de gas será menor que enviar la misma transacción sin acceso a la lista ¡Consumido! Supongo que descubriremos la forma correcta de usarla con el tiempo, pero mi suposición es el siguiente pseudocódigo: Vale la pena mencionar que el propósito principal de la lista de acceso es no usar gasolina. Como explica EIP: para reducir el riesgo de ruptura del contrato introducido por EIP-2929, porque la transacción puede especificar la cuenta y el espacio de almacenamiento al que accede el plan de transacción por adelantado y pagar por adelantado; finalmente, en la ejecución real, el código de operación SLOAD y EXT* solo consumen 100 gas: este bajo consumo de gas no solo evita interrupciones causadas por este EIP, sino que también "afloja" cualquier contrato restringido por EIP-1884.

Tags:

Tron
Más de la mitad de los inversores se cortaron la carne y abandonaron el mercado.¿Adónde va el protocolo algorítmico de stablecoin?

Una semana después del lanzamiento de la red principal, el protocolo algorítmico de moneda estable Fei completó varias votaciones de propuestas de la comunidad.

Golden Sentinel|PlatON lanzará la implementación previa de la red principal el 25 de abril

Jinse Finance se enteró de que el 21 de abril, la red informática de IA de privacidad PlatON anunció oficialmente el proceso de aceptación de la comunidad para el lanzamiento de su red principal.

Grayscale se encuentra firmemente en el primer lugar en custodia de cifrado, con 40 000 millones de activos digitales.

Inspirándose en la lista de Forbes, Cointelegraph Consulting enumera cinco empresas reguladas de gestión de activos digitales que juntas poseen cerca de USD 46 000 millones en activos digitales. Las cinco empresas son.

¿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.

El arte del descubrimiento de precios: cuando la curva de enlace se encuentra con NFT

Título original: "The Art of Price Discovery, Nested Curatorial Markets, When Bonding Curves Meet NFTs" Prólogo: En el marco tradicional, hay tres fuerzas que dominan la asignación de recursos, el mercado.

Golden Morning Post | El Senado de EE.UU.confirma la elección de Gary Gensler como presidente de la SEC

Título ▌El Senado de EE. UU. confirma a Gary Gensler como presidente de la SECJinse Finance informó que el Senado de los Estados Unidos confirmó a Gary Gensler como presidente de la Comisión de Bolsa y Valores de los.

ads