Pular para o conteúdo principal

Uma postagem marcadas com "Shapella"

Ver todas os Marcadores

Atualização Shanghai (Shapella) do Ethereum, Desmistificada

· Leitura de 7 minutos
Dora Noda
Software Engineer

Saques, ajustes de gás, e o que veio depois—sem o hype.


A Versão Resumida

A atualização Shapella, um portmanteau de Shanghai (para a camada de execução) e Capella (para a camada de consenso), foi ao ar no Ethereum em 12 de abril de 2023. Sua característica principal foi habilitar saques de staking pela primeira vez desde o lançamento da Beacon Chain.

A mudança principal, EIP-4895, introduziu um sistema onde saques de validadores são automaticamente "empurrados" da camada de consenso para a camada de execução, não requerendo transação de usuário ou taxas de gás. Junto a isso, quatro EIPs menores foram enviados para ajustar a EVM, incluindo reduções de custo de gás (Warm COINBASE), otimizações de bytecode (PUSH0), e limites de criação de contratos (Initcode metering). A atualização também serviu como aviso final aos desenvolvedores de que o opcode SELFDESTRUCT estava sendo descontinuado.

Shapella efetivamente fechou o ciclo do Merge, e a próxima grande atualização, Dencun, seguiu em 13 de março de 2024, mudando o foco da rede para escalabilidade com "blobs" EIP-4844.


Por Que Shapella Foi um Marco Crítico

Desde o início da Beacon Chain até abril de 2023, fazer staking de ETH era uma rua de mão única. Você podia depositar 32 ETH para ajudar a proteger a rede e ganhar recompensas, mas não conseguia recuperar seu principal ou essas recompensas da camada de consenso. Essa liquidez bloqueada era um compromisso significativo e uma barreira para muitos stakers em potencial.

Shapella mudou tudo ao abrir a porta de saída.

O núcleo da atualização foi EIP-4895, que engenhosamente projetou uma "operação de saque" em nível de sistema. Em vez de exigir que stakers criassem uma transação e pagassem gás para sacar, o protocolo em si agora automaticamente coleta fundos elegíveis da camada de consenso e os empurra para a camada de execução. Este design limpo, baseado em push, minimizou complexidade e risco, tornando muito mais fácil testar e implantar a mudança com segurança.


O Que Realmente Mudou: Os EIPs em Português Claro

Shapella foi um pacote de cinco Propostas de Melhoria do Ethereum (EIPs) principais:

  • EIP-4895 — Saques da Beacon Chain (Baseados em Push) Este foi o evento principal. Habilitou tanto saques parciais (recompensas) quanto completos (principal + recompensas) para fluir da camada de consenso para o endereço de saque especificado do staker. A inovação chave é que essas não são transações iniciadas pelo usuário; são operações automáticas incorporadas em blocos propostos.

  • EIP-3651 — "Warm COINBASE" Este EIP fez uma pequena mas importante otimização de gás. Na EVM, COINBASE refere-se ao endereço do produtor do bloco (o validador), não a exchange. Antes do Shapella, a primeira vez que um contrato inteligente acessava este endereço dentro de uma transação, incorria em um custo de gás mais alto. EIP-3651 tornou o endereço COINBASE "warm" por padrão, reduzindo o custo de gás para protocolos que frequentemente interagem com ele, como aqueles que pagam gorjetas MEV diretamente ao construtor de blocos.

  • EIP-3855 — Opcode PUSH0 Uma adição simples mas elegante à EVM. Este novo opcode, PUSH0, faz exatamente o que diz: empurra o valor zero para a pilha. Anteriormente, desenvolvedores tinham que usar opcodes mais pesados e caros para conseguir isso. PUSH0 torna o bytecode ligeiramente menor e mais eficiente em gás, especialmente para os numerosos contratos que inicializam variáveis em zero.

  • EIP-3860 — Limitar e Medir initcode Esta mudança introduziu duas regras para o código usado para criar um contrato inteligente (initcode). Primeiro, limitou o tamanho máximo do initcode em 49.152 bytes. Segundo, adicionou uma pequena taxa de gás para cada pedaço de 32 bytes deste código. Isso previne ataques de negação de serviço envolvendo contratos excessivamente grandes e torna os custos de criação de contratos mais previsíveis.

  • EIP-6049 — Depreciar SELFDESTRUCT (Aviso) Isso não foi uma mudança de código, mas um aviso formal para a comunidade de desenvolvedores. Sinalizou que o opcode SELFDESTRUCT, que permite a um contrato se deletar e enviar seu ETH para um endereço alvo, teria sua funcionalidade drasticamente mudada em uma atualização futura. Isso deu aos desenvolvedores tempo para eliminar gradualmente sua dependência antes da atualização Dencun posteriormente alterar seu comportamento com EIP-6780.


