Chaves

Como a posse dos bitcoins é controlada

As chaves são usadas para controlar a posse dos bitcoins.

Para "enviar" e "receber" bitcoins, tudo o que você precisa é gerar um par de chave privada e chave pública:

O par de chave privada e chave pública está matematicamente conectado, assim como as assinaturas. A assinatura permite fornecer uma prova de uso único de que você é o dono da chave privada da qual a chave pública foi criada — sem precisar revelar a chave privada.

Esse mecanismo é conhecido como criptografia de chave pública. Ele já existia antes do Bitcoin, e o Satoshi simplesmente o usou como forma de controlar a posse das moedas.

Por fim, no Bitcoin convertemos essas chaves públicas em endereços, que são apenas codificações amigáveis das chaves públicas. Então, quando você "envia" bitcoins para o endereço de alguém, na verdade está travando bitcoins à chave pública dela.

Chave Privada

Ícone Ferramenta

Chave Privada

Gere um número aleatório de 256 bits.

0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
0b
0 bits
0d
0x
0 bytes

Nunca use uma chave privada gerada por um site, nem insira sua chave privada em um site. Sites podem facilmente salvar a chave privada e usá-la para roubar seus bitcoins.

Uma chave privada é um número de 256 bits gerado aleatoriamente. O intervalo de chaves válidas vai de 0 até pouco menos do valor máximo de 256 bits (o limite exato é n−1, ligado à curva elíptica usada). Geralmente é exibida como uma string hexadecimal de 32 bytes.

Chave Pública

Ícone Ferramenta

Chave Pública

Calcule a chave pública a partir de uma chave privada.

0 bytes
Coordenadas
0d
0d

Uma chave pública é só um ponto numa curva elíptica. A chave pública final são essas coordenadas em hexadecimal.

Compressão

A curva é simétrica no eixo x, então a chave comprimida guarda só a coordenada x e se a y é par ou ímpar. A x-only é usada em saídas Taproot.

0 bytes

Nunca insira sua chave privada em um site, nem use uma chave privada gerada por um site. Sites podem facilmente salvar a chave privada e usá-la para roubar seus bitcoins.

A chave pública é calculada a partir da chave privada por meio de multiplicação de curva elíptica. É essencialmente um ponto (coordenadas x, y) na curva secp256k1.

Endereço

Uma endereço é uma codificação amigável de um script de travamento (geralmente baseado em uma chave pública).

Endereço Base58 (P2PKH)

O endereço legado é o HASH160 da chave pública, codificado em Base58Check com o prefixo 0x00 (começa com "1"):

Ícone Ferramenta HASH160
Ícone Ferramenta

HASH160

SHA-256 + RIPEMD-160. Usado para encurtar uma chave pública ou script antes de converter em um endereço.

Uma chave pública ou script, por exemplo

0 bytes
Ícone Função de Hash SHA-256
Ícone Função de Hash RIPEMD-160

RIPEMD-160(SHA-256(dados))

0 bytes
Ícone Ferramenta Endereço (Base58)
Ícone Ferramenta

Endereço (Base58)

Crie um endereço Base58Check (P2PKH ou P2SH) a partir de um hash de 20 bytes + um byte de versão.

Endereço Bech32 (P2WPKH)

O endereço segwit é o HASH160 da chave pública, codificado em Bech32 com a versão de testemunha 0 (começa com "bc1q"):

Ícone Ferramenta Endereço (Bech32)
Ícone Ferramenta

Endereço (Bech32)

Crie um endereço segwit (P2WPKH, P2WSH, P2TR) a partir de uma versão de testemunha e um programa de testemunha.

P2WPKH = 20 bytes (hash160) · P2WSH = 32 bytes (sha256) · P2TR = 32 bytes