Interprete o engenhoso design de stETH

Intermediário3/22/2024, 10:01:35 PM
A lógica fundamental do stETH é depositar ETH no Lido. O Lido utiliza esses ETH para participar do PoS (Proof of Stake) da Ethereum e ganhar recompensas, e os usuários recebem stETH correspondentes como prova de sua participação. Posteriormente, o Lido distribui as recompensas para os endereços que possuem stETH.

Título encaminhado: Design inteligente do contrato: veja como o stETH distribui automaticamente os lucros diariamente? Deixe o seu ETH participar no staking para ganhar juros estáveis.

O autor converteu uma pequena quantidade de Ether (ETH) em Ether estável (stETH) e descobriu que a quantidade de stETH aumentava naturalmente todos os dias, gerando lucros contínuos. No entanto, não havia registros de transações visíveis na conta. Porquê? Este artigo irá explorar o design inteligente por trás disto e revelar o segredo da distribuição de lucros.

1 stETH gerou alguns lucros após alguns dias.

Antes de entrar em como stETH obtém lucros, vamos primeiro apresentar a lógica por trás disso, que é o stake de Ethereum. Os leitores que já estão familiarizados com este conceito podem avançar.

Inicialmente, o Ethereum, tal como o Bitcoin, usava o Proof of Work (PoW) como mecanismo de consenso. No entanto, devido a preocupações com o consumo de energia, segurança e escalabilidade, o Ethereum fez a transição para o Proof of Stake (PoS) em setembro de 2022.

Anteriormente dependente do poder de mineração para atingir consenso, o Ethereum agora depende dos participantes a apostar ETH para obter direitos de voto e ganhar recompensas através da votação. Isso incentiva o consenso através de PoS.

Ao apostar 32 ETH, é possível juntar-se à rede Ethereum como validador, responsável por armazenar dados, processar transações e adicionar novos blocos à blockchain. Os validadores recebem recompensas em ETH por empacotar corretamente transações em novos blocos e verificar o trabalho de outros validadores, permitindo retornos relativamente estáveis através do staking.

No entanto, o staking tradicional é complicado para os utilizadores comuns, uma vez que requer 32 ETH e um computador dedicado com acesso ininterrupto à rede Ethereum. Além disso, o staking de ETH bloqueia a liquidez. Daí a emergência dos Derivados de Staking Líquido (LSD), destinados a resolver as barreiras e questões de liquidez do staking tradicional. O LSD permite aos utilizadores fazer staking de menos de 32 ETH e delegar o seu ETH a fornecedores de staking de terceiros, recebendo tokens de staking correspondentes (como o stETH da Lido ou o rETH da Rocket Pool). Estes tokens líquidos podem ser negociados, emprestados ou utilizados para outras atividades financeiras em várias plataformas, permitindo aos utilizadores participar no staking de forma mais conveniente, mantendo a liquidez.

Assim, a lógica fundamental por trás do stETH é que os utilizadores fornecem o seu ETH à Lido, que depois utiliza estes ETH para participar no PoS da Ethereum e gerar lucros. Em troca, os utilizadores recebem stETH como prova da sua participação. Em seguida, a Lido distribui os lucros para os endereços que detêm stETH.

Podemos observar que os lucros do stETH são atualizados automaticamente todos os dias. O gráfico seguinte ilustra a situação do lucro que testamos, e os utilizadores podem verificar diariamente o conteúdo relevante das suas carteiras criptografadas.

Neste ponto, aqueles familiarizados com o desenvolvimento de contratos inteligentes podem questionar: com lucros diários tão pequenos, será suficiente para cobrir as taxas de gás?

De facto, se a Lido distribuísse lucros usando o método mais simples, provavelmente teria dificuldade em cobrir o custo do gás. Enviar tokens para um número tão grande de endereços exigiria taxas de gás significativas, o que pode não ser viável.

No entanto, a Lido conseguiu alcançar um crescimento automático dos lucros nas participações em stETH dentro das carteiras sem quaisquer transações aparentes. Como é possível?

Encontrámos o contrato da Lido em https://etherscan.io/token/0xae7ab96520de3a18e5e111b5eaab095312d7fe84e rastreou o método balanceOf no contrato.