Saques 101: Parciais vs. Completos

Shapella introduziu dois tipos de saques automáticos, cada um com suas próprias regras.

  • Saques Parciais Estes são coletas automáticas de recompensas. Se o saldo de um validador cresce acima de 32 ETH devido a recompensas da camada de consenso, o protocolo automaticamente "descremá" o valor excedente e o envia para o endereço de saque designado. O validador permanece ativo e continua seus deveres. Isso acontece sem ação requerida do staker.

  • Saques Completos (Saída) Isso é para stakers que querem parar de validar e recuperar todo seu saldo. O staker deve primeiro transmitir uma mensagem de saída voluntária. Após um período de espera, o validador se torna elegível para um saque completo. Uma vez processado na coleta, todo o saldo é enviado para o endereço de saque, e o validador não é mais parte do conjunto ativo.

Throughput e Cadência

A rede é projetada para processar saques suavemente sem causar instabilidade.

  • Até 16 saques podem ser incluídos em cada bloco (a cada 12 segundos), permitindo um máximo de aproximadamente 115.200 saques por dia.
  • O proponente do bloco escaneia a lista de validadores ativos e inclui os primeiros 16 saques elegíveis. O próximo proponente de bloco continua de onde o último parou, garantindo que cada validador tenha sua vez na fila.
  • Para prevenir um êxodo em massa de desestabilizar a rede, o número de validadores que podem sair por época (a cada ~6.4 minutos) é limitado por um limite de rotatividade. Este limite é dinâmico baseado no número total de validadores ativos, suavizando ondas de saída.

Também é importante notar que recompensas da camada de consenso são tratadas por este mecanismo de saque EIP-4895, enquanto recompensas da camada de execução (taxas prioritárias e MEV) são enviadas diretamente para o endereço do destinatário de taxas configurado do validador e estão disponíveis imediatamente.


O Que Veio Depois: Dencun e o Caminho para Escalabilidade

Shapella marcou a conclusão bem-sucedida da "era do Merge." Com staking agora sendo um processo completamente líquido e bidirecional, desenvolvedores voltaram sua atenção para o próximo grande desafio do Ethereum: escalabilidade.

A próxima grande atualização, Dencun (Deneb + Cancun), chegou em 13 de março de 2024. Sua peça central foi EIP-4844, que introduziu "blobs"—uma nova forma mais barata para rollups de Camada 2 postarem dados de transação na mainnet do Ethereum. Isso reduziu drasticamente as taxas de transação em L2s e foi um passo massivo à frente no roteiro centrado em rollups. Dencun também cumpriu a promessa do EIP-6049 implementando EIP-6780, que significativamente restringiu o poder do opcode SELFDESTRUCT.


O Quadro Geral

Shapella foi o marco de confiança essencial para o consenso Proof-of-Stake do Ethereum. Ao habilitar saques, des-arriscou o staking, restaurou liquidez, e afirmou a capacidade da rede de executar atualizações complexas e coordenadas. Também entregou algumas melhorias pragmáticas da EVM que limparam débito técnico e pavimentaram o caminho para otimizações futuras.

Em resumo, Shapella não apenas abriu a porta de saída para stakers—solidificou a fundação da era pós-Merge e limpou a pista para o Ethereum focar em sua próxima fronteira: escalabilidade massiva.