Cointimes

Privacidade é melhorada em versão 0.21 do Bitcoin Core, veja o que mudou

anonymous bitcoin

Foi anunciado nesta quinta-feira (14) o lançamento oficial do Bitcoin Core 0.21.0, a 21ª grande atualização do cliente de software original do Bitcoin lançado por Satoshi Nakamoto há cerca de 12 anos atrás.

Supervisionado pelo principal mantenedor do atual time do Core, Wladimir van der Laan, este último lançamento foi desenvolvido por mais de cem contribuidores em um período de cerca de seis meses.

Resultado de mais de 600 solicitações de mudanças combinadas, o Bitcoin Core 0.21.0 é um dos maiores lançamentos do Bitcoin Core nos últimos anos, introduzindo vários novos recursos, bem como melhorias de privacidade e desempenho, enquanto dá um grande passo em direção à atualização do protocolo Schnorr e Taproot.

Veja abaixo algumas das mudanças mais notáveis.

Carteiras mais organizadas

Quando as moedas são enviadas para um endereço de Bitcoin, o que realmente acontece nos bastidores é que elas são “bloqueadas” em uma saída de transação não gasta (UTXO), para apenas serem “desbloqueadas” (gastas) em uma transação posterior se as condições ocultas nos UTXO são atendidas.

Uma condição é a inclusão de uma assinatura válida correspondente a uma chave pública específica. Mas as condições podem, por exemplo, também consistir na inclusão de um código secreto, o lapso de um timelock ou uma combinação de assinaturas (multisig).

Até agora, o Bitcoin Core foi projetado para gerenciar os UTXOs em sua carteira em torno de suas chaves privadas correspondentes – embora as chaves privadas sejam apenas uma das várias condições potenciais para gastar moedas.

Em vez disso, o Bitcoin Core 0.21.0 apresenta “descriptor wallets”. Carteiras que permitem que os usuários categorizem seus UTXOs com base nos tipos de condições exigidas para gastá-los. (Por exemplo: uma carteira para UTXOs que requerem apenas uma assinatura válida e uma carteira para UTXOs multisig.)

As decriptor wallets são especialmente úteis para desenvolvedores de aplicativos que projetam software com base no Bitcoin Core. Um aplicativo específico agora pode ser facilmente projetado para utilizar apenas um tipo específico de UTXO, como UTXOs multisig, e ignorar quaisquer UTXOs não multisig.

Os usuários regulares também notarão uma diferença com essa implementação ao iniciar um novo nó Bitcoin Core. Nenhuma carteira padrão será criada ao iniciar o Bitcoin Core de primeira. Em vez disso, uma nova carteira só é criada quando um usuário escolhe especificamente fazê-lo, permitindo-lhe criar apenas o tipo de carteira especificamente desejado.

A atualização também suporta melhor as carteiras Watch Only: carteiras que observam e rastreiam certos bitcoins, mesmo que o nó não tenha as chaves privadas necessárias para gastá-los.

Os usuários do Bitcoin Core que atualizarem para o Bitcoin Core 0.21.0 ainda poderão usar sua carteira herdada por enquanto. Carteiras legadas acabarão sendo descontinuadas, o que significa que os usuários precisarão migrar sua carteira legada para uma descriptor wallet, mas isso não será estritamente necessário até um futuro lançamento do Bitcoin Core.

Carteiras leves terão melhor privacidade

“Clientes leves” (light clientes) são carteiras e aplicativos de Bitcoin que não baixam e validam todo o blockchain do Bitcoin, mas apenas baixam e validam partes de blocos e transações que dizem respeito especificamente a eles. Isso não otimiza a segurança, mas consome muito menos recursos.

Uma maneira popular de fazer isso é com Filtros Bloom. Resumindo, os Filtros Bloom são um truque criptográfico para solicitar dados relevantes de nós de pares mais ou menos aleatórios na rede. Infelizmente, no entanto, tornou-se claro ao longo dos anos que os Filtros Bloom são bastante hostis à privacidade: eles essencialmente revelam todos os endereços do usuário para o nó conectado (mais ou menos aleatório), que pode, é claro, ser operado por alguém que queira bisbilhotar seu saldo.

Uma alternativa mais recente e que preserva muito mais a privacidade da solução Bloom Filter é chamada de “filtragem compacta de bloco do lado do cliente” (BIP 157/158). A filtragem compacta de blocos do lado do cliente basicamente vira o truque do Filtro Bloom. Em vez de carteiras leves criando filtros para enviar para nós completos, nós completos criam filtros para cada bloco e os enviam para clientes leves mediante solicitação.

Os clientes leves então usam esses filtros para descobrir se transações relevantes para eles podem ter sido incluídas em um bloco. Nesse caso, a carteira leve buscará todo o bloco e selecionará todos os dados de transação relevantes. (Haverá alguns falsos positivos; blocos que não terão dados de transação relevantes neles, embora o filtro sugerisse que sim.)

As versões existentes do Bitcoin Core já podem criar os filtros localmente e disponibilizá-los por meio de uma chamada de procedimento remoto (RPC) para aplicativos executados por cima do nó (como carteiras). Bitcoin Core 0.21.0 agora também inclui a opção de disponibilizar esses filtros na rede ponto a ponto do Bitcoin mediante solicitação. Isso torna possível operar clientes leves autônomos que usam filtros Bloom.

Maior privacidade na hora de enviar transações