O método balanceOf está em conformidade com o padrão ERC20 e é utilizado pelas carteiras para recuperar a quantidade de tokens detida por um utilizador.

No contrato stETH, vemos que chama o método getPooledEthByShares. Este método recebe o mapeamento (endereço => uint256) ações privadas; como entrada. Isso representa quanto stETH um usuário tem? Claramente não, pois atualizar os dados para cada endereço todos os dias seria impraticável. Embora a atualização de ações em uma única transação possa alcançar isso, o consumo de gás ainda seria substancial.

Até agora, muitos de vocês podem ter adivinhado como o contrato funciona. Vamos continuar examinando o método getPooledEthByShares.

Pode-se observar que o resultado final é obtido multiplicando o sharesAmount no endereço por _getTotalPooledEther() e dividindo por _getTotalShares.

_getTotalPooledEther representa a quantidade total de stETH (que, se o stETH estiver fixado ao ETH numa proporção de 1:1, também representa a quantidade total de ETH), enquanto _getTotalShares representa o número total de ações. Com este cálculo, a quantidade de stETH detida por cada endereço é determinada dinamicamente.

Por exemplo, se houver um total de 1000 ações, com o Endereço A a possuir 100 ações (conforme representado por sharesAmount), e o total de stETH for 1000 (conforme devolvido por _getTotalPooledEther), então, de acordo com este cálculo, o Endereço A possuiria 100 stETH.

Agora, se a Lido apostar o total de 1000 ETH e ganhar 1 ETH de lucro, atualizando _getTotalPooledEther para 1001, o que significa que o total de stETH aumenta de 1000 para 1001. Portanto, o novo cálculo para o Endereço A seria 100 * 1001 / 1000 = 100.1 stETH.

Em termos mais simples, enquanto as ações mantidas por cada endereço permanecem constantes, o stETH correspondente a essas ações aumenta. Portanto, quando recalculado, os ativos stETH aumentam naturalmente.

Continuando com o código, a lógica dentro de _getTotalPooledEther é influenciada pelo método handleOracleReport, que atualiza os dados relevantes dentro do contrato. Este método é chamado periodicamente, e a invocação específica ocorre através do contrato emhttps://etherscan.io/address/0x852deD011285fe67063a08005c71a85690503Cee, que periodicamente chama submitReportData para atualizar os dados (submitReportData chama internamente handleOracleReport no contrato Lido):

Podemos ver que há chamadas diárias para atualizar o conteúdo relevante, o que explica por que, mesmo que não possamos ver nenhuma transação distribuindo lucros para nosso endereço, o saldo muda todos os dias.

Isto ilustra uma característica dos contratos inteligentes Ethereum ERC20: a quantidade de tokens detidos pelos endereços não está codificada, mas retornada pelos métodos do contrato. Portanto, é possível que o saldo de token de um endereço mude mesmo sem quaisquer transações. Embora essa flexibilidade torne os contratos ERC20 mais versáteis, também pode ser confusa para aqueles que não estão familiarizados com contratos. Espero que este artigo ajude os leitores a entender melhor os contratos inteligentes e interagir com eles de forma mais segura e inteligente.

Além disso, embora apostar ETH para obter stETH pareça oferecer recompensas estáveis de apostas, ainda existem riscos potenciais envolvidos. Este artigo serve como uma exploração técnica dos contratos de apostas e não deve ser interpretado como um conselho de investimento.

Declaração:

  1. Este artigo é reproduzido a partir de [Equipe ZAN],Título original “Design de contrato engenhoso, veja como o stETH distribui automaticamente rendimentos diariamente? Deixe o seu ETH participar no staking para obter juros estáveis”,Direitos de autor pertencem ao autor original[Equipe ZAN], se tiver alguma objeção à reimpressão, por favor entre em contato com o Gate Learnequipa, e a equipa irá tratar disso o mais breve possível de acordo com os procedimentos relevantes.

  2. Aviso legal: As opiniões expressas neste artigo representam apenas as opiniões pessoais do autor e não constituem qualquer conselho de investimento.

  3. Outras versões linguísticas do artigo são traduzidas pela equipa Gate Learn e não são mencionadas em Gate.io), o artigo traduzido não pode ser reproduzido, distribuído ou plagiado.

Share

Content

