Chave Pública
A parte pública de um par de chaves
Uma chave pública é a parte "pública" de um par de chave privada e chave pública. Ela é calculada a partir da chave privada, o que significa que há uma conexão matemática entre as duas.
A chave pública é usada para você "receber" bitcoins. Ao fazer uma transação, uma saída pode ser travada a uma chave pública, de modo que só o dono da chave privada consiga destravá-la depois.
Criando
Como você cria uma chave pública?
Uma chave pública é criada por meio de multiplicação de curva elíptica. Você multiplica um ponto inicial (o ponto gerador) na curva secp256k1 pela chave privada (um número aleatório), e isso resulta em um novo conjunto de coordenadas x e y, que é a chave pública. Então uma chave pública é apenas um ponto na curva elíptica.
Multiplicação na Curva Elíptica
Conceitos básicos da curva elíptica
O uso da multiplicação de curva elíptica dá uma conexão matemática da chave privada para a chave pública, com duas propriedades importantes:
- Não se sabe como trabalhar "de trás para frente" para obter a chave privada. Você pode ir para frente com a multiplicação, mas não há como reverter matematicamente. Por isso você pode divulgar sua chave pública e manter sua chave privada em segredo.
- Você pode provar que tem a chave privada sem revelá-la, por meio de uma assinatura digital.
Formatos
Como é uma chave pública?
Não comprimida (65 bytes)
A chave pública não comprimida contém as duas coordenadas completas, com o prefixo 0x04:
04 <x (32 bytes)> <y (32 bytes)> Comprimida (33 bytes)
Como a coordenada y pode ser derivada da x (a partir da equação da curva), a chave pública comprimida armazena só a coordenada x, com um prefixo que indica se y é par (0x02) ou ímpar (0x03):
02/03 <x (32 bytes)> As chaves públicas comprimidas se tornaram o padrão, pois ocupam menos espaço (33 bytes em vez de 65) e, portanto, resultam em transações mais baratas.
Gerar a partir de uma chave privada
Comece com uma chave privada e calcule a chave pública correspondente: