Interpretar el ingenioso diseño de stETH

Intermedio3/22/2024, 10:01:35 PM
La lógica fundamental de stETH es depositar ETH en Lido. Lido utiliza estos ETH para participar en PoS (Prueba de Participación) de Ethereum para ganar recompensas, y los usuarios reciben stETH correspondientes como prueba de su participación. Posteriormente, Lido distribuye las recompensas a las direcciones que tienen stETH.

Título reenviado: Diseño inteligente de contratos: ¿ves cómo stETH distribuye automáticamente las ganancias diariamente? Deja que tu ETH participe en el staking para ganar intereses estables.

El autor convirtió una pequeña cantidad de Ether (ETH) en Ether estable (stETH) y descubrió que la cantidad de stETH aumentaba naturalmente cada día, generando ganancias continuas. Sin embargo, no había registros de transacciones visibles en la cuenta. ¿Por qué es esto? Este artículo explorará el ingenioso diseño detrás de esto y revelará el secreto de la distribución de beneficios.

1 stETH ha generado algunas ganancias después de unos días.

Antes de adentrarnos en cómo stETH genera ganancias, primero introduzcamos la lógica detrás de ello, que es el staking de Ethereum. Los lectores que ya estén familiarizados con este concepto pueden avanzar.

Inicialmente, Ethereum, al igual que Bitcoin, utilizaba Prueba de Trabajo (PoW) como su mecanismo de consenso. Sin embargo, debido a preocupaciones sobre el consumo de energía, la seguridad y la escalabilidad, Ethereum hizo la transición a Prueba de Participación (PoS) en septiembre de 2022.

Anteriormente, Ethereum dependía del poder de minería para lograr consenso, ahora depende de los participantes apostando ETH para obtener derechos de voto y ganar recompensas a través de votaciones. Esto incentiva el consenso a través de PoS.

Al apostar 32 ETH, uno puede unirse a la red de Ethereum como validador, responsable de almacenar datos, procesar transacciones y agregar nuevos bloques a la cadena de bloques. Los validadores reciben recompensas en ETH por empaquetar correctamente transacciones en nuevos bloques y verificar el trabajo de otros validadores, lo que permite obtener rendimientos relativamente estables a través del staking.

Sin embargo, el stake tradicional es engorroso para los usuarios comunes, ya que requiere 32 ETH y una computadora dedicada con acceso ininterrumpido a la red de Ethereum. Además, el stake de ETH bloquea la liquidez. Por lo tanto, surge el concepto de Derivados de Stake Líquido (LSD), con el objetivo de abordar las barreras y problemas de liquidez del stake tradicional. LSD permite a los usuarios hacer stake con menos de 32 ETH y delegar sus ETH a proveedores de stake de terceros, recibiendo tokens de stake correspondientes (como el stETH de Lido o el rETH de Rocket Pool). Estos tokens líquidos pueden ser intercambiados, prestados o utilizados para otras actividades financieras en diversas plataformas, lo que permite a los usuarios participar en el stake de manera más conveniente manteniendo la liquidez.

Por lo tanto, la lógica fundamental detrás de stETH es que los usuarios proporcionan su ETH a Lido, que luego utiliza estos ETH para participar en PoS de Ethereum y generar beneficios. A cambio, los usuarios reciben stETH como prueba de su participación. A continuación, Lido distribuye los beneficios a las direcciones que poseen stETH.

Podemos observar que los beneficios de stETH se actualizan automáticamente todos los días. El siguiente gráfico ilustra la situación de beneficios que probamos, y los usuarios pueden verificar el contenido relevante de sus billeteras cifradas diariamente.

En este punto, aquellos familiarizados con el desarrollo de contratos inteligentes podrían preguntarse: con ganancias diarias tan pequeñas, ¿es suficiente siquiera para cubrir las tarifas de gas?

De hecho, si Lido distribuyera las ganancias utilizando el método más simple, probablemente tendría dificultades para cubrir el costo del gas. Enviar tokens a un número tan grande de direcciones requeriría tarifas de gas significativas, lo cual puede no ser factible.

Sin embargo, Lido ha logrado lograr un crecimiento automático de beneficios en las tenencias de stETH dentro de las carteras sin ninguna transacción aparente. ¿Cómo es esto posible?

Encontramos el contrato de Lido en https://etherscan.io/token/0xae7ab96520de3a18e5e111b5eaab095312d7fe84y rastreó el método balanceOf en el contrato.

