Hoje foi o lançamento oficial do Bitcoin Core 0.15.0, a 15a geração do cliente de software original do Bitcoin lançado por Satoshi Nakamoto há quase nove anos. Orientado pelo líder do Bitcoin Core, Wladimir van der Laan, este último lançamento foi desenvolvido por quase 100 colaboradores ao longo de um período de seis meses, com importantes contribuições através do Chaincode Labs, Blockstream e Iniciativa de moeda digital do MIT.
O Bitcoin Core 0.15.0 oferece desempenho significativo e melhorias de usabilidade em relação às versões anteriores da implementação do software. Ele também apresenta vários recursos novos para melhor lidar com o status atual da rede.
Estas são algumas das mudanças mais notáveis.
Reestruturação da base de dados do Chainstate
Uma das maiores mudanças em relação às versões anteriores do software envolve em como a blockchain do Bitcoin é armazenada. Este “chainstate” ou “UTXO-set” é salvo em um banco de dados dedicado, enquanto anteriormente ele era categorizado por transação. Se uma transação enviasse bitcoins para várias endereços, essas saídas diferentes seriam armazenadas como uma única entrada no banco de dados, referindo-se a essa transação.
Com o Bitcoin Core 0.15.0, essas saídas são armazenadas cada uma em uma entrada única. Se uma única transação envia bitcoins para diferentes saídas, cada saída é armazenada separadamente. Embora este método reivindique mais espaço no disco, ele requer menos recursos computacionais se uma dessas saídas for gasta mais tarde.
O benefício mais concreto desta nova estrutura de dados é que o tempo de sincronização inicial para novos nodes é diminuído em cerca de 40%. Ele também introduz um código mais simples, reduz o uso de memória e muito mais. Além disso, ele corrige um bug que, teoricamente, pode bloquear os nodes do Bitcoin Core, revelado controversamente na conferência Breaking Bitcoin do fim de semana passado em Paris.
Estimativa melhorada das taxas
Como os blocos do Bitcoin estão se enchendo nos últimos anos, nem todas as transações se encaixam no primeiro bloco que é extraído. Em vez disso, os mineradores geralmente priorizam as transações que incluem a maioria das tarifas. Se um usuário quiser que sua transação seja confirmada rapidamente, ele deve incluir uma taxa alta o suficiente. Se ele não estiver apressado, uma taxa menor deve ser suficiente.
No entanto, a rede Bitcoin lida com a imprevisibilidade inerente em termos da velocidade em que os blocos são encontrados ou o número de transações que estão sendo transmitidas a qualquer momento. Isso dificulta a inclusão da taxa de transação correta.
O Bitcoin Core 0.15.0 reduz esta incerteza da taxa: a versão mais recente do software inclui algoritmos de estimativa de taxas significativamente melhores. Isso ocorre principalmente porque o software leva em conta mais dados ao fazer as estimativas, como as taxas incluídas em transações confirmadas mais antigas, bem como taxas em transações não confirmadas – as taxas que se revelaram insuficientes.
Além disso, os usuários podem desfrutar de mais flexibilidade. Por um lado, o Bitcoin Core 0.15.0 pela primeira vez permite que os usuários incluam taxas que possam levar suas transações até uma semana para confirmar. E, também recentemente introduzidos, os usuários podem optar por aceitar mais ou menos riscos de que sua transação possa ser adiada devido a um influxo súbito de transações.
Replace-by-fee na interface do usuário
Mesmo com uma estimativa de taxa melhorada, é possível que os usuários ainda precisem esperar mais do que desejam para que suas transações confirmem, talvez porque haja uma onda brusca de transações na rede, ou talvez porque um usuário tenha mudado de ideia e prefira ter uma transação confirmada mais rapidamente do que originalmente paga, ou por outros motivos.
Para esses casos, algumas carteiras permitem que os usuários adicionem uma tag “Replace-by-fee” às suas transações. Com essa etiqueta, nodes e mineradores na rede sabem que o remetente pode querer substituir essa transação por uma transação mais recente que inclui uma taxa maior. Isso efetivamente permite que os usuários busquem a transação na fila para que ela seja confirmada mais rapidamente.
Os nodes do Bitcoin Core já suportavam a Replace-by-fee há mais de um ano: eles já substituem as transações marcadas com “Replace-by-fee” se a nova transação incluir mais taxas. Mas nunca foi fácil como é agora para os usuários da wallet do bitcoin core utilizarem.
A carteira Bitcoin Core 0.15.0 introduz uma alternância de Replace-by-fee na sua interface de usuário. Isso permite que os usuários incluam a etiqueta apropriada, permitindo que eles aumentem facilmente as taxas em suas transações mais tarde.
Suporte multi-carteira (Somente Cliente e RPC)
O Bitcoin Core 0.15.0 permite aos usuários criar várias carteiras pela primeira vez. Essas carteiras têm todos seus próprios endereços de Bitcoin separados, chaves privadas e, portanto, fundos. Os usuários podem utilizar as diferentes carteiras para diferentes fins; por exemplo, uma carteira pode ser usada para compras pessoais do dia-a-dia, outra para transações relacionadas a negócios e uma terceira apenas para negociação.
O uso de várias carteiras pode oferecer uma série de benefícios. Por exemplo, torna a contabilidade mais fácil e mais conveniente. Além disso, os usuários podem se beneficiar mais facilmente do aumento da privacidade, uma vez que as diferentes carteiras não podem ser vinculadas entre si por meio de análise de cadastro. Também é possível usar diferentes carteiras para aplicações específicas e muito mais.
Por enquanto, o suporte multi-carteira ainda não está disponível para usuários de carteiras regulares; apenas os usuários avançados que operam a partir da linha de comando ou através de aplicativos conectados que podem utilizar o recurso.
Outras melhorias
Além das mudanças notáveis acima mencionadas, o Bitcoin Core 0.15.0 inclui uma série de melhorias de desempenho adicionais, como a maioria dos novos lançamentos do Bitcoin Core principais. Concretamente, essas mudanças aceleram a rapidez com que os blocos são baixados da rede; eles permitem que os nodes comecem mais rápido e os nodes atualizados poderão validar novos blocos mais rapidamente, beneficiando o tempo de propagação da rede.
Finalmente, vale a pena mencionar que o Bitcoin Core 0.15.0 se desconectará dos pares BTC1 na rede. Isso significa que a rede Bitcoin sofrerá menos interrupção se o hard fork SegWit2x dividir a rede.
Para quem quiser ler o released notes.
Vídeo do Greg Maxwell explicando mais sobre o Bitcoin Core 0.15.
*Texto escrito por @AaronvanW.