Visão geral
Uma chave pública no Bitcoin é um ponto na curva elíptica secp256k1, derivado de uma chave privada por meio de multiplicação de ponto de curva elíptica. Essa operação matemática é uma função unidirecional: dada uma chave privada, qualquer um pode calcular a chave pública correspondente, mas derivar a chave privada de uma chave pública é computacionalmente inviável. As chaves públicas servem como base para os endereços Bitcoin e as assinaturas digitais.
Como as chaves públicas são derivadas
Derivação de chave:
Chave Privada (número de 256 bits)
│
▼
Multiplicação de Curva Elíptica
(multiplicação de ponto em secp256k1)
│
▼
Chave Pública (ponto na curva)
│
├──> Comprimida: 33 bytes (prefixo 02 ou 03 + coordenada x)
│ Exemplo: 02b4632d08485ff1...
│
└──> Não comprimida: 65 bytes (prefixo 04 + coord. x e y)
Exemplo: 04b4632d08485ff1...
│
▼
Hash (HASH160 = RIPEMD160(SHA256(chavepub)))
│
▼
Endereço Bitcoin
Comprimida vs. não comprimida
O software Bitcoin moderno usa exclusivamente chaves públicas comprimidas (33 bytes) em vez de chaves não comprimidas (65 bytes). Como a coordenada y de um ponto na curva elíptica pode ser calculada a partir da coordenada x (com um bit de paridade), o formato comprimido armazena apenas a coordenada x com um byte de prefixo indicando se y é par (02) ou ímpar (03). Isso economiza espaço nas transações e reduz as taxas.
Papel na verificação de transações
Quando alguém gasta bitcoin, fornece uma assinatura e sua chave pública. Cada nó na rede usa a chave pública para verificar se a assinatura é válida e se a chave pública faz hash para o endereço ao qual os fundos foram bloqueados. Esse processo de verificação garante que apenas o titular da chave privada correspondente poderia ter autorizado o gasto.
Exposição da chave pública
Em transações P2PKH e P2WPKH, a chave pública é hasheada para criar o endereço. A chave pública real só é revelada quando a saída é gasta. Isso fornece uma camada teórica de resistência quântica para saídas não gastas, já que um invasor com um computador quântico precisaria derivar a chave privada da chave pública, que só é exposta no momento do gasto.
Conceito errôneo comum
Uma chave pública não é a mesma coisa que um endereço Bitcoin. O endereço é derivado da chave pública por meio de um ou mais passos de hashing. Embora uma chave pública possa ser compartilhada com segurança, a melhor prática do Bitcoin é compartilhar endereços, pois os endereços são mais curtos, incluem checksums de detecção de erros e mantêm a chave pública oculta até o momento do gasto.