Diseño de contrato ingenioso, ¿ve cómo stETH distribuye automáticamente los ingresos a diario?

Después de que el autor convirtió su pequeña cantidad de ETH en stETH, descubrió que stETH crecía naturalmente todos los días y continuaba obteniendo ganancias. Pero no veo ninguna transacción en mi cuenta, ¿por qué? Este artículo le explicará el ingenioso diseño que hay detrás y le revelará el secreto de la distribución de ingresos.

Diseño de contrato ingenioso, ¿ve cómo stETH distribuye automáticamente los ingresos a diario?

1 stETH ya ha logrado algunas ganancias en los últimos días

Antes de eso, primero introduzcamos la lógica detrás de la obtención de ingresos de stETH, que es la participación de Ethereum. Los lectores que ya comprenden esta parte del concepto pueden saltar directamente al final.

Diseño de contrato ingenioso, ¿ve cómo stETH distribuye automáticamente los ingresos a diario?

El Ethereum original, al igual que Bitcoin, utilizaba Prueba de Trabajo (PoW) como mecanismo de consenso, pero debido al consumo de energía y otras consideraciones de desarrollo de seguridad y rendimiento de PoW, Ethereum comenzará a actualizarse a Prueba de Participación (PoS) en septiembre de 2022. ).

Ethereum, que originalmente dependía de la minería de potencia informática para atraer a los mineros y lograr un consenso, se ha transformado y ahora depende de que todos obtengan derechos de voto prometiendo ETH y obtengan ingresos mediante la votación, motivando así a todos a lograr un consenso a través de PoS.

Al apostar 32 ETH, puedes unirte a la red Ethereum y convertirte en un validador, responsable de almacenar datos, procesar transacciones y agregar nuevos bloques a la cadena de bloques. Siempre que ejecute la transacción y la empaquete correctamente en un nuevo bloque y verifique el trabajo de otros validadores, recibirá recompensas de ETH, lo que equivale a permitirle tener ingresos relativamente estables al apostar ETH.

Sin embargo, tal promesa sigue siendo demasiado problemática para los usuarios comunes: después de todo, todavía existen ciertos umbrales para 32 Ethereums y una computadora dedicada que pueda acceder a la red Ethereum las 24 horas del día, los 7 días de la semana. Además, apostar ETH hará que se pierda la liquidez de esta parte de ETH. Por lo tanto, existen los derivados de apuestas líquidas (LSD), que tienen como objetivo resolver los problemas de umbral y liquidez en las apuestas tradicionales, permitiendo a los usuarios prometer menos de 32 ETH y no necesitan poseer nodos ellos mismos, sino que ETH se confía a un tercero. para el compromiso y se obtienen los tokens de compromiso correspondientes (como stETH de Lido o rETH de Rocket Pool). Estos tokens de liquidez se pueden intercambiar, tomar prestados o utilizar para otras actividades financieras en otras plataformas. De esta manera, los usuarios pueden participar más fácilmente. en apostar y obtener recompensas manteniendo la flexibilidad de los fondos.

Diseño de contrato ingenioso, ¿ve cómo stETH distribuye automáticamente los ingresos a diario?

Por lo tanto, la lógica esencial de stETH es darle ETH a Lido, quien utilizará estos ETH para participar en el PoS de Ethereum para obtener ingresos, y los usuarios recibirán el stETH correspondiente como un cupón. El siguiente paso es que Lido distribuya las ganancias a estas direcciones con stETH.

Podemos ver que los ingresos de stETH se actualizan automáticamente todos los días. La siguiente imagen es la situación de los ingresos de nuestra prueba, que corresponde al contenido relacionado con la verificación de la billetera cifrada que se puede verificar todos los días.

Diseño de contrato ingenioso, ¿ve cómo stETH distribuye automáticamente los ingresos a diario?

Pero en este punto, creo que los estudiantes que están familiarizados con el desarrollo de contratos inteligentes se sentirán confundidos: con tan pocos ingresos distribuidos todos los días, es posible que los ingresos no sean suficientes para pagar GAS.

De hecho, si Lido distribuye los ingresos según el método más sencillo, será difícil cubrir el coste del GAS. Desde el punto de vista de nuestra intuición, es inimaginable que GAS envíe tokens a tantas direcciones.

Pero es cierto que Lido ha realizado el crecimiento automático de los ingresos stETH en la billetera y no hemos encontrado ninguna transacción en esta dirección, ¿cómo se logra esto?

Encontramos el contrato de Lido y lo rastreamos hasta el método balanceOf del contrato:

