Glossário / Endereços e chaves
Endereço de vaidade
- O que é um endereço de vaidade?
- Um endereço de vaidade forma com seus próprios caracteres uma palavra ou um prefixo escolhidos, encontrado ao testar chaves aleatórias até que uma delas codifique o padrão.
Nada de engenhoso acontece aqui. Um programa gera uma chave, deriva o endereço, verifica se a sequência começa como você queria e repete, bilhões de vezes se necessário. Cada caractere extra que você exige multiplica o trabalho por 58 em um endereço legado ou por 32 em um bech32, então um prefixo de seis caracteres em um endereço legado significa aproximadamente 38 bilhões de tentativas.
Como funciona
A geração de vaidade é força bruta contra uma codificação, nunca contra a criptografia. Um endereço de bitcoin é um hash envolvido em uma soma de verificação e apresentado em um alfabeto restrito, então a única forma de influenciar como ele é lido é continuar gerando chaves novas até que uma delas chegue a uma sequência de que você goste. Não é possível trabalhar de trás para frente, de um endereço desejado até uma chave.
A aritmética é implacável. O Base58 usa 58 caracteres, então igualar cinco caracteres após o 1 inicial exige em média 656.356.768 tentativas, e seis exigem 38.068.692.544. O Bech32 usa um alfabeto de 32 caracteres, o que é mais generoso: seis caracteres após bc1q são 1.073.741.824 tentativas. Ferramentas como o vanitygen e suas bifurcações para GPU processam essas taxas a centenas de milhões de chaves por segundo, e é por isso que prefixos curtos são uma curiosidade e prefixos longos são um orçamento de hardware.
A geração com chave dividida existe para quem quer esse visual sem entregar uma chave. Você gera uma chave privada e envia apenas a chave pública correspondente a quem fará a busca. Essa pessoa procura por força bruta uma chave parcial que, combinada com a sua, produza o padrão, e você mesmo soma as duas metades. Quem faz a busca nunca conhece a chave final. Qualquer serviço que envie por e-mail uma chave privada completa já a viu.
Onde você o vê
Endereços de vaidade aparecem onde quer que um endereço seja impresso em vez de escaneado.
Páginas de doações, cartazes de conferências, endereços de carteiras frias de corretoras publicados como prova de reservas e os endereços de queima que formam frases para as quais ninguém tem chave alguma. Cada um deles é um endereço estático, reutilizado de propósito, o que significa que o proprietário abriu mão da privacidade que um endereço novo daria e aceitou que o saldo seja um número público que qualquer pessoa pode ler.
O caso que serve de alerta vem do Ethereum e se aplica diretamente. O Profanity, uma ferramenta de endereços de vaidade amplamente usada, iniciava sua busca a partir de 32 bits de aleatoriedade, reduzindo o espaço de chaves possíveis a 4.294.967.296. A equipe da 1inch divulgou a falha em setembro de 2022, e em 20 de setembro de 2022 a formadora de mercado Wintermute perdeu cerca de 160 milhões de dólares de um endereço que essa ferramenta havia produzido. Um gerador de vaidade é um programa cujo único trabalho é fabricar chaves privadas, e você confia à aleatoriedade dele tudo o que o endereço venha a guardar.
Endereço de vaidade vs envenenamento de endereços
Um endereço de vaidade é escolhido por seu proprietário; um endereço envenenado é fabricado por um atacante para se parecer com o seu. O envenenamento de endereços usa a mesma técnica de força bruta para igualar os quatro primeiros e os quatro últimos caracteres de um endereço para o qual você já pagou, e depois envia um valor simbólico para que o endereço parecido fique no seu histórico de transações, esperando ser copiado por engano. O hábito que os endereços de vaidade incentivam, ler alguns caracteres e confiar no restante, é exatamente o hábito do qual o ataque depende. Compare a sequência completa, ou confirme-a na tela de uma carteira de hardware que o computador não pode editar.