Por trás da dinâmica cena do Bitcoin, existe uma peça fundamental de engenharia responsável por manter o ecossistema em movimento: o Bitcoin Core. Este programa de computador é a espinha dorsal que garante a segurança, funcionalidade e descentralização do sistema Bitcoin.
Neste artigo, desvendaremos o Bitcoin Core, explicando o que é, como funciona e por que é tão crucial para o Bitcoin.
Vamos lá?!
O que é Bitcoin Core?
O código do Bitcoin funciona por meio de uma rede descentralizada de nodes que se comunicam e verificam as transações. Além disso, o código é aberto, permitindo que qualquer pessoa verifique, copie e tente melhorá-lo.
Assim, o Bitcoin Core é um software de código aberto e gratuito desenvolvido para operar e manter a rede do Bitcoin.
Embora existam outros softwares disponíveis, o Bitcoin Core é o mais utilizado e é nele que a maioria dos desenvolvedores que trabalham com Bitcoin atuam.
Além disso, o Bitcoin Core é baseado no código de referência original criado pelo próprio Satoshi Nakamoto no final de 2008. Inicialmente, o software foi publicado sob o nome “Bitcoin” e depois renomeado para “Bitcoin Core” para distingui-lo da rede Bitcoin. Por essa razão, também é conhecido como Cliente Satoshi.
É importante destacar que qualquer pessoa pode participar das discussões e decisões sobre o código, que são resolvidas por consenso, não por votos. Ou seja, não é a maioria quem decide. Qualquer mudança significativa requer que praticamente toda a rede concorde com a alteração.
Essa abordagem garante que os desenvolvedores não tenham poder absoluto sobre a rede e não possam modificar as regras arbitrariamente em benefício próprio. A rede de nodes não aceitaria mudanças desconhecidas e abruptas.
Muitos shitcoiner tentam argumentar que o uso predominante do Bitcoin Core levaria a uma centralização do protocolo, mas isso não é verdade. O Bitcoin Core é uma solução escolhida naturalmente pelas pessoas devido à sua verificação, testes e segurança superiores em relação a outros softwares disponíveis.
Desenvolvimento e melhorias do Bitcoin Core
O Bitcoin Core teve sua jornada de desenvolvimento iniciada com a versão 0.1.0, sendo um marco como a primeira implementação do software Bitcoin concebida por Satoshi Nakamoto. Inicialmente, essa versão estava disponível apenas para usuários do Windows. Na versão 0.2.0, houve a introdução do suporte para sistemas Linux, seguido pelo suporte para MacOS.
Satoshi Nakamoto estava envolvido no desenvolvimento e aprimoramento do Bitcoin Core até a versão 0.3.19 em 2010, quando decidiu afastar-se do projeto, confiando-o nas mãos de Gavin Andresen. Posteriormente, em 2014, Gavin entregou a liderança do projeto a Wladimir J. van der Laan e outros desenvolvedores.
A partir da versão 0.5.0, lançada em 2011, o software passou a ser denominado Bitcoin QT, baseado na biblioteca de interface gráfica Qt4, licenciada pelo MIT. Este desenvolvimento trouxe uma interface amigável ao código Bitcoin, visando tornar sua utilização mais acessível e intuitiva para aqueles que não possuíam conhecimentos em programação.
Em versões subsequentes, como a 0.9.0, o software recuperou a denominação Bitcoin Core e implementou uma redução nas taxas de transação como uma medida para incentivar microtransações.
OpenSSL
Nos estágios iniciais, o Bitcoin Core dependia fortemente do OpenSSL para operações de criptografia.
No entanto, isso começou a mudar em 2015 devido à descoberta de vulnerabilidades no OpenSSL. Essas falhas de segurança incluíam a capacidade de um invasor ler a memória de um servidor e acessar chaves privadas.
Além disso, o OpenSSL utilizava uma fonte de números aleatórios considerada “fraca”. Diante desses problemas, os desenvolvedores do Bitcoin Core optaram por criar sua própria fonte de números aleatórios, resultando na remoção do OpenSSL do código-fonte.
Na versão 0.11.2, os desenvolvedores introduziram um recurso de estabelecimento de condições futuras na rede para evitar gastos indesejados de algumas transações. Posteriormente, com a versão 0.12.1, a funcionalidade de permitir múltiplos garfos macios simultâneos foi implementada.
Em 2016, o garfo macio CheckSequenceVerify foi ativado. No mesmo ano, o garfo macio SegWit foi introduzido como uma melhoria para a maleabilidade das transações e para otimizar o espaço dos blocos, sem alterar seu tamanho.
Finalmente, em 2018, a versão 0.16.0 foi lançada, trazendo a capacidade de usar um formato de endereço nativo para o SegWit, também conhecido como formato de endereço bech32.
Como funciona o Bitcoin Core?
O Bitcoin Core é um nó completo na rede do Bitcoin, o que significa que ele realiza o download, valida e transmite transações em toda a rede. Para realizar essas funções, o Bitcoin Core faz o download de toda a cadeia de blocos do Bitcoin, conhecida como blockchain, que é uma lista de todas as transações já realizadas na rede.
O Bitcoin Core desempenha um papel fundamental como o “coração” da rede. Ele mantém um registro de todas as transações feitas no Bitcoin desde o seu início, chamado, como já vimos anteriormente, de blockchain.
Você pode estar se perguntando: “Por que precisamos de um registro de todas as transações?“
A resposta é simples: isso é o que torna o Bitcoin um sistema seguro. Cada transação registrada no blockchain é verificada por uma rede de computadores em todo o mundo.
Esse processo de verificação garante que todas as transações sejam autênticas e que ninguém possa gastar o mesmo Bitcoin duas vezes. É aqui que o Bitcoin Core se destaca – ele permite que qualquer pessoa participe dessa rede de verificação, contribuindo para a segurança e transparência do sistema Bitcoin.
Quem cuida desse software?
Quem cuida do Bitcoin Core são desenvolvedores que dedicam parte do seu tempo para isso. Existem os mantenedores, que desempenham o papel de zeladores e guardiões das chaves que concedem acesso à modificação do código e tem também outros desenvolvedores que se concentram em examinar cada detalhe do código em busca de bugs e sugerem melhorias.
Essas propostas são discutidas extensivamente em plataformas abertas, como o GitHub, onde qualquer pessoa pode acompanhar e participar dessas discussões.
Quem são os mantenedores?
Os mantenedores do Bitcoin são desenvolvedores altamente qualificados que têm a responsabilidade de cuidar e manter o código-fonte do Bitcoin Core, que é a implementação de referência do protocolo do Bitcoin. Eles desempenham um papel crítico na evolução e segurança do software.
Atualmente, existem quatro mantenedores principais do Bitcoin Core, conhecidos como “mantenedores-chave” ou “key maintainers”. Esses mantenedores têm acesso às chaves que permitem fazer alterações no código-fonte do Bitcoin Core. Eles são responsáveis por revisar e aprovar as contribuições de outros desenvolvedores, além de coordenar e conduzir o processo de desenvolvimento.
Entretanto, é importante destacar que os mantenedores não têm poder absoluto sobre o Bitcoin. As mudanças no código do Bitcoin Core são decididas por consenso, com ampla participação da comunidade de desenvolvedores e usuários.
Michael Ford
Michael Ford, também conhecido como “fanquake”, é um dos mantenedores do Bitcoin Core. Ele é conhecido por sua experiência em gerenciamento de projetos de software de código aberto e tem desempenhado um papel ativo no desenvolvimento e coordenação do Bitcoin Core.
Michael é responsável por supervisionar o sistema de compilação, ajudar a garantir a qualidade do código, coordenar as contribuições dos desenvolvedores e promover a transparência e a colaboração dentro da comunidade do Bitcoin Core.
Hennadii Stepanov
Hennadii Stepanov é um mantenedor do Bitcoin Core que tem contribuído para o projeto há vários anos. Ele é especializado em protocolos de rede e tem desempenhado um papel fundamental no aprimoramento da conectividade e desempenho do software.
É ele que mantém a interface gráfica do usuário da rede.
Andrew Chow
Andrew Chow é outro mantenedor do Bitcoin Core e tem desempenhado um papel importante no desenvolvimento do software. Ele é conhecido por seu trabalho nas áreas de carteiras e chaves criptográficas, incluindo a implementação de melhorias de segurança. Andrew também é um contribuidor ativo na revisão de código e no suporte técnico da comunidade.
Gloria Zhao
Gloria Zhao é uma desenvolvedora de software e uma das mantenedoras do Bitcoin Core. Ela é conhecida por suas contribuições na área de segurança e privacidade. Gloria tem sido ativa no desenvolvimento do Bitcoin Core e na revisão de código, ajudando a garantir a estabilidade e a confiabilidade do software.
Como é feita a seleção de mantenedores?
A seleção de mantenedores do Bitcoin Core segue um processo transparente e baseado no mérito. Não há uma autoridade central responsável por nomear ou selecionar os mantenedores. Em vez disso, a comunidade de desenvolvedores do Bitcoin Core reconhece indivíduos altamente qualificados e dedicados que demonstraram um histórico consistente de contribuições valiosas para o projeto.
Geralmente, a seleção de um mantenedor é baseada no consenso da comunidade e em um reconhecimento geral de suas habilidades técnicas, comprometimento e confiabilidade.
Normalmente, os mantenedores emergem organicamente, à medida que ganham a confiança e o respeito da comunidade ao longo do tempo. Seus pares reconhecem seu conhecimento, habilidades de revisão de código, capacidade de coordenação e dedicação ao projeto. É uma posição de responsabilidade e confiança, uma vez que os mantenedores têm acesso às chaves de assinatura que permitem fazer alterações no código do Bitcoin Core.
Chave PGP
Os mantenedores possuem uma chave chamada PGP (Pretty Good Privacy, sigla em inglês), que permite assinar, criptografar e descriptografar informações. É importante ressaltar que qualquer pessoa pode ter uma chave PGP, não sendo algo exclusivo dos mantenedores do Bitcoin.
As chaves são armazenadas em um arquivo no repositório do Bitcoin Core no GitHub. Esse arquivo contém todas as chaves dos mantenedores ativos. Quando alguém se torna mantenedor, sua chave é adicionada ao repositório, e quando alguém deixa de ser mantenedor, sua chave é removida.
Entretanto, surge a questão: o que impede que pessoas mal-intencionadas insiram suas próprias chaves e comprometam o código?
Isso não ocorre porque, para inserir a chave de um mantenedor, assim como para fazer qualquer alteração na rede do Bitcoin, é necessário realizar um Pull Request (PR).
Os Pull Requests permitem que você informe a outras pessoas sobre as alterações que você enviou para um repositório no GitHub. Após abrir uma solicitação de pull, é possível discutir e revisar as possíveis alterações com os colaboradores, além de adicionar confirmações de acompanhamento, antes que as alterações sejam mescladas no ramo principal.
Esse mecanismo de Pull Requests é utilizado tanto para atualizações, correções de bugs quanto para adicionar mantenedores ao código. Dessa forma, garante-se um processo de revisão e colaboração transparente e seguro para a integridade do código do Bitcoin Core.
Há milhares de devs cuidando do Bitcoin Core
Embora existam apenas quatro desenvolvedores oficiais como mantenedores do Bitcoin, é importante destacar que há milhares de desenvolvedores em todo o mundo revisando o código do Bitcoin e se capacitando nesse processo.
No Brasil, por exemplo, há a Vinteum, uma organização sem fins lucrativos que trabalha para capacitar mais desenvolvedores a trabalharem com Bitcoin e a se concentrarem em projetos de open source.
Aumento de contribuições
Na plataforma GitHub, onde os desenvolvedores fazem propostas de atualizações e debatem abertamente diversos tópicos, um gráfico mostrando uma linha de crescimento verde demonstra o aumento contínuo das contribuições ao longo dos últimos 10 anos.
Esse gráfico evidencia o engajamento e o interesse de um número cada vez maior de desenvolvedores em colaborar com o desenvolvimento e aprimoramento do código do Bitcoin, tornando o ecossistema mais robusto e seguro.
O ápice ocorreu no final de 2020, durante o início da última alta expressiva do mercado. É interessante observar como o preço atrai novos desenvolvedores a contribuírem, resultando em um aumento no volume de contribuições no gráfico.
Por outro lado, durante períodos de baixa (bear market), ocorre o processo inverso. A volatilidade nos preços também influencia na empolgação dos novos desenvolvedores em contribuir para o Bitcoin.
Além disso, no GitHub você tem acesso ao volume de contribuições de cada desenvolvedor ao longo do tempo.
Pulse
Ao clicar em “Pulse“, você verá uma tela que exibe todas as últimas atualizações e ajustes que foram mesclados ao código do Bitcoin. Por exemplo, no mês de maio, foram feitos 77 ajustes no código e 41 estavam na fila para serem debatidos e mesclados.
Esses números demonstram que os desenvolvedores continuam trabalhando constantemente e não parece que essa atividade vai diminuir tão cedo. Desde que Satoshi Nakamoto lançou a versão original do Bitcoin, o número de desenvolvedores envolvidos cresceu significativamente, com milhares de pessoas contribuindo para o Bitcoin Core.
Não há líder, não há centralização
É importante destacar que os desenvolvedores principais não formam um grupo centralizado. Não há um líder, um CEO ou mesmo um desenvolvedor sênior que dite o que deve ser construído ou como. Muitos desenvolvedores são completamente anônimos, o que permite que as ideias sejam avaliadas com base na competência, em vez de reputação ou currículo.
Atualmente, o Bitcoin conta com cerca de 1.000 engenheiros de software contribuindo para o protocolo. Supondo que, em uma empresa, esses desenvolvedores receberiam uma remuneração anual de aproximadamente entre $150.000 e $200.000, isso totalizaria cerca de $200 milhões por ano para manter os desenvolvedores principais e revisar e ajustar o código do Bitcoin.
Muitos desenvolvedores não recebem essas quantias e dedicam seu tempo de forma voluntária, mas nem sempre isso é possível. Para auxiliar nesse aspecto, existem empresas como Spiral, Chaincode Labs e Brink, que ajudam a arrecadar fundos para que os desenvolvedores possam continuar seu trabalho.
Isso difere significativamente de outros protocolos que realizam ICOs, pré-vendas com cotas de tokens para investidores e arrecadam financiamento por meio de VC, oferecendo tokens para insiders antes de se tornarem públicos. Essa é a forma como empresas financiam seus desenvolvedores.
O Bitcoin não passou por esse tipo de processo, pois não é uma empresa. Não houve ICO, pré-mineração, investidores iniciais, pré-venda ou uma fundação arrecadando fundos e determinando as próximas atualizações por meio de um roteiro (roadmap).
O Bitcoin é o oposto disso tudo, pois é verdadeiramente descentralizado. É um protocolo, não uma empresa, e depende da contribuição de pessoas alinhadas com o propósito de descentralização.
Afinal, para que serve o Bitcoin Core?
Como vimos ao longo do artigo, o Bitcoin Core é um software de código aberto que desempenha um papel fundamental na rede do Bitcoin. Assim, ele tem várias funções e utilidades importantes:
Nó completo:
Como um nó completo, o Bitcoin Core contribui para a segurança e descentralização da rede do Bitcoin. Ele verifica todas as transações e blocos para garantir que estejam de acordo com as regras do Bitcoin. Qualquer pessoa pode executar um nó do Bitcoin a partir de seu computador doméstico, desde que cumpra alguns requisitos mínimos que serão apresentados um pouco mais abaixo.
Carteira:
O Bitcoin Core inclui uma carteira de Bitcoin que permite aos usuários armazenar, enviar e receber bitcoins.
A carteira é uma parte integrada do software, oferecendo uma interface para gerenciar as chaves privadas e as transações associadas aos bitcoins.
Com a carteira do Bitcoin Core, os usuários podem criar endereços de recebimento, realizar transações seguras e verificar o saldo de suas contas.
É importante ressaltar que a segurança da carteira depende da proteção adequada das chaves privadas, como a utilização de senhas fortes e o armazenamento em locais seguros.
Plataforma de desenvolvimento:
O Bitcoin Core também é utilizado como uma plataforma para o desenvolvimento de novos recursos e experimentos que podem, eventualmente, ser incorporados ao protocolo do Bitcoin.
Os desenvolvedores podem propor melhorias e atualizações para o Bitcoin Core, implementando novas funcionalidades ou ajustes no código-fonte.
Essas propostas passam por um processo de revisão e discussão pela comunidade de desenvolvedores antes de serem consideradas para serem integradas ao protocolo Bitcoin. Dessa forma, o Bitcoin Core desempenha um papel essencial na evolução e na melhoria contínua do Bitcoin, permitindo que novas ideias e recursos sejam testados e implementados de maneira segura e transparente.
Manutenção do blockchain:
O Bitcoin Core é responsável por manter uma cópia completa e atualizada do blockchain do Bitcoin. Ao manter uma cópia completa do blockchain, o Bitcoin Core permite que os usuários verifiquem a validade das transações e acompanhem o histórico completo do Bitcoin.
Verificação e validação de transações:
O Bitcoin Core valida as transações da rede, verificando se elas estão de acordo com as regras do protocolo do Bitcoin. Isso ajuda a garantir que apenas transações válidas sejam incluídas no blockchain e que não ocorram gastos duplos (gasto do mesmo Bitcoin mais de uma vez).
Como executar um nó com Bitcoin Core?
Executar um nó com o Bitcoin Core é uma forma de participar ativamente da rede do Bitcoin, contribuindo para a descentralização e segurança do sistema.
Ao executar um nó, você se torna parte da rede P2P do Bitcoin, verificando transações e ajudando a manter o consenso da rede.
Neste guia passo a passo, mostraremos como executar um nó com o Bitcoin Core em seu próprio computador.
Para baixar o Bitcoin Core, siga estas etapas:
- Baixe e instale o Bitcoin Core: Acesse o site oficial do Bitcoin Core e faça o download da versão apropriada para o seu sistema operacional. Siga as instruções de instalação para configurar o software em seu computador.
- Sincronize o blockchain: Após a instalação, inicie o Bitcoin Core. O programa começará a sincronizar o blockchain, o que pode levar algum tempo, dependendo da velocidade da sua conexão com a Internet. Durante esse processo, o Bitcoin Core fará o download de todas as transações já realizadas e verificará sua validade.
- Configure a conexão com a Internet: Certifique-se de ter uma conexão estável com a Internet para permitir que seu nó se conecte e interaja com outros nós na rede Bitcoin. Normalmente, o Bitcoin Core configura automaticamente a conexão de rede, mas você também pode ajustar as configurações manualmente se necessário.
- Mantenha seu nó atualizado: É importante manter seu nó do Bitcoin Core atualizado com as últimas versões de software e atualizações de segurança.
- Proteja suas chaves privadas: Ao executar um nó com o Bitcoin Core, você também terá uma carteira Bitcoin associada. Certifique-se de proteger suas chaves privadas, que são usadas para acessar e controlar seus bitcoins.
Atenção! Existem requisitos mínimos
Atenção! Antes de executar um nó com o Bitcoin Core, é importante verificar se o seu computador atende aos requisitos mínimos necessários para um desempenho adequado. Os requisitos mínimos podem variar com base no sistema operacional e na versão do software, mas aqui estão alguns aspectos importantes a considerar:
- Hardware de desktop ou laptop executando versões recentes do Windows, Mac OS X ou Linux;
- 7 gigabytes de espaço livre em disco, acessível a uma velocidade mínima de leitura / gravação de 100 MB/s;
- 2 gigabytes de memória (RAM);
- Uma conexão de internet de banda larga com velocidades de upload de pelo menos 400 kilobits (50 kilobytes) por segundo;
- 6 horas por dia em que seu nó completo pode ficar em execução. (Você pode fazer outras coisas com o computador enquanto executa um nó completo).
Conclusão
Bitcoin Core é uma peça fundamental do ecossistema Bitcoin, permitindo a descentralização e a segurança da rede. Seja você um usuário regular, um minerador ou um desenvolvedor, entender como o Bitcoin Core funciona pode ajudá-lo a entender melhor como o Bitcoin opera em um nível fundamental.
Compartilhe em suas redes sociais:
A maior escola de educação sobre Bitcoin do mundo, que tem como objetivo elevar o conhecimento da comunidade e dos bitcoiners de todo o mundo aos níveis mais altos de soberania financeira, intelectual e tecnológica.
Curtiu esse artigo? Considere nos pagar um cafezinho para continuarmos escrevendo novos conteúdos! ☕