Endereços vanity com chave dividida: comprar sem confiar no vendedor

Quem gera um endereço vanity gera também a sua chave privada — a menos que a busca corra sobre uma chave pública. Veja como funciona a compra split-key, a aritmética por trás, do que protege e do que não protege, e como verificar você mesmo.

Atualizado em 22 de outubro de 20264 min de leitura
Nesta página

Toda loja que vende endereços vanity prontos tem o mesmo buraco, e nenhuma política o tapa: para criar o endereço, o vendedor criou a sua chave privada. Podem lhe dizer que a cópia foi apagada. Não podem lhe mostrar isso.

A compra com chave dividida não discute essa premissa — ela a elimina. O vendedor continua fazendo o trabalho caro, milhões de endereços candidatos por segundo numa GPU, e mesmo assim nunca possui a chave que acaba ficando com você.

A aritmética

As chaves do TRON vivem na curva secp256k1: uma chave privada é um número d e a chave pública correspondente é o ponto d·G. O que importa é que essa correspondência é aditiva:

`` (d + s)·G = d·G + s·G ``

Então a busca pode ser dividida em duas:

  1. Seu navegador escolhe um d aleatório e envia apenas P = d·G, a metade pública.
  2. A fazenda testa deslocamentos s = 1, 2, 3, …, calcula P + s·G e confere o endereço a cada passo. Nunca conhece d, logo nunca conhece d + s.
  3. A fazenda devolve o s que caiu no seu padrão.
  4. Seu navegador calcula d + s — a chave privada do endereço encontrado.

O deslocamento viaja aberto porque sozinho não vale nada: sem d é apenas um número, e recuperar d a partir de P é o problema do logaritmo discreto sobre o qual a secp256k1 é construída.

O que cada lado sabe

VocêO vendedor
Sua metade dsimnão
Metade pública Psimsim
Deslocamento ssimsim
Chave final d + ssimnão

Não existe etapa em que a chave pronta exista no hardware do vendedor. Nem na memória, nem num log, nem num backup — as peças nunca se encontram lá.

Do que não protege

Chave dividida não é panaceia, e a loja que sugerir o contrário está lhe vendendo conforto, não segurança.

  • Não verifica o código do vendedor. Seu navegador precisa realmente gerar a chave localmente. Abra as ferramentas de desenvolvedor, observe a aba Rede durante o pedido e confirme que o que sai da página são 128 caracteres hex de chave pública, nunca 64 de chave privada.
  • Não conserta um número aleatório fraco. Se d veio de uma fonte previsível, a chave final também é previsível. O crypto.getRandomValues de qualquer navegador moderno serve; um número "aleatório" digitado à mão, não.
  • Não elimina o envenenamento de endereços. Um final marcante facilita que um golpista produza um parecido. Continue conferindo o endereço inteiro antes de cada transferência.
  • Não faz backup por você. Esse é o preço real, e é duro: o vendedor não pode restaurar a sua metade, porque nunca a teve. Perdeu, o endereço se foi para sempre.

Por que leva mais tempo do que comprar do estoque

Um endereço de prateleira foi gerado antes, por isso a entrega é imediata. Um endereço split-key não existe até alguém procurá-lo com a sua chave pública, e o pedido de outra pessoa não serve. Conte com o tempo de busca do comprimento escolhido, mais o tempo de colocar uma GPU no ar.

Para quatro ou cinco caracteres esta é a ferramenta errada: o seu próprio notebook acha esse endereço em segundos com o gerador gratuito no navegador, e aí não existe segunda parte nenhuma. A chave dividida se justifica a partir de uns sete caracteres, quando a busca exige um equipamento que você prefere alugar a comprar.

Como conferir que deu certo

Quando o deslocamento chega, seu navegador deve fazer duas coisas antes de mostrar qualquer coisa: derivar o endereço de d + s e compará-lo com o endereço prometido. Se diferirem, a chave está errada e nada deve aparecer.

Você pode repetir a verificação por conta própria. Importe a chave no TronLink e compare os 34 caracteres do endereço que ele mostrar. A carteira deriva o endereço da própria chave, então a coincidência prova que a chave é a certa — sem confiar em site algum.

Perguntas frequentes

O deslocamento é secreto?

Não, e não precisa ser. O deslocamento é só metade de uma soma, e a outra metade nunca saiu do seu navegador. Publicá-lo não diz a um atacante nada que ele já não pudesse calcular a partir do endereço.

O vendedor pode procurar uma chave que ele também consiga usar?

No seu pedido, não. A fazenda recebe P, e qualquer endereço alcançável a partir de P exige o seu d para gastar. Ele poderia, claro, gerar um endereço sem relação e oferecer esse — exatamente por isso seu navegador confere que a chave entregue deriva o endereço prometido.

E se eu perder a minha metade da chave?

O endereço se perde, sem caminho de recuperação. Não é política, é aritmética: o vendedor tem metade de uma soma e não consegue reconstruir a outra. Salve a sua metade no instante em que ela aparecer, fora do navegador que a criou.

É o mesmo que uma carteira multiassinatura?

Não. Multiassinatura significa que várias chaves podem autorizar transações de uma mesma conta. Chave dividida é um truque de construção único: dois números são somados uma vez e o que sai é uma chave privada comum, de uma conta TRON comum.

A HaoKey oferece isso?

Sim, em todas as máscaras do catálogo — a opção "sem confiança" ao lado do botão normal de compra. Nossa página de segurança a lista como a primeira de três formas de não nos confiar uma chave.

Máscaras popularesVer catálogo →
Mais guias