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:
- A chave pública é colocada na trava de uma saída quando você quer "enviar" bitcoins a alguém em uma transação.
- A chave privada é usada para criar uma assinatura que destrava aquela saída quando você quer "gastá-la" como entrada em uma nova transação.
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
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
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"):
HASH160
Endereço (Base58)
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"):