Futuros
Aceda a centenas de contratos perpétuos
TradFi
Ouro
Plataforma de ativos tradicionais globais
Opções
Hot
Negoceie Opções Vanilla ao estilo europeu
Conta Unificada
Maximize a eficiência do seu capital
Negociação de demonstração
Arranque dos futuros
Prepare-se para a sua negociação de futuros
Eventos de futuros
Participe em eventos para recompensas
Negociação de demonstração
Utilize fundos virtuais para experimentar uma negociação sem riscos
Lançamento
CandyDrop
Recolher doces para ganhar airdrops
Launchpool
Faça staking rapidamente, ganhe potenciais novos tokens
HODLer Airdrop
Detenha GT e obtenha airdrops maciços de graça
Launchpad
Chegue cedo ao próximo grande projeto de tokens
Pontos Alpha
Negoceie ativos on-chain para airdrops
Pontos de futuros
Ganhe pontos de futuros e receba recompensas de airdrop
Investimento
Simple Earn
Ganhe juros com tokens inativos
Investimento automático
Invista automaticamente de forma regular.
Investimento Duplo
Aproveite a volatilidade do mercado
Soft Staking
Ganhe recompensas com staking flexível
Empréstimo de criptomoedas
0 Fees
Dê em garantia uma criptomoeda para pedir outra emprestada
Centro de empréstimos
Centro de empréstimos integrado
Centro de Património VIP
Aumento de património premium
Gestão de património privado
Alocação de ativos premium
Fundo Quant
Estratégias quant de topo
Staking
Faça staking de criptomoedas para ganhar em produtos PoS
Alavancagem inteligente
New
Alavancagem sem liquidação
Cunhagem de GUSD
Cunhe GUSD para retornos RWA
PERSPECTIVA DO DESENVOLVEDOR | Como se Tornar um Validador Ethereum Solo
Pense nisso por um segundo,
Uma blockchain é apenas uma grande base de dados única que não pertence a ninguém, mas pode ser escrita por qualquer um, e tudo que nela for escrito não pode ser apagado. Para escrever nela, é preciso ter uma cópia da base de dados no seu computador.
Então, finalmente percebeu o quão bom investimento é tornar-se um validador do Ethereum e decidiu tentar ver quanto consegue ganhar?
Primeiro, parabéns. Isso é uma grande responsabilidade e, em nome da comunidade Ethereum, agradeço (por qualquer motivo que tenha para se tornar um validador — ganhar recompensas de bloco, tornar o Ethereum mais descentralizado etc) pela sua iniciativa audaciosa.
Na mesma linha de descentralização, vamos ver como ser um validador solo, ou como é conhecido de forma mais elegante, fazer staking solo no Ethereum.
Não vamos abordar outras formas de staking, como staking líquido, staking como serviço ou similares. Quero dizer, você decidiu ser um validador, por que não fazer do jeito cypherpunk, hein?
Vamos nos familiarizar com alguns termos primeiro:
O Ethereum é uma blockchain de Prova de Participação (Proof of Stake) desde que aconteceu o “The Merge” em 15 de setembro de 2022, que mudou o Ethereum de Prova de Trabalho (PoW) para Prova de Participação (PoS).
Isso significa que a forma como o Ethereum alcança consenso mudou completamente.
Lembra como dissemos que uma blockchain é apenas uma grande única base de dados em vários computadores? Bem, o estado dessa base de dados precisa ser conhecido por todos os computadores na rede o tempo todo. Os computadores (nós, os nós) participantes na rede precisam concordar sobre qual é o estado atual da base de dados, ou seja, alcançar consenso!
Os nós do Ethereum não precisam resolver problemas matemáticos complexos para alcançar consenso, como era no PoW, mas sim, eles bloqueiam uma quantidade de éter (ETH) de antemão, basicamente dizendo:
“Ei, estou disposto a ser um validador que irá adicionar blocos e verificar transações, e se eu me comportar mal de alguma forma enquanto faço isso, você pode tirar o éter que eu depoistei de antemão (meu stake) como punição. Se eu me comportar corretamente, você me recompensa com éter recém-criado!”
Quando mais de dois terços dos validadores concordam com o estado atual da base de dados, o estado da blockchain é considerado finalizado!
Por que dois terços de todos os validadores?
Imagine se tivéssemos que esperar que todos os validadores (no momento da escrita, Ethereum tem 1.031.682 validadores ativos) na rede concordassem com o estado da blockchain? A velocidade de finalização da blockchain seria muito lenta, tornando o Ethereum praticamente inutilizável. A velocidade de finalização de uma blockchain é tão rápida quanto o seu nó mais lento, e considerando que o Ethereum é altamente descentralizado (ou seja, pode ser executado em hardware comum de consumo, que geralmente é mais lento do que computadores institucionais de alta performance), temos que levar em conta o nó mais lento. Então, dois terços não parecem um número ruim para esperar, após esse argumento não tão convincente, estou certo… 😂😂😂
O modelo de segurança do Ethereum agora pode ser resumido como “Seres humanos são criaturas racionais que querem lucrar e tomarão decisões racionais para alcançar esses lucros. Portanto, eles não se comportarão mal, pois, se se comportarem, o éter que bloquearam de antemão (seu stake) será cortado!”
Conseguir segurança através do capitalismo, não é?
Primeiro de tudo,
O que diabos é um nó do Ethereum?
Um nó do Ethereum é um computador rodando o software do Ethereum, chamado cliente Ethereum. É só isso. Acredite, é exatamente isso. É o mais simples possível, sem palavras complicadas, sem enrolação. É isso! Nós do Ethereum.
Esses nós compõem a blockchain do Ethereum — um conjunto de computadores rodando software semelhante que podem se comunicar entre si.
Qualquer um pode rodar um nó do Ethereum, mas não há benefício financeiro em fazer isso. Não me leve a mal, há benefícios em rodar um nó (não confundir com ser um validador), como:
Ao gerar uma chave de assinatura ‘mágica’ especializada e fazer stake de 32 ETH em um contrato inteligente vinculado a essa chave, você transforma seu nó Ethereum em um validador.
Validadores são nós ‘ativados’ que processam as transações dos usuários e as consolidam (ou seja, finalizam).
A validade de cada transação é votada por todos os validadores (sign attestations) na rede Ethereum e atestada pelo ETH que eles fizeram stake.
Como validadores processam e atestam as transações dos usuários, eles são recompensados por fazerem bem seu trabalho e penalizados quando se comportam mal. Se forem considerados desonestos, maliciosos ou gravemente negligentes, terão seu stake cortado até o valor total e expulsos da rede.
Isso incentiva os validadores a serem e permanecerem honestos.
Então, como fazer staking solo no Ethereum?
Você precisa fazer stake de 32 ETH para se tornar um validador no Ethereum. 32 ETH equivalem a Ksh. 13.998.370,65 na data de escrita, onde 1 ETH = Ksh. 437.449,08 — quanto vale 1 ETH agora que você está lendo?
Como eles chegaram ao requisito de 32 ETH? Está embutido no código que os computadores (software cliente) executam para participar na blockchain do Ethereum.
Depois, você precisa rodar um software cliente específico para se tornar um validador. Aqui estão exemplos de softwares para rodar:
Esses softwares são chamados coletivamente de Software de Camada de Consenso porque são eles que alcançam o consenso na Ethereum — decidem o estado da blockchain.
Agora que você sabe qual software rodar e tem 32 ETH, está pronto para ganhar aquelas recompensas de bloco, certo? Bem, sim, mas, como sempre, o diabo está nos detalhes. Vamos ver como isso pode facilmente se tornar uma tarefa bem complexa.
Staking solo
Staking solo envolve rodar seu próprio nó completamente e receber as recompensas de bloco sem compartilhá-las com ninguém.
Requisitos mínimos de hardware para fazer staking solo:
Os requisitos de hardware podem parecer assustadores à primeira vista, mas já viu os requisitos de hardware do Solana?
Lembre-se do nosso mantra:
“Uma blockchain é apenas uma grande base de dados única que não pertence a ninguém, mas pode ser escrita por qualquer um, e tudo que nela for escrito não pode ser apagado. Você precisa ter uma cópia da base de dados no seu computador se quiser escrever nela.”
Vamos então analisar como cada componente de hardware afeta o desempenho:
– Pode perder atestações (votes) e propostas de blocos se for muito lenta
– Com o crescimento da rede (mais endereços, contratos inteligentes, transações), a demanda por memória aumenta para manter o estado da cadeia e propagar transações.
– IP estático melhora a descoberta por outros nós e evita problemas de poucos peers
– Alguns ISPs bloqueiam encaminhamento de portas (port forwarding) se não tiver IP fixo
Lembrando que você precisa rodar um cliente de camada de consenso como Lighthouse, certo? Além disso, também precisa rodar um cliente de camada de execução.
O que é um cliente de camada de execução? Fico feliz que tenha perguntado…
Um cliente de camada de execução no Ethereum é o software que executa contratos inteligentes e transações. É onde suas dApps favoritas, como Aave, Uniswap e aquela sua meme coin que você espera que decole, são executadas. Essa camada de execução compõe a Ethereum Virtual Machine (EVM).
Exemplos de clientes de camada de execução incluem:
NB: Melhore a resiliência do Ethereum usando um cliente de execução minoritário. E se acontecer um evento de cisne negro e o geth — que tem cerca de 55% de participação de mercado na hora da escrita, ou seja, mais da metade dos clientes de execução do Ethereum usam geth — tiver um bug crítico? Isso significa que o Ethereum vai travar?
A validação de blocos funciona assim:
Vamos fazer um exemplo de configuração do reth (cliente de camada de execução) com o Lighthouse (cliente de camada de consenso).
Os passos abaixo assumem que você já tem uma noção básica de trabalhar com o ambiente Linux, incluindo digitar comandos no terminal, mesmo que sem entender exatamente o que fazem, mas que funcionam.
ls -al | grep | xxd | echo -n
Ah, você não entendeu nada do que acabei de digitar?
Se ls -al | grep | xxd | echo -n parece mandarim para você, é hora de revisar seus livros e aprender seus comandos Linux. Não precisa ser um guru como eu (sim, uso Arch), mas pelo menos aprenda a diferenciar seu cd de seu rm -rf /!
Vamos trabalhar em uma máquina com Ubuntu instalada.
Primeiro, precisamos criar um JSON Web Token (JWT) que permitirá que o software de camada de execução (reth) e o de camada de consenso (Lighthouse) se comuniquem.
Execute os comandos abaixo, um de cada vez, para criar uma pasta chamada jwtsecret e gerar o arquivo JWT jwt.hex dentro dela:
Depois, configuraremos os arquivos de configuração dos clientes de execução e consenso para apontar para esse arquivo JWT (jwt.hex).
Baixe o reth e configure o serviço:
Baixe a versão mais recente do reth aqui (https://github.com/paradigmxyz/reth/releases)) e seu arquivo de assinatura digital (.asc) para verificar o checksum, garantindo que o arquivo não foi alterado.
Verifique o checksum com:
Saída esperada: Verificação do checksum bem-sucedida, como:
“
gpg: assinatura feita em Seg 24 Jun 2024 13:33:15 EAT
gpg: usando chave EDDSA 50FB7CC55B2E8AFA59FE03B7AA5ED56A7FBF253E
gpg: assinatura boa de “Georgios Konstantopoulos (Chave de assinatura Reth para 2024 e seguintes) <[email protected]>” [desconhecido]
gpg: AVISO: Esta chave não é certificada com uma assinatura confiável!
gpg: Não há indicação de que a assinatura pertença ao proprietário.
“
Verifique a chave de assinatura da versão aqui (https://reth.rs/installation/binaries.html#signature-verification)).
Se o checksum for válido, extraia os arquivos e mova-os para /usr/local/bin:
Crie uma conta chamada reth sem acesso ao servidor, para rodar como serviço em background:
Crie uma pasta para o reth armazenar os dados da blockchain:
Crie o arquivo de configuração systemd para o reth:
Cole as configurações abaixo:
“
[Unit]
Description=Cliente de Execução Reth (Holesky)
After=network.target
Wants=network.target
[Service]
User=reth
Group=reth
Type=simple
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/reth node \
–chain holesky \
–datadir=/var/lib/reth \
–log.file.directory=/var/lib/reth/logs \
–authrpc.jwtsecret=/var/lib/jwtsecret/jwt.hex \
–full \
–port 30304 \
–http \
–http.api eth,web3,net,txpool,debug,trace \
–http.addr <endereço_ip_interno> \
–http.port 8547 \
–ws \
–ws.addr <endereço_ip_interno> \
–ws.port 8548 \
–metrics 127.0.0.1:6060
“
Após salvar, revise sua configuração e ajuste se necessário.
Resumo da configuração do reth:
Inicie o reth:
Saída esperada: “active (running)”. Use CTRL+C para parar, ele continuará rodando. Pode levar cerca de 6 horas para sincronizar na testnet Holesky.
Verifique os logs de sincronização:
Saída esperada: monitoramento em tempo real, com atenção a avisos ou erros.
Para ativar o reth ao reiniciar:
Configuração do cliente de consenso (Lighthouse):
Baixe a versão mais recente (https://github.com/sigp/lighthouse/releases)) e verifique o checksum:
Verifique com:
Saída esperada: assinatura válida.
Extraia e mova para /usr/local/bin:
Crie usuário separado para o cliente de consenso:
Crie pasta para dados:
Configure o serviço:
Cole:
“
[Unit]
Description=Lighthouse Beacon Node (Holesky)
Wants=network-online.target
After=network-online.target
[Service]
User=lighthousebeacon
Group=lighthousebeacon
Type=simple
Restart=always
RestartSec=5
ExecStart=/usr/local/bin/lighthouse bn \
–network holesky \
–datadir /var/lib/lighthouse_beacon \
–execution-endpoint http://127.0.0.1 :8551 \
–execution-jwt /var/lib/jwtsecret/jwt.hex \
–checkpoint-sync-url https://holesky.beaconstate.ethstaker.cc/ \
–metrics \
–metrics-port 8009 \
–validator-monitor-auto \
–port 9001 \
–http \
–http-port 5051 \
–http-address <endereço_ip_interno> \
–builder http://127.0.0.1
“
Após salvar, revise sua configuração.
Inicie o Lighthouse:
Saída: “active (running)”. Pode levar alguns minutos para sincronizar na Holesky.
Verifique os logs:
Para ativar ao reiniciar:
Verificação de raízes iniciais (checkpoint):
Documentação do Lighthouse em (https://lighthouse-book.sigmaprime.io/intro.html)).
Geração de Chaves do Validador
Chave do validador é a chave criptográfica usada pelos validadores do Ethereum. Existem dois tipos principais:
Como gerar essas duas chaves? Recomendo fazer de forma cyperpunk, usando uma máquina isolada (air-gapped), que nunca tocou na internet.
Se possível, use um Raspberry Pi (custa menos de 100 USD). Se não, baixe um sistema operacional seguro, como Tail OS, rode de um USB, gere as chaves, copie para o USB e pronto.
Faça a geração em ambiente seguro, com WiFi confiável, e bloqueie câmeras físicas (laptop, webcam, etc). Desligue internet e conexões wireless antes de gerar as chaves.
Para segurança, não armazene a seed phrase online ou em dispositivos conectados à internet. Proteja suas chaves como se fosse seu BTC!
Vamos usar Tail OS para maior segurança.
Baixe o arquivo binário de geração de chaves de depósito do validador aqui (https://github.com/ethereum/staking-deposit-cli/releases)), verifique o checksum:
Saída esperada: OK
Extraia:
Gere as chaves de assinatura do validador:
Antes de continuar, desligue internet, WiFi, Bluetooth, cubra câmeras, e esteja em ambiente seguro.
Execute:
Use um endereço de carteira não custodial, como uma cold wallet ou multi-sig seguro.
Responda às perguntas:
Ao terminar, anote a seed phrase em papel — nunca online ou em dispositivos conectados à internet.
Depois, o programa gera dois arquivos:
Copie esses arquivos para um USB, remova o original:
Reinicie seu dispositivo e remova o USB, que não terá memória persistente.
Para usar a chave no seu nó, conecte o USB, identifique-o:
Procure pelo seu USB, por exemplo sdx.
Monte o USB:
Copie a chave para o diretório do seu nó:
Desmonte o USB:
Crie um arquivo de senha para seu nó usar ao acessar a chave:
Copie o nome do arquivo keystore, crie o arquivo de senha:
Digite a senha que criou antes, salve.
Agora, para fazer o depósito de 32 ETH, envie para o contrato de depósito do Beacon na mainnet (endereço 0x0000…5Fa). Mas NÃO envie direto, use o Launchpad oficial (http://launchpad.ethereum.org/)).
Se estiver na testnet Holesky, use o launchpad de teste (https://holesky.launchpad.ethstaker.cc/)).
Como obter 32 ETH de teste? Vá ao site https://holesky-faucet.pk910.de/, mint 32 test ETH, ou a quantidade que puder, e siga os passos no Discord (https://discord.gg/ethstaker).
Depois, acesse o link gerado, conecte sua carteira Metamask, assine a mensagem, copie o link, cole na caixa de assinatura.
Acesse https://holesky.launchpad.ethstaker.cc/, clique em “Tornar-se um validador”, leia os avisos, e na seção “Upload de dados de depósito”, envie o arquivo deposit_data-.json gerado anteriormente.
Antes de confirmar, verifique o endereço do contrato de depósito na sua carteira, para garantir que é o endereço correto (para Holesky, é 0x4242…42).
Clique em “Enviar Depósito” e siga as instruções do seu wallet.
Depois, você pode acompanhar a ativação do seu validador pelos links fornecidos. Pode demorar alguns minutos para aparecer.
Parabéns! Agora você é um contribuinte para a descentralização do Ethereum.
Saindo do seu validador
Se desejar sair, pode fazer uma saída voluntária, enviando uma mensagem ao beacon chain. Você precisa estar ativo, não ter sido penalizado (slashed), e ter pelo menos 256 epochs (~27h) desde a ativação.
Após iniciar a saída, o processo leva pelo menos 5 epochs (~32 minutos). Você pode usar o comando:
Confirme a saída com a frase de confirmação, e ela será processada na cadeia.
Se desejar retirar seus ETH e recompensas, após a atualização Capella (12/04/2023), você pode fazer a retirada completa, se tiver as credenciais corretas (tipo 0x01).
Cada cliente de consenso tem seu procedimento de saída, como Prsym (https://docs.prylabs.network/docs/wallet/exiting-a-validator)), Nimbus (https://nimbus.guide/voluntary-exit.html)), Lodestar (https://chainsafe.github.io/lodestar/run/validator-management/validator-cli#validator-voluntary-exit)), Teku (https://docs.teku.consensys.net/HowTo/Voluntary-Exit)).
Este post mistura links de testnet e mainnet. Adapte para a rede que deseja validar!
Ufa, foi longo!
Você leu exatamente 6.309 palavras, ou 40.289 caracteres, explicando como fazer staking solo.
Espero que suas expectativas tenham sido atendidas e que agora consiga montar seu próprio validador solo.
Até a próxima, na outra ponta da cadeia, onde discutiremos se o EigenLayer é o futuro das liquidações do Ethereum ou não, enquanto zoamos a Solana por estar sempre offline e a Cardano com seus papers acadêmicos que… bem, essa é história para outro dia!