
Anatomia de uma carteira de Bitcoin
O que é uma carteira de bitcoin?
Uma carteira de bitcoin pode ser conceptualizada como uma coleção de endereços controlada pelas mesmas chaves. A app que cada bitcoiner utiliza no dia-a-dia é apenas uma interface, ou um coordenador que ajuda a gerar endereços, consultar saldos e construir transações.
O ponto de partida: Entropia
De forma a criar chaves de forma segura, o ponto de partida é a entropia, que pode ser vista como aleatoriedade. Entropia de qualidade importa porque aleatoriedade fraca pode conduzir a chaves previsíveis e perda de fundos.
Entropia pode ser gerada utilizando software especializado ou um dispositivo offline, como por exemplo, uma hardware wallet, que ajuda a prevenir erros e reduzir exposição a ambientes conectados à Internet.
Da entropia à frase de recuperação
A entropia (um número aleatório grande) é informação crítica para guardar e proteger. Caso seja perdida e não houver uma cópia guardada noutro local, o acesso às bitcoins controladas por essas chaves podem ser perdidas para sempre.
Uma frase de recuperação de uma chave privada é um conjunto de palavras que representa a entropia. Frases de recuperação são criadas exprimindo a entropia em código binário (bits: 0s e 1s). Geralmente, uma frase de recuperação de uma chave de 128 bits produz 12 palavras e uma frase de recuperação de 256 bits produz 24 palavras.
Frase de recuperação e armazenamento
A frase de recuperação representa a entropia e deve ser mantida em segredo. Se alguém a obter pode derivar as chaves privadas que produz e obter a capacidade permanente de gastar bitcoin das carteiras protegidas por essa frase de recuperação.
As boas práticas dizem que a frase de recuperação deve ser sempre gerada e guardada offline, ou seja, escrita num papel ou gravada em metal. Para além disso, deve evitar-se guardá-la em formato digital, exceto num dispositivo feito especificamente para protegê-la de exposição à Internet, como é o caso das hardware wallets.
Chave Privada Mestre
Uma chave privada mestre (muitas vezes chamada apenas de chave privada) é uma cadeia de caracteres alfanuméricos usados para aplicar assinaturas criptográficas às transações que gastam bitcoin. A chave privada mestre é criada a partir da frase de recuperação através de uma série de operações criptográficas de hashing. A chave privada mestre é tão sensível como a chave de recuperação, logo partilhá-la com alguém dá à outra pessoa controlo total ou parcial sobre os fundos.
Chaves quentes vs chaves frias
Após uma carteira fria (hardware wallet) derivar a chave privada mestre a partir da frase de recuperação, essa chave permanece offline e guardada apenas neste dispositivo. Por outro lado, se uma chave privada é gerada ou guardada num dispositivo conectado à Internet, então é considerada uma chave quente (hot wallet), que é substancialmente menos segura.
Chave pública extendida (xpub) e construção da carteira
Com a chave privada mestre, o passo seguinte é gerar uma chave pública extendida. Esta chave é uma cadeia de caracteres alfanuméricos que serve como o principal ingrediente para construir a estrutura da carteira.
Deste modo, a chave privada mestre consegue criar várias xpubs diferentes, o que significa que pode estar associada a várias carteiras diferentes. Uma única xpub é suficiente para criar uma carteira de assinatura única (singlesig) onde apenas uma chave privada é necessária para autorizar gastar bitcoin. Por outro lado, combinar xpubs de diferentes chaves privadas mestre é como se cria uma carteira de múltiplas assinaturas (multisig).
Caminhos de derivação
Dado que uma chave privada mestre pode criar várias xpubs, a questão passa a ser qual é qual. Isso é determinado pelo caminho de derivação, que pode ser visto como o caminho com as instruções que conduzem a um conjunto de chaves em particular. Por vezes, o utilizador escolhe o caminho de derivação. Outras vezes, o software escolhe automaticamente.
O que as xpubs não conseguem fazer
Uma xpub não consegue aprovar gastar fundos da mesma forma que uma chave privada o consegue fazer. Ao invés disso, xpubs são usadas para gerar informação para receber bitcoins (endereços) e verificar o saldo da carteira.
Isto torna as xpubs menos sensíveis em termos de segurança, comparativamente às frases de recuperação e chaves privadas, mas ainda assim potencialmente sensíveis do ponto de vista de privacidade, dado revelam a estrutura e atividade da carteira.
Porque carteiras têm vários endereços?
Uma xpub pode criar milhões de chaves públicas. Enquanto que a xpub é responsável por criar a carteira, uma chave pública simples é o ingrediente principal para criar um endereço. É por isso que uma carteira é constituída por vários endereços.
Assim, uma chave pública é tão sensível quanto um endereço, o que significa que é partilhada para receber Bitcoin.
Tipos de endereços
Um endereço é uma cadeia de caracteres alfanuméricos usados para receber Bitcoin. Quem recebe fornece o endereço a quem envia de forma a especificar o destino do pagamento.
Existem vários tipos de endereços (P2PKH, P2WpKH, etc). Para carteiras singlesig um endereço é criado a partir de uma chave pública ao qual se aplicam SHA-256, RIPEMD-160, mais um prefixo e uma soma de verificação (checksum) no final.
Privacidade: Porque não reutilizar endereços
Partilhar endereços é um requisito para receber Bitcoin, mas uma vez que o endereço é partilhado qualquer pessoa pode monitorizar depósitos ou pagamento para aquele endereço e verificar o saldo atual. Para melhor privacidade é boa prática usar um novo endereço para cada depósito para uma carteira. Além do impacto na privacidade, a reutilização de endereços aumenta a exposição criptográfica da chave pública correspondente. Embora os algoritmos atualmente utilizados pelo Bitcoin sejam considerados seguros, a exposição repetida da mesma chave amplia a superfície de análise disponível para potenciais ataques criptográficos.
Por esse motivo, a geração de um novo endereço para cada recebimento é uma prática fundamental de segurança operacional. Essa abordagem reduz a capacidade de correlação entre transações, preserva a privacidade do utilizador e mantém uma margem de segurança criptográfica mais robusta ao longo do tempo.