Interprete o engenhoso design de stETH

Intermediário3/22/2024, 10:01:35 PM
A lógica fundamental do stETH é depositar ETH no Lido. O Lido utiliza esses ETH para participar do PoS (Proof of Stake) da Ethereum e ganhar recompensas, e os usuários recebem stETH correspondentes como prova de sua participação. Posteriormente, o Lido distribui as recompensas para os endereços que possuem stETH.

Título encaminhado: Design inteligente do contrato: veja como o stETH distribui automaticamente os lucros diariamente? Deixe o seu ETH participar no staking para ganhar juros estáveis.

O autor converteu uma pequena quantidade de Ether (ETH) em Ether estável (stETH) e descobriu que a quantidade de stETH aumentava naturalmente todos os dias, gerando lucros contínuos. No entanto, não havia registros de transações visíveis na conta. Porquê? Este artigo irá explorar o design inteligente por trás disto e revelar o segredo da distribuição de lucros.

1 stETH gerou alguns lucros após alguns dias.

Antes de entrar em como stETH obtém lucros, vamos primeiro apresentar a lógica por trás disso, que é o stake de Ethereum. Os leitores que já estão familiarizados com este conceito podem avançar.

Inicialmente, o Ethereum, tal como o Bitcoin, usava o Proof of Work (PoW) como mecanismo de consenso. No entanto, devido a preocupações com o consumo de energia, segurança e escalabilidade, o Ethereum fez a transição para o Proof of Stake (PoS) em setembro de 2022.

Anteriormente dependente do poder de mineração para atingir consenso, o Ethereum agora depende dos participantes a apostar ETH para obter direitos de voto e ganhar recompensas através da votação. Isso incentiva o consenso através de PoS.

Ao apostar 32 ETH, é possível juntar-se à rede Ethereum como validador, responsável por armazenar dados, processar transações e adicionar novos blocos à blockchain. Os validadores recebem recompensas em ETH por empacotar corretamente transações em novos blocos e verificar o trabalho de outros validadores, permitindo retornos relativamente estáveis através do staking.

No entanto, o staking tradicional é complicado para os utilizadores comuns, uma vez que requer 32 ETH e um computador dedicado com acesso ininterrupto à rede Ethereum. Além disso, o staking de ETH bloqueia a liquidez. Daí a emergência dos Derivados de Staking Líquido (LSD), destinados a resolver as barreiras e questões de liquidez do staking tradicional. O LSD permite aos utilizadores fazer staking de menos de 32 ETH e delegar o seu ETH a fornecedores de staking de terceiros, recebendo tokens de staking correspondentes (como o stETH da Lido ou o rETH da Rocket Pool). Estes tokens líquidos podem ser negociados, emprestados ou utilizados para outras atividades financeiras em várias plataformas, permitindo aos utilizadores participar no staking de forma mais conveniente, mantendo a liquidez.

Assim, a lógica fundamental por trás do stETH é que os utilizadores fornecem o seu ETH à Lido, que depois utiliza estes ETH para participar no PoS da Ethereum e gerar lucros. Em troca, os utilizadores recebem stETH como prova da sua participação. Em seguida, a Lido distribui os lucros para os endereços que detêm stETH.

Podemos observar que os lucros do stETH são atualizados automaticamente todos os dias. O gráfico seguinte ilustra a situação do lucro que testamos, e os utilizadores podem verificar diariamente o conteúdo relevante das suas carteiras criptografadas.

Neste ponto, aqueles familiarizados com o desenvolvimento de contratos inteligentes podem questionar: com lucros diários tão pequenos, será suficiente para cobrir as taxas de gás?

De facto, se a Lido distribuísse lucros usando o método mais simples, provavelmente teria dificuldade em cobrir o custo do gás. Enviar tokens para um número tão grande de endereços exigiria taxas de gás significativas, o que pode não ser viável.

No entanto, a Lido conseguiu alcançar um crescimento automático dos lucros nas participações em stETH dentro das carteiras sem quaisquer transações aparentes. Como é possível?

Encontrámos o contrato da Lido em https://etherscan.io/token/0xae7ab96520de3a18e5e111b5eaab095312d7fe84e rastreou o método balanceOf no contrato.