Além dos Filtros Bloom, os bisbilhoteiros também podem quebrar a privacidade dos usuários de Bitcoin por meio de análises de rede. Se eles puderem descobrir de qual nó uma determinada transação se originou, os endereços Bitcoin desse nó podem ser vinculados ao seu endereço IP, que por sua vez pode ser associado a uma identidade do mundo real.

Até agora, quando os nós do Bitcoin Core transmitiam uma transação para a rede Bitcoin, eles tentavam retransmitir a transação a cada quinze minutos, até que a transação fosse incluída em um bloco. Isso significava que, se esses nós estivessem conectados a um par “espião”, seria óbvio para o bisbilhoteiro que o nó Bitcoin Core tentando retransmitir uma determinada transação a cada 15 minutos também era o nó de onde a transação se originou.

O Bitcoin Core 0.21.0 diminui muito a frequência com que tenta retransmitir transações: apenas uma vez a cada 12 a 36 horas. Ter que retransmitir com menos frequência torna muito mais provável que a transação tenha sido confirmada desde a transmissão inicial, portanto, é menos provável que o nó precise retransmitir.

Em versões futuras do Bitcoin Core, esse vazamento de privacidade será totalmente corrigido. Um nó Bitcoin Core irá então retransmitir apenas transações que deveriam ter sido confirmadas com base em seus próprios mempool e cálculos de taxas. Além disso, ele retransmitirá outras transações também, não apenas as suas.

Suporte a versão 3 do Tor

Devido a uma atualização recente do protocolo Tor, navegador que preserva a privacidade, os novos endereços Tor V3 (versão 3) são mais longos do que os endereços V2 (versão 2) anteriores. Os endereços V2 ainda estão em uso, mas serão descontinuados em cerca de um ano a partir de agora.

A descontinuação dos endereços V2 teria representado um problema para os usuários do Bitcoin Core que desejam usar o Bitcoin na rede de privacidade. Os nós do Bitcoin Core encontram pares compartilhando entre si endereços do Tor de nós do Bitcoin que usam o Tor. Eles compartilharam isso por meio da mesma mensagem que usam para compartilhar os endereços IP regulares de outros nós.

Embora os endereços do Tor V2 possam estar “ocultos” no formato de endereço IP regular (IPV6), os endereços do Tor V3 são muito longos para isso; em outras palavras, as mensagens atuais são muito limitadas para serem compatíveis com a atualização do Tor.

O Bitcoin Core 0.21.0 apresenta, portanto, um novo formato para compartilhar endereços IP/Tor com pares. Essas mensagens podem ser grandes o suficiente para compartilhar os endereços do Tor V3.

Taproot e assinaturas Schnorr estão chegando

Schnorr/Taproot está prestes a ser a primeira grande atualização de protocolo do Bitcoin desde a Segregated Witness (SegWit) em agosto de 2017. Tendo estado em desenvolvimento por mais de dois anos, o algoritmo de assinatura Schnorr é considerado uma melhoria geral em relação ao algoritmo de assinatura ECDSA atual do Bitcoin.

Em combinação com Taproot – um truque inteligente para ocultar várias condições para gastar moedas – a atualização promete oferecer mais flexibilidade de contrato inteligente de uma maneira escalável e preservando a privacidade.

O código Schnorr/Taproot agora está incluído no Bitcoin Core 0.21.0. Isso significa que não estará sujeito a mais alterações, o que, por exemplo, significa que os desenvolvedores de aplicativos podem começar a projetar software em torno da atualização.

Além disso, as mudanças agora estão disponíveis no Signet (uma variante mais recente e confiável do testnet, usada por desenvolvedores para testar o novo software do Bitcoin) e potencialmente também em Regtests (variantes locais adicionais do testnet).

Schnorr/Taproot não estará, no entanto, disponível na mainnet do Bitcoin ainda. Para isso, a atualização primeiro precisa ser ativada, o que requer uma lógica de ativação que ainda não está incluída nesta versão do Bitcoin Core. Espera-se que a lógica de ativação seja incluída em uma versão menor do Bitcoin Core, possivelmente em algum momento nos próximos meses, com os mineradores já sinalizando apoio.

Outras melhorias e correções de bugs

Além das mudanças acima, o Bitcoin Core 0.21.0 inclui várias correções de bugs e melhorias de desempenho que não serão tão aparentes para usuários regulares. A carteira Bitcoin Core, por exemplo, mudará o Berkeley DB para o banco de dados SQLite, que é mais adequado como um arquivo de dados de aplicativo e oferece várias garantias em relação a compatibilidade, suporte e testes.

É interessante também que o Bitcoin Core 0.21.0 inclui uma revisão de solicitação de transação: o novo protocolo de mensagem que os nós de Bitcoin usam para aprender sobre novas transações é mais bem testado, melhor especificado e mais fácil de manter e revisar.

Para obter uma lista mais extensa de atualizações, consulte também as notas de lançamento do Bitcoin Core 0.21.0 ou veja esta postagem do blog do contribuidor do Bitcoin Core Andrew Chow para uma explicação mais extensa sobre carteiras descritor (bem como carteiras legadas) e SQLite (também como Berkeley DB).

Traduzido e adaptado com autorização de Aaron Van Wirdum, do Bitcoin Magazine, que desenvolveu o artigo com o auxílio do desenvolvedor do Bitcoin John Newbery.

Leia outros conteúdos...

© 2024 All Rights Reserved.

Descubra mais sobre Cointimes

Assine agora mesmo para continuar lendo e ter acesso ao arquivo completo.

Continue reading