Levo memes por dizer às pessoas que chaves privadas em texto simples são ruins. Mas aqui estamos em 2026, e eu ainda estou lutando contra pessoas que dizem que tudo bem fazer isso, enquanto vazamentos de chaves foram a principal fonte de hacks no ano passado. Deixe-me explicar as respostas comuns que recebo e por que elas estão erradas. 👇
1. "É só minha chave de implantação, não minha chave de administrador" Uma boa prática para o desenvolvimento de contratos inteligentes é transferir a propriedade de um contrato inteligente para uma carteira diferente daquela com a qual você foi implantado. Recomendamos colocar scripts de implantação no escopo de uma auditoria para verificar isso.
Ter uma carteira descartável como essa é algo bom, mas ainda assim deixa você aberto: - endereços de deployers são frequentemente rotulados nos exploradores para dar credibilidade - Você ainda tem dinheiro neles que pode ser roubado - já vimos MUITOS ataques em que alguém esqueceu de transferir a propriedade
Já participei de chamadas em sala de guerra onde a resposta foi "a chave do deployer era do administrador, e ela foi vazada". A maioria dos projetos não tem seus scripts de implantação auditados. Então, quando você diz "são só minhas chaves de implantação", eu digo "você não auditou sua implantação, vai estragar"
E, por fim, se você está usando chaves de implantação em um .env, está criando o hábito de ser tranquilo com chaves de texto simples. Lembre-se disso: "O que você pratica em desenvolvimento, fará em produção" E se você tem chaves privadas em texto simples, aposto que você não é cuidadoso mesmo.
2. "Eu uso um .gitignore, não vou enviar para a fonte" Resposta terrível. React, solana/web3js e npm foram todos hackeados no ano passado, e alguns desses hacks vasculharam seus arquivos em busca de informações sensíveis em arquivos .env. Se você rodou "instalação de npm" - poderia ter sido prejudicado.
Sem falar nas extensões maliciosas do IDE e outros malwares que você pode instalar e que também passam pelos seus arquivos. As pessoas com essa resposta geralmente dizem "Não sou iniciante, vou tomar cuidado", mas claramente não entendem como funciona a cadeia de suprimentos de software.
3. "É muito trabalhoso, é mais conveniente usar chaves de texto simples" Bem, a vida é mais conveniente quando você tem $0, não precisa se preocupar em manter seu dinheiro seguro quando não tem dinheiro. Então acho que esse é um bom ponto.
Mas falando sério, existem coisas que você pode fazer. A maioria dos frameworks de desenvolvimento de contratos inteligentes tem ferramentas de criptografia, como foundry, mocassin e capacete rígido. Todos permitem que você criptografe suas chaves em um único comando e descriptografe com senha na execução do script. É muito conveniente.
Tudo o que peço é que não normalizemos chaves privadas em texto simples. Você não recebe os DMs que eu e SEAL recebemos de quem perdeu tudo. A dor é real, não a normalize. LLMs são treinados nessa má prática e ainda assim recomendam, precisamos parar para que os LLMs parem.
473