O método balanceOf está em conformidade com o padrão ERC20 e é utilizado pelas carteiras para recuperar a quantidade de tokens detida por um utilizador.

No contrato stETH, vemos que chama o método getPooledEthByShares. Este método recebe o mapeamento (endereço => uint256) ações privadas; como entrada. Isso representa quanto stETH um usuário tem? Claramente não, pois atualizar os dados para cada endereço todos os dias seria impraticável. Embora a atualização de ações em uma única transação possa alcançar isso, o consumo de gás ainda seria substancial.

Até agora, muitos de vocês podem ter adivinhado como o contrato funciona. Vamos continuar examinando o método getPooledEthByShares.

Pode-se observar que o resultado final é obtido multiplicando o sharesAmount no endereço por _getTotalPooledEther() e dividindo por _getTotalShares.

_getTotalPooledEther representa a quantidade total de stETH (que, se o stETH estiver fixado ao ETH numa proporção de 1:1, também representa a quantidade total de ETH), enquanto _getTotalShares representa o número total de ações. Com este cálculo, a quantidade de stETH detida por cada endereço é determinada dinamicamente.

Por exemplo, se houver um total de 1000 ações, com o Endereço A a possuir 100 ações (conforme representado por sharesAmount), e o total de stETH for 1000 (conforme devolvido por _getTotalPooledEther), então, de acordo com este cálculo, o Endereço A possuiria 100 stETH.

Agora, se a Lido apostar o total de 1000 ETH e ganhar 1 ETH de lucro, atualizando _getTotalPooledEther para 1001, o que significa que o total de stETH aumenta de 1000 para 1001. Portanto, o novo cálculo para o Endereço A seria 100 * 1001 / 1000 = 100.1 stETH.

Em termos mais simples, enquanto as ações mantidas por cada endereço permanecem constantes, o stETH correspondente a essas ações aumenta. Portanto, quando recalculado, os ativos stETH aumentam naturalmente.

Continuando com o código, a lógica dentro de _getTotalPooledEther é influenciada pelo método handleOracleReport, que atualiza os dados relevantes dentro do contrato. Este método é chamado periodicamente, e a invocação específica ocorre através do contrato emhttps://etherscan.io/address/0x852deD011285fe67063a08005c71a85690503Cee, que periodicamente chama submitReportData para atualizar os dados (submitReportData chama internamente handleOracleReport no contrato Lido):

Podemos ver que há chamadas diárias para atualizar o conteúdo relevante, o que explica por que, mesmo que não possamos ver nenhuma transação distribuindo lucros para nosso endereço, o saldo muda todos os dias.

Isto ilustra uma característica dos contratos inteligentes Ethereum ERC20: a quantidade de tokens detidos pelos endereços não está codificada, mas retornada pelos métodos do contrato. Portanto, é possível que o saldo de token de um endereço mude mesmo sem quaisquer transações. Embora essa flexibilidade torne os contratos ERC20 mais versáteis, também pode ser confusa para aqueles que não estão familiarizados com contratos. Espero que este artigo ajude os leitores a entender melhor os contratos inteligentes e interagir com eles de forma mais segura e inteligente.

Além disso, embora apostar ETH para obter stETH pareça oferecer recompensas estáveis de apostas, ainda existem riscos potenciais envolvidos. Este artigo serve como uma exploração técnica dos contratos de apostas e não deve ser interpretado como um conselho de investimento.

Declaração:

  1. Este artigo é reproduzido a partir de [Equipe ZAN],Título original “Design de contrato engenhoso, veja como o stETH distribui automaticamente rendimentos diariamente? Deixe o seu ETH participar no staking para obter juros estáveis”,Direitos de autor pertencem ao autor original[Equipe ZAN], se tiver alguma objeção à reimpressão, por favor entre em contato com o Gate Learnequipa, e a equipa irá tratar disso o mais breve possível de acordo com os procedimentos relevantes.

  2. Aviso legal: As opiniões expressas neste artigo representam apenas as opiniões pessoais do autor e não constituem qualquer conselho de investimento.

  3. Outras versões linguísticas do artigo são traduzidas pela equipa Gate Learn e não são mencionadas em Gate.io), o artigo traduzido não pode ser reproduzido, distribuído ou plagiado.

Start Now
Sign up and get a
$100
Voucher!