Lançamento do Bitcoin Core 0.19.0; Confira o que há de novo

No dia 24 de novembro deste ano, o Bitcoin Core, grupo responsável pelo desenvolvimento do Bitcoin, lançou a versão 0.19.0 do software de cliente original do Bitcoin lançado por Satoshi Nakamoto há quase 11 anos e ainda hoje a principal implementação do Bitcoin na rede (embora devido a um problema que veio à tona no estágio final do processo de liberação do Bitcoin Core 0.19.0, a versão realmente lançada para download é 0.19.0.1.). Supervisionada pelo mantenedor do Bitcoin Core Wladimir van der Laan, a atualização foi desenvolvida por mais de 100 colaboradores em um período de cerca de seis meses.

O resultado de 550 solicitações mescladas, o Bitcoin Core 0.19.0 inclui uma série de melhorias de desempenho, modernizações e correções de bugs, além de outras alterações.

Transações mais baratas – Endereços Bech32 por padrão na GUI

O formato de endereço “bech32” (BIP 173) já havia sido introduzido no Bitcoin Core 0.16.0, lançado no início de 2018, mas agora é definido pela primeira vez como a opção padrão na Interface Gráfica do Usuário (GUI) da carteira do Bitcoin Core.

Os endereços Bech32 são aqueles que começam com “bc1” (em oposição aos endereços que começam com 1 ou 3). Esses endereços também são um pouco mais longos, mas usam menos caracteres diferentes do que o formato de endereço atual, pois não há mais distinção. entre letras minúsculas e maiúsculas. (Isso reduz o potencial de erros humanos, por exemplo, quando um endereço é lido em voz alta.) Os endereços Bech32 também são projetados para limitar erros causados ​​por erros de digitação.

Além disso, o bech32 oferece benefícios no contexto do SegWit. Algumas carteiras que oferecem o SegWit – incluindo a carteira Bitcoin Core por padrão até agora – o fazem “envolvendo” as saídas P2SH (com endereços começando com um “3”). Para gastar bitcoin nesse endereço, os usuários devem revelar um trecho de código – o “script de resgate” – para mostrar que o bitcoin estava realmente bloqueado em uma saída do SegWit. Com os novos endereços bech32, essa etapa pode ser ignorada, o que significa que os gastos com uma saída do SegWit exigirão um pouco menos de dados a serem transmitidos pela rede Bitcoin e incluídos na blockchain. Isso torna as transações de uma saída bech32 ainda mais baratas que as transações SegWit de uma saída P2SH.

Mais proteção contra ataques de gasto duplo

Os nós do Bitcoin se conectam a vários outros nós do Bitcoin, formando juntos a rede ponto a ponto. Nessa rede, os nós compartilham blocos, transações e alguns dados de transação adicionais.

