Agora você pode negociar XRP na MODIAX Saiba mais arrow_forward
Bitcoin

Bitcoin Core: o que é?

outubro 29, 2018

Bitcoin Core: o que é?

Desde a sua implementação, em janeiro de 2009, o Bitcoin sofreu pequenas alterações no código para que suas funcionalidades fossem melhoradas ou para que alguma falha de segurança fosse consertada. Ele recebeu, então, diferentes nomes que especificavam uma determinada etapa de mudanças: primeiro passou de Bitcoin para Bitcoin QT e depois Bitcoin Core.

O Bitcoin Core e os hard forks

O nome Bitcoin Core também serve para indicar que esse é o software diretamente descendente do Bitcoin original e diferenciá-lo dos chamados hard forks da rede: Bitcoin Cash, Bitcoin Gold, Bitcoin Diamond.

Esses hard forks introduziram alterações radicais no protocolo, como a alteração do tamanho do bloco, o que provocou divergências entre os participantes do Bitcoin Core. Como o sistema só funciona com o consenso de todos e não é possível obrigar ninguém a seguir um caminho específico, parte dos usuários optou por seguir as mudanças, enquanto outra parte optou por seguir o caminho original e o blockchain sofreu separações que criaram moedas semelhantes ao Bitcoin, mas com propostas de valor diferentes, atraindo, assim, mais investidores para a comunidade cripto.

Desenvolvimento do Bitcoin Core

Como não existe uma estrutura formal e hierárquica na comunidade, quando alguém deseja propor uma alteração no código, precisa formular e apresentar a ideia com as especificações técnicas de forma que todos os participantes da rede possam compreender a proposta.

Essas propostas de desenvolvimento do código do Bitcoin Core são feitas através de documentos chamados Bitcoin Improvement Proposals (BIP). As possíveis alterações são discutidas em determinados fóruns de discussão públicos. Quando a comunidade aceita a proposta, as alterações são implementadas. A primeira BIP, BIP 0001, foi submetida por Amir Taaki em 19 de agosto de 2011 e descrevia o próprio funcionamento das BIPs.

Diagrama que explica como funcionam as BIPs
Workflow de uma BIP

O autor da proposta de alteração faz um rascunho (“draft”) que é, então, discutido e pode ser aprovado (“accepted”) ou rejeitado (“rejected”) pela comunidade. Quando não há nenhum progresso sendo feito na discussão, a BIP pode se tornar diferida (“deferred”) e sua discussão ser, portanto, postergada.

Atualização Segregated Witness (SegWit)

Uma das atualizações do protocolo do Bitcoin Core, implementada em 24 de agosto de 2017, ficou conhecida como SegWit (BIPs 141,143,144). Essa atualização foi um soft fork proposto para solucionar problemas relacionados à maleabilidade das transações e à escalabilidade da rede.

Todas as transações na rede Bitcoin são identificadas por um número hexadecimal de 64 dígitos, chamado txid (Transaction ID), que pode ser utilizado para rastrear informações sobre as transações. Antes do sof fork, era possível fazer alterações no txid de uma transação, o que não mudava a quantidade de bitcoins transacionada, nem os endereços de envio e recebimento, mas poderia invalidar transações relacionadas.

Alice, por exemplo, envia 2 bitcoins para Bob e ele utiliza a txid dessa transação para enviar 2 bitcoins a Charlie. Se a transação entre Alice e Bob for incluída no blockchain utilizando um txid diferente do informado por Bob a Charlie, esta última transação pode se tornar inválida. Esse problema poderia ser evitado caso Bob esperasse por algumas confirmações no blockchain antes de realizar a transação para Charlie, mas, de qualquer forma, era preciso resolver essa questão da maleabilidade.

No registro de cada transação existem basicamente três elementos: o endereço público de envio, o endereço público de recebimento e a assinatura. Esta última era ligada ao endereço público de envio. A SegWit alterou essa estrutura, separando a assinatura do endereço público de envio, o que garante que o txid não mude e resolve o problema da maleabilidade das transações.

Essa mudança também alterou a forma como o tamanho dos blocos é contabilizado. Cada byte da assinatura passou a contar apenas como 1 unidade, enquanto os bytes dos endereços continuaram a contar como 4 unidades. O limite estabelecido é de 4 milhões de unidade. Os blocos, assim, passaram a ter uma capacidade maior (cerca de 2 MB), mas o tamanho manteve-se o mesmo.