Diseño de contrato ingenioso, ¿ve cómo stETH distribuye automáticamente los ingresos a diario?

balanceOf es un método que cumple con la especificación ERC20 y la billetera utiliza este método para obtener cuántos tokens tiene el usuario.

Podemos ver que el método getPooledEthByShares se llama aquí en el contrato stETH. El parámetro de entrada de este método es mapear (dirección => uint256) recursos compartidos privados. ¿Cuánto stETH representa esto para el usuario? Obviamente no, de lo contrario los datos de cada dirección necesitarían actualizarse todos los días, aunque es posible actualizar los tokens de todas las direcciones en una transacción simplemente llamando al método en el contrato para actualizar las acciones, pero obviamente el consumo de GAS También es lo mismo enorme.

A estas alturas todo el mundo debe haber adivinado cómo se implementa el contrato. Sigamos mirando el método getPooledEthByShares.

Diseño de contrato ingenioso, ¿ve cómo stETH distribuye automáticamente los ingresos a diario?

Puede ver que el resultado final devuelto es el monto de acciones en la dirección multiplicado por _getTotalPooledEther() y dividido por _getTotalShares.

_getTotalPooledEther representa cuánto stETH hay en total (si stETH a ETH es 1:1, también representa cuánto ETH hay) y _getTotalShares representa cuántas acciones hay. De esta forma, se calcula dinámicamente cuánto stETH tiene cada dirección.

Por ejemplo, si ahora hay un total de 1000 acciones (acciones, que es el número devuelto por el método _getTotalShares), de las cuales la dirección A tiene 100 acciones (correspondientes a la cantidad de acciones anterior). Estas 1000 acciones corresponden a la cantidad devuelta por 1000 stETH (es decir, _getTotalPooledEther). Entonces, según este cálculo, la dirección A corresponde a 100 stETH. Luego, Lido toma el total de 1000 ETH para prometer y obtiene el ingreso de 1 ETH. Después de eso, la actualización correspondiente _getTotalPooledEther es 1001, es decir, el total inicial de 1000 stETH ha aumentado a 1001, luego la dirección A recién calculada tiene 100 \ * 1001/1000 = 100,1 stETH.

** En pocas palabras, si las acciones propiedad de cada dirección permanecen sin cambios y el stETH correspondiente a las acciones aumenta, entonces el stETH aumentará naturalmente cuando se calcule. **

Sigamos mirando el código: la lógica en _getTotalPooledEther se verá afectada por el método handleOracleReport, y este método actualizará los datos relevantes en el contrato. La llamada específica es llamar periódicamente a submitReportData a través del contrato para actualizar los datos (submitReportData llamará al handleOracleReport del contrato Lido):

Diseño de contrato ingenioso, ¿ve cómo stETH distribuye automáticamente los ingresos a diario?

Podemos ver que hay llamadas para actualizar contenido relevante todos los días, por lo que aunque no podemos ver transacciones en nuestra dirección que generan ingresos, el monto sigue cambiando todos los días.

En realidad, esto refleja una característica del contrato inteligente Ethereum ERC20, que es que la cantidad de tokens que pertenecen a estos contratos ERC20 no está codificada en la dirección, sino que se devuelve mediante el método del contrato, por lo que puede haber casos en los que la cuenta no tener alguna transacción La cantidad de tokens también puede cambiar. Por un lado, esto hace que el contrato ERC20 sea más flexible, pero por otro lado, también trae mucha confusión a muchos amigos que no están familiarizados con el contrato. Espero que este artículo pueda ayudar a todos a comprender mejor los contratos inteligentes e interactuar. con contratos inteligentes de forma más segura.

Además, aunque puede obtener ingresos por apuestas aparentemente estables prometiendo ETH a stETH, aún existen posibles riesgos. Este artículo es solo una referencia de investigación técnica para el contrato de promesa y no constituye ningún consejo de inversión.

Además, anteriormente publicamos un artículo sobre "re-stake". Los lectores interesados pueden continuar leyendo para obtener más información.

Ver originales
  • Recompensa
  • Comentar
  • Compartir
Comentar
0/400
Sin comentarios
Comercie con criptomonedas en cualquier lugar y en cualquier momento
Escanee para descargar la aplicación Gate.io
Comunidad
Español
  • 简体中文
  • English
  • Tiếng Việt
  • 繁體中文
  • Español
  • Русский
  • Français (Afrique)
  • Português (Portugal)
  • ไทย
  • Indonesia
  • 日本語
  • بالعربية
  • Українська
  • Português (Brasil)