Mas a rede ponto a ponto pode estar sujeita a ataques, como “ataques de particionamento”. Se um invasor controlar um número grande de nós de Bitcoin, pode potencialmente “cortar” certas partes da rede Bitcoin (ou mesmo específicas interceptando todo o tráfego para ele. A parte particionada da rede poderia, por exemplo, ser enganada ao aceitar uma cadeia minoritária – e não a cadeia mais longa – como válida, o que poderia, por sua vez, abrir a porta para ataques de gasto duplo.

Para evitar isso o  Bitcoin Core 0.19.0 aumenta o padrão para conexões de saída em dois, mas – inteligentemente – essas duas conexões extras são  usadas apenas  para retransmitir blocos – eles não retransmitem transações ou dados adicionais. Isso aumenta os requisitos adicionais de largura de banda minimamente, enquanto ainda dificulta os ataques de particionamento com êxito.

Filtros Bloom descontinuados

O Bitcoin Core é uma implementação de nó completo, o que significa que ele baixa e verifica todos os blocos de Bitcoin. Embora isso seja idealmente seguro, não o torna muito adequado para dispositivos de computação com poucos recursos, como telefones celulares. As carteiras móveis são, portanto, geralmente “clientes leves”: elas apenas fazem o download de transações e (partes de) blocos que lhes dizem respeito especificamente.

Uma maneira de fazer isso é com os Filtros Bloom, usados ​​hoje por algumas carteiras. Em resumo, os Filtros Bloom são um truque criptográfico usado por clientes light para solicitar dados relevantes de nós completos 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 seus endereços para o nó completo. Além disso, o suporte às solicitações do Bloom Filter tem um custo em CPU e espaço em disco para nós completos – sem nenhum benefício direto para o próprio nó completo.

Por esse último motivo em particular, o Bitcoin Core 0.19.0 não oferece mais suporte às solicitações do Bloom Filter por padrão. Os usuários ainda podem mudar o padrão para oferecer suporte aos Filtros Bloom, se assim o desejarem. Também é importante notar que a rede Bitcoin como um todo quase certamente continuará a oferecer suporte aos Filtros da Bloom nos próximos anos, mesmo que ninguém mude seus padrões, simplesmente porque os nós antigos do Bitcoin Core normalmente continuam em uso por anos após o lançamento de novas versões foi lançado.

Mais suporte para filtragem de bloco compacta no lado do cliente

Uma alternativa ao Bloom Filters é uma solução mais nova chamada “filtragem de bloco compacta no lado do cliente” (BIP 158). Em vez de carteiras leves criarem filtros para enviar para nós completos, os nós completos criam filtros para cada bloco. Os clientes Light podem então usar esses filtros para descobrir se as transações relevantes a eles podem ter acontecido em um bloco. Nesse caso, a carteira leve buscará todo o bloco e selecionará quaisquer dados de transação relevantes.

O Bitcoin Core 0.19.0 continua avançando em direção ao suporte à filtragem de blocos compacta do lado do cliente. Os nós do Bitcoin Core já podem criar os filtros localmente, mas os usuários do Bitcoin Core 0.19.0 agora também podem disponibilizá-los por meio de uma RPC (chamada de procedimento remoto), para aplicativos em execução no topo do nó (como uma carteira).

Os filtros ainda não estão disponíveis na rede ponto a ponto. Isso significa que um nó Bitcoin Core 0.19.0 não envia automaticamente filtros para as carteiras de outros usuários de Bitcoin. Esse recurso pode ser adicionado a uma versão futura do Bitcoin Core – ou os usuários do Bitcoin Core 0.19.0 podem optar por oferecer o recurso por meio de um aplicativo personalizado em execução no topo do nó Bitcoin Core.

Suporte ao protocolo de pagamento desativado na GUI

O Protocolo de Pagamento (BIP 70) foi projetado há vários anos para melhorar a experiência de pagamento do Bitcoin. Além do pagamento regular transmitido para a rede Bitcoin, um usuário e um comerciante comunicariam detalhes adicionais sobre um pagamento, como um endereço de destino legível por humanos (o nome do comerciante) e um endereço de reembolso caso algo desse errado. com a compra.

Enquanto o Bitcoin Core integrou o Protocolo de Pagamento em sua GUI, o padrão nunca foi amplamente adotado. Em vez disso, a maioria das carteiras ainda usa o esquema URI mais básico (BIP 21) para receber pagamentos: o link clicável ou o formato de QR code digitalizável que, por exemplo, comunica o endereço e o valor do pagamento. (A única exceção notável atualmente é o processador de pagamento BitPay, que não suporta o esquema URI, mas usa uma versão modificada do BIP 70.)

Talvez mais importante do que a falta de adoção, o protocolo de pagamentos BIP 70 vem sofrendo várias vulnerabilidades de segurança e privacidade ao longo dos anos. Algumas carteiras, portanto, rejeitaram ativamente a implementação do protocolo. O Bitcoin Core também planejava depreciar o BIP 70 por algum tempo, já que a manutenção não foi considerada valiosa, mas a adoção do BitPay interrompeu esse processo.

De outros…

Além das alterações mencionadas acima, o Bitcoin Core 0.19.0 vem com uma longa lista de pequenas melhorias e modernizações.

Agora é possível iniciar um nó removido imediatamente da configuração, por exemplo, o que permite aos usuários com pouco espaço em disco iniciar facilmente um novo nó Bitcoin. O Bitcoin Core 0.19.0 também inclui novos recursos para o protocolo PSBT (Parcialmente assinado Bitcoin Transactions), que é útil para transações com várias assinaturas e CoinJoin. Da mesma forma, existem várias melhorias no domínio dos descritores de carteira, o que é particularmente útil para programadores que trabalham em aplicativos Bitcoin. Os nós do Bitcoin Core 0.19.0 também aceitarão e retransmitirão transações que usam uma versão futura do SegWit para garantir que as próximas atualizações ocorram sem problemas.

Para uma lista mais extensa de atualizações, consulte também as notas de versão do Bitcoin Core 0.19.0.1.

Leia também: Próxima atualização do Bitcoin Core apresentará novas linguagens para chaves de criptografia

Forex Crypto News: Cripto Facil