Como funciona a geração de endereço de vaidade TRON? Da chave privada aleatória à colisão de prefixo

Como funciona a geração de endereço de vaidade TRON? Da chave privada aleatória à colisão de prefixo

Muitas pessoas, ao ouvirem falar de endereços de vaidade TRON pela primeira vez, pensam: esse endereço é escolhido de algum pool de números? A resposta é não. Um endereço TRON é, essencialmente, um hash de 160 bits, derivado de uma chave privada aleatória por meio de algoritmo de assinatura e função hash. O chamado endereço de vaidade não é criado antecipadamente para depois procurar a chave privada; o processo consiste em gerar continuamente chaves privadas aleatórias, calcular o endereço e verificar se o início ou o fim corresponde à string desejada. Se houver correspondência, você o guarda; se não, descarta.

O processo inteiro é mais parecido com comprar bilhete de loteria: os números saem aleatoriamente, e você apenas confere.

Primeiro, entenda: como um endereço TRON é realmente gerado

Para entender os endereços de vaidade, é preciso saber como o endereço é calculado. Um endereço TRON não é criado antes da chave privada; é o contrário. O fluxo é:

  • Gerar um número aleatório verdadeiro de 256 bits como chave privada;
  • Derivar a chave pública a partir da chave privada usando o algoritmo de curva elíptica secp256k1;
  • Aplicar o hash Keccak-256 à chave pública e pegar os últimos 20 bytes;
  • Adicionar o prefixo de endereço 0x41 antes dos 20 bytes e codificar com Base58Check;

O resultado é a string de 34 caracteres que vemos na carteira, com o primeiro caractere do endereço fixado em T. O conjunto de caracteres Base58 removeu os facilmente confundíveis 0, O, I e l, portanto esses caracteres não aparecem no endereço. Isso também define um conjunto limitado de caracteres para formar palavras.

Custo real da busca por endereços de vaidade: a cada caractere extra, a dificuldade multiplica por 58

Como o primeiro caractere do endereço é sempre T, a parte que realmente pode ser colidida são os 33 caracteres seguintes. Se você quiser que o segundo caractere também seja T, em média serão necessárias apenas 58 tentativas; para travar mais um caractere, multiplique o trabalho por 58. É uma relação exponencial, que fica cada vez mais impressionante.

Tomando como exemplo um prefixo comum de 5 caracteres: para corresponder a 4 caracteres consecutivos após o T, são necessárias em média 584≈11,31 milhões de tentativas. A CPU de um computador comum rodando em thread única leva alguns minutos; com paralelismo multi-core, é possível reduzir para alguns segundos. Um prefixo de 6 caracteres é 586≈38 bilhões de tentativas, e um PC pessoal já leva cerca de meio dia; um prefixo de 8 caracteres é 588≈128 trilhões de tentativas, exigindo até mesmo alguns dias com um cluster de GPUs. Portanto, quanto mais longo o prefixo visto no mercado, maior o custo computacional por trás dele, e o preço do vendedor naturalmente é mais alto.

Observe que estamos falando de prefixos consecutivos. Se você apenas exigir que determinada sequência apareça em alguma posição do endereço, o cálculo de probabilidade é completamente diferente e a dificuldade de colisão é bem menor.

Os detalhes da string do endereço: prefixo, sufixo e palavras personalizadas

O tipo mais comum de endereço de vaidade TRON é o prefixo fixo. Por exemplo, T seguido por caracteres repetidos, números da sorte, data de nascimento ou número de celular. Também há correspondência por sufixo, como terminar com vários caracteres 8888. Esse tipo de endereço exige colidir o mesmo número de caracteres que o tamanho do sufixo, sem redução de dificuldade.

Como o conjunto Base58 não inclui 0, O, I ou l, formar palavras completas em inglês é bastante limitado. Algumas palavras que parecem possíveis não podem aparecer no endereço. Por exemplo, qualquer palavra que contenha l minúsculo não funciona. É por isso que, no ecossistema TRON, vemos frequentemente variações como Tr0n, Tron e TRX: elas podem ser representadas no conjunto de caracteres Base58.

Quer gerar você mesmo? O fluxo mais simples e seu limite

Escrever seu próprio script para colisão não é difícil. A lógica central é um loop: gerar uma chave privada aleatória, calcular o endereço, verificar se corresponde à string desejada e, se corresponder, exibir a chave privada e o endereço. Em termos de ferramentas, você pode usar diretamente a linha de comando do TronWeb ou chamar as bibliotecas de baixo nível e escrever seu próprio código. O que realmente limita uma pessoa é a velocidade e a confiabilidade.

Por um lado, prefixos longos exigem um número muito alto de hashes, e uma CPU comum logo é superada pelo poder de processamento de GPUs. Por outro lado, ao escrever o próprio programa de colisão, é fácil cometer erros básicos na gestão da chave privada, como executá-lo em um ambiente conectado à internet, imprimir a chave privada nos logs ou enviar o script de teste para um repositório público. Esses deslizes podem fazer o endereço de vaidade cair diretamente nas mãos de outra pessoa.

Se você só precisa de um ou dois endereços de prefixo curto para receber ou enviar pagamentos ocasionalmente, rodar seu próprio script é suficiente. Se quiser prefixos longos com mais de 7 caracteres, é mais vantajoso escolher em um mercado pronto de endereços de vaidade TRON. No mercado da Akali (oxc.us), é possível filtrar por quantidade de caracteres; o processo de compra está em processo de compra, e no geral é muito mais simples do que montar sua própria estrutura de GPUs.

Ao comprar um endereço de vaidade pronto, faça estas três coisas primeiro

Primeiro, validação offline. Antes de importar a chave privada no TronLink, confirme em um ambiente sem conexão com a internet que a chave privada corresponde exatamente ao endereço; depois, verifique o histórico de transações desse endereço no Tronscan para garantir que não seja um endereço antigo já utilizado.

Segundo, faça um teste com um valor pequeno. Envie 1 TRX para o novo endereço e confirme que é possível receber e enviar normalmente. Esse passo revela a maioria dos problemas de importação ou configuração de permissões.

Terceiro, controle o risco dos ativos. O endereço comprado é, essencialmente, uma chave privada que já passou pelas mãos do vendedor; teoricamente, o vendedor ainda pode ter uma cópia. Se você pretende manter grandes quantias por muito tempo, recomenda-se usar o endereço de vaidade como endereço intermediário de recebimento e, assim que os fundos chegarem, transferi-los imediatamente para outro endereço de sua posse, mantido offline. Você também pode usar a proteção de transação oferecida pela plataforma; o mecanismo específico está em segurança, e os detalhes operacionais e as regras de pós-venda estão em perguntas frequentes.

O valor de um endereço de vaidade está em ser reconhecido de imediato e em reduzir a probabilidade de transferências para o endereço errado, mas, por mais bonito que seja o prefixo, a segurança da chave privada continua sendo o limite fundamental. Escolher o número é questão de gosto; já as operações que envolvem a chave privada devem ser feitas com calma e conferidas mais de uma vez.

Quer um endereço raro TRON inesquecível?

Escolher no mercado→