El método balanceOf es compatible con el estándar ERC20 y es utilizado por las carteras para recuperar la cantidad de tokens propiedad de un usuario.

En el contrato stETH, vemos que llama al método getPooledEthByShares. Este método toma el mapeo (dirección => uint256) shares privado; como entrada. ¿Representa esto cuánto stETH tiene un usuario? Claramente no, ya que actualizar los datos para cada dirección todos los días sería poco práctico. Si bien actualizar las shares en una sola transacción podría lograr esto, el consumo de gas seguiría siendo sustancial.

A estas alturas, muchos de ustedes pueden haber adivinado cómo funciona el contrato. Continuemos examinando el método getPooledEthByShares.

Se puede observar que el resultado final se obtiene multiplicando el sharesAmount en la dirección por _getTotalPooledEther() y dividiendo por _getTotalShares.

_getTotalPooledEther representa la cantidad total de stETH (que, si stETH está anclado a ETH en una proporción de 1:1, también representa la cantidad total de ETH), mientras que _getTotalShares representa el número total de participaciones. Con este cálculo, la cantidad de stETH poseída por cada dirección se determina dinámicamente.

Por ejemplo, si hay un total de 1000 acciones, con la Dirección A poseyendo 100 acciones (como se representa por sharesAmount), y el total de stETH es 1000 (como se devuelve por _getTotalPooledEther), entonces según este cálculo, la Dirección A poseería 100 stETH.

Ahora, si Lido apuesta un total de 1000 ETH y obtiene 1 ETH de beneficio, actualizando _getTotalPooledEther a 1001, lo que significa que el total de stETH aumenta de 1000 a 1001. Por lo tanto, el nuevo cálculo para la Dirección A sería 100 * 1001 / 1000 = 100.1 stETH.

En términos más simples, mientras las acciones mantenidas por cada dirección permanecen constantes, el stETH correspondiente a esas acciones aumenta. Por lo tanto, al recalcularlo, las tenencias de stETH aumentan naturalmente.

Continuando con el código, la lógica dentro de _getTotalPooledEther está influenciada por el método handleOracleReport, que actualiza datos relevantes dentro del contrato. Este método se llama periódicamente, y la invocación específica ocurre a través del contrato enhttps://etherscan.io/address/0x852deD011285fe67063a08005c71a85690503Cee, que periódicamente llama a submitReportData para actualizar los datos (submitReportData internamente llama a handleOracleReport en el contrato Lido):

Podemos ver que hay llamadas diarias para actualizar contenido relevante, lo cual explica por qué, aunque no podemos ver ninguna transacción distribuyendo ganancias a nuestra dirección, el saldo cambia todos los días.

Esto ilustra una característica de los contratos inteligentes Ethereum ERC20: la cantidad de tokens poseídos por direcciones no está codificada en duro, sino que es devuelta por métodos del contrato. Por lo tanto, es posible que el saldo de tokens de una dirección cambie incluso sin ninguna transacción. Si bien esta flexibilidad hace que los contratos ERC20 sean más versátiles, también puede resultar confuso para aquellos que no están familiarizados con los contratos. Espero que este artículo ayude a los lectores a comprender mejor los contratos inteligentes e interactuar con ellos de manera más segura e inteligente.

Además, si bien apostar ETH para obtener stETH parece ofrecer recompensas de apuesta estables, todavía existen riesgos potenciales involucrados. Este artículo sirve como una exploración técnica de contratos de apuesta y no debe interpretarse como un consejo de inversión.

Declaración:

  1. Este artículo es una reproducción de [Equipo ZAN],Título original "Diseño de contrato ingenioso, ¿ves cómo stETH distribuye automáticamente los ingresos a diario? ¡Deja que tu ETH participe en el staking para obtener intereses estables!" Los derechos de autor pertenecen al autor original[Equipo ZAN], si tienes alguna objeción al reimpresión, por favor contacta al Gate Learnequipo, y el equipo lo manejará tan pronto como sea posible de acuerdo con los procedimientos relevantes.

  2. Descargo de responsabilidad: Las opiniones expresadas en este artículo representan únicamente las opiniones personales del autor y no constituyen ningún consejo de inversión.

  3. Otras versiones del artículo en otros idiomas son traducidas por el equipo de Gate Learn y no son mencionadas en Gate.io) el artículo traducido no puede ser reproducido, distribuido o plagiado.

Share

Content

Interpretar el ingenioso diseño de stETH

Intermedio3/22/2024, 10:01:35 PM
La lógica fundamental de stETH es depositar ETH en Lido. Lido utiliza estos ETH para participar en PoS (Prueba de Participación) de Ethereum para ganar recompensas, y los usuarios reciben stETH correspondientes como prueba de su participación. Posteriormente, Lido distribuye las recompensas a las direcciones que tienen stETH.

Título reenviado: Diseño inteligente de contratos: ¿ves cómo stETH distribuye automáticamente las ganancias diariamente? Deja que tu ETH participe en el staking para ganar intereses estables.

El autor convirtió una pequeña cantidad de Ether (ETH) en Ether estable (stETH) y descubrió que la cantidad de stETH aumentaba naturalmente cada día, generando ganancias continuas. Sin embargo, no había registros de transacciones visibles en la cuenta. ¿Por qué es esto? Este artículo explorará el ingenioso diseño detrás de esto y revelará el secreto de la distribución de beneficios.

1 stETH ha generado algunas ganancias después de unos días.

Antes de adentrarnos en cómo stETH genera ganancias, primero introduzcamos la lógica detrás de ello, que es el staking de Ethereum. Los lectores que ya estén familiarizados con este concepto pueden avanzar.

Inicialmente, Ethereum, al igual que Bitcoin, utilizaba Prueba de Trabajo (PoW) como su mecanismo de consenso. Sin embargo, debido a preocupaciones sobre el consumo de energía, la seguridad y la escalabilidad, Ethereum hizo la transición a Prueba de Participación (PoS) en septiembre de 2022.

Anteriormente, Ethereum dependía del poder de minería para lograr consenso, ahora depende de los participantes apostando ETH para obtener derechos de voto y ganar recompensas a través de votaciones. Esto incentiva el consenso a través de PoS.

Al apostar 32 ETH, uno puede unirse a la red de Ethereum como validador, responsable de almacenar datos, procesar transacciones y agregar nuevos bloques a la cadena de bloques. Los validadores reciben recompensas en ETH por empaquetar correctamente transacciones en nuevos bloques y verificar el trabajo de otros validadores, lo que permite obtener rendimientos relativamente estables a través del staking.

Sin embargo, el stake tradicional es engorroso para los usuarios comunes, ya que requiere 32 ETH y una computadora dedicada con acceso ininterrumpido a la red de Ethereum. Además, el stake de ETH bloquea la liquidez. Por lo tanto, surge el concepto de Derivados de Stake Líquido (LSD), con el objetivo de abordar las barreras y problemas de liquidez del stake tradicional. LSD permite a los usuarios hacer stake con menos de 32 ETH y delegar sus ETH a proveedores de stake de terceros, recibiendo tokens de stake correspondientes (como el stETH de Lido o el rETH de Rocket Pool). Estos tokens líquidos pueden ser intercambiados, prestados o utilizados para otras actividades financieras en diversas plataformas, lo que permite a los usuarios participar en el stake de manera más conveniente manteniendo la liquidez.

Por lo tanto, la lógica fundamental detrás de stETH es que los usuarios proporcionan su ETH a Lido, que luego utiliza estos ETH para participar en PoS de Ethereum y generar beneficios. A cambio, los usuarios reciben stETH como prueba de su participación. A continuación, Lido distribuye los beneficios a las direcciones que poseen stETH.

Podemos observar que los beneficios de stETH se actualizan automáticamente todos los días. El siguiente gráfico ilustra la situación de beneficios que probamos, y los usuarios pueden verificar el contenido relevante de sus billeteras cifradas diariamente.

En este punto, aquellos familiarizados con el desarrollo de contratos inteligentes podrían preguntarse: con ganancias diarias tan pequeñas, ¿es suficiente siquiera para cubrir las tarifas de gas?

De hecho, si Lido distribuyera las ganancias utilizando el método más simple, probablemente tendría dificultades para cubrir el costo del gas. Enviar tokens a un número tan grande de direcciones requeriría tarifas de gas significativas, lo cual puede no ser factible.

Sin embargo, Lido ha logrado lograr un crecimiento automático de beneficios en las tenencias de stETH dentro de las carteras sin ninguna transacción aparente. ¿Cómo es esto posible?

Encontramos el contrato de Lido en https://etherscan.io/token/0xae7ab96520de3a18e5e111b5eaab095312d7fe84y rastreó el método balanceOf en el contrato.

El método balanceOf es compatible con el estándar ERC20 y es utilizado por las carteras para recuperar la cantidad de tokens propiedad de un usuario.

En el contrato stETH, vemos que llama al método getPooledEthByShares. Este método toma el mapeo (dirección => uint256) shares privado; como entrada. ¿Representa esto cuánto stETH tiene un usuario? Claramente no, ya que actualizar los datos para cada dirección todos los días sería poco práctico. Si bien actualizar las shares en una sola transacción podría lograr esto, el consumo de gas seguiría siendo sustancial.

A estas alturas, muchos de ustedes pueden haber adivinado cómo funciona el contrato. Continuemos examinando el método getPooledEthByShares.

Se puede observar que el resultado final se obtiene multiplicando el sharesAmount en la dirección por _getTotalPooledEther() y dividiendo por _getTotalShares.

_getTotalPooledEther representa la cantidad total de stETH (que, si stETH está anclado a ETH en una proporción de 1:1, también representa la cantidad total de ETH), mientras que _getTotalShares representa el número total de participaciones. Con este cálculo, la cantidad de stETH poseída por cada dirección se determina dinámicamente.

Por ejemplo, si hay un total de 1000 acciones, con la Dirección A poseyendo 100 acciones (como se representa por sharesAmount), y el total de stETH es 1000 (como se devuelve por _getTotalPooledEther), entonces según este cálculo, la Dirección A poseería 100 stETH.

Ahora, si Lido apuesta un total de 1000 ETH y obtiene 1 ETH de beneficio, actualizando _getTotalPooledEther a 1001, lo que significa que el total de stETH aumenta de 1000 a 1001. Por lo tanto, el nuevo cálculo para la Dirección A sería 100 * 1001 / 1000 = 100.1 stETH.

En términos más simples, mientras las acciones mantenidas por cada dirección permanecen constantes, el stETH correspondiente a esas acciones aumenta. Por lo tanto, al recalcularlo, las tenencias de stETH aumentan naturalmente.

Continuando con el código, la lógica dentro de _getTotalPooledEther está influenciada por el método handleOracleReport, que actualiza datos relevantes dentro del contrato. Este método se llama periódicamente, y la invocación específica ocurre a través del contrato enhttps://etherscan.io/address/0x852deD011285fe67063a08005c71a85690503Cee, que periódicamente llama a submitReportData para actualizar los datos (submitReportData internamente llama a handleOracleReport en el contrato Lido):

Podemos ver que hay llamadas diarias para actualizar contenido relevante, lo cual explica por qué, aunque no podemos ver ninguna transacción distribuyendo ganancias a nuestra dirección, el saldo cambia todos los días.

Esto ilustra una característica de los contratos inteligentes Ethereum ERC20: la cantidad de tokens poseídos por direcciones no está codificada en duro, sino que es devuelta por métodos del contrato. Por lo tanto, es posible que el saldo de tokens de una dirección cambie incluso sin ninguna transacción. Si bien esta flexibilidad hace que los contratos ERC20 sean más versátiles, también puede resultar confuso para aquellos que no están familiarizados con los contratos. Espero que este artículo ayude a los lectores a comprender mejor los contratos inteligentes e interactuar con ellos de manera más segura e inteligente.

Además, si bien apostar ETH para obtener stETH parece ofrecer recompensas de apuesta estables, todavía existen riesgos potenciales involucrados. Este artículo sirve como una exploración técnica de contratos de apuesta y no debe interpretarse como un consejo de inversión.

Declaración:

  1. Este artículo es una reproducción de [Equipo ZAN],Título original "Diseño de contrato ingenioso, ¿ves cómo stETH distribuye automáticamente los ingresos a diario? ¡Deja que tu ETH participe en el staking para obtener intereses estables!" Los derechos de autor pertenecen al autor original[Equipo ZAN], si tienes alguna objeción al reimpresión, por favor contacta al Gate Learnequipo, y el equipo lo manejará tan pronto como sea posible de acuerdo con los procedimientos relevantes.

  2. Descargo de responsabilidad: Las opiniones expresadas en este artículo representan únicamente las opiniones personales del autor y no constituyen ningún consejo de inversión.

  3. Otras versiones del artículo en otros idiomas son traducidas por el equipo de Gate Learn y no son mencionadas en Gate.io) el artículo traducido no puede ser reproducido, distribuido o plagiado.

Start Now
Sign up and get a
$100
Voucher!