O que é o Bitcoin Core e que papel desempenha na rede Bitcoin?

O que é o Bitcoin Core e que papel desempenha na rede Bitcoin?

O que é o Bitcoin Core?

Bitcoin Core é software de código aberto com o qual se liga por si próprio à rede Bitcoin e controla blocos e transacções de forma completa. Se executar o Bitcoin Core no seu computador, este funciona como um full node que verifica de forma autónoma se as transacções e os blocos cumprem as regras da rede Bitcoin.

Em termos simples, o Bitcoin Core é um bloco de construção importante para quem quer verificar o Bitcoin por si próprio. O software recebe transacções e blocos de outros nodes, verifica-os e pode voltar a encaminhar informação válida. Assim, muitos nodes separados ajudam em conjunto a distribuir dados do Bitcoin de forma descentralizada.

O Bitcoin Core é o cliente original do Bitcoin, ou seja, software com o qual se liga à rede Bitcoin e se podem processar e controlar transacções e blocos. O código-fonte está disponível livremente ao abrigo da licença MIT, o que permite aos programadores consultar, utilizar e contribuir para o software.

O software é, de forma geral, composto por duas partes que podem ser vistas separadamente:

  • O node: descarrega e valida dados na blockchain do Bitcoin.
  • A carteira de criptomoedas integrada: com esta pode gerir endereços e enviar bitcoin.

Pode utilizar o Bitcoin Core como programa com uma janela gráfica, bitcoin-qt, ou sem janela, como processo em segundo plano, bitcoind. Esta segunda opção é especialmente útil para quem quer gerir o seu node através da linha de comandos ou de outro software.

Importa saber: o Bitcoin Core não é o próprio Bitcoin e também não é uma organização central que controla o Bitcoin. É uma implementação do protocolo Bitcoin. Os nodes chegam a acordo porque aplicam de forma independente as mesmas regras de consenso, ou seja, as regras fixas com que determinam quais os blocos válidos.


Pontos principais

  • Bitcoin Core é software de código aberto para a rede Bitcoin.
  • Uma instalação do Bitcoin Core em execução é normalmente um full node.
  • Um full node verifica por si próprio blocos e transacções.
  • O Bitcoin Core pode receber dados válidos e encaminhá-los para outros nodes.
  • O software inclui, opcionalmente, uma interface gráfica e uma carteira de criptomoedas integrada.

Como funciona o Bitcoin Core?

O Bitcoin Core funciona ao ligar-se a outros nodes Bitcoin e ao trocar transacções e blocos com estes. Antes de o software poder avaliar dados recentes, tem primeiro de descarregar e validar todo o histórico desde o bloco génese, o primeiro bloco de Bitcoin de todos, o primeiro bloco de Bitcoin.

Esse primeiro grande esforço de recuperação chama-se initial block download. Nessa fase, o Bitcoin Core constrói passo a passo a sua própria visão da cadeia Bitcoin válida, até ao bloco mais recente que o node aceita como válido.

Depois disso, o node continua a escutar novas transacções e novos blocos. Quando algo chega, o Bitcoin Core verifica-o primeiro. Só quando os dados cumprem as regras é que o node os pode, normalmente, encaminhar para outros peers. Peers são, de forma simples, outros computadores aos quais o seu node está ligado.

O Bitcoin Core só aceita blocos como válidos quando estes passam nas suas próprias verificações. O node determina depois, de acordo com as regras de consenso, qual a cadeia válida que segue. Se muitos nodes seguirem os mesmos blocos válidos segundo as mesmas regras, ficam alinhados entre si. Assim, surge consenso sem uma entidade central que determine o que é verdadeiro.

Existe, contudo, uma diferença entre validade e política local. Um node pode, por exemplo, não querer encaminhar uma transacção porque esta não se enquadra na sua própria política de mempool. O mempool é a área de espera temporária para transacções ainda não confirmadas. Uma transacção destas não tem, por isso, de ser automaticamente inválida segundo as regras de consenso.

Como valida o Bitcoin Core transacções?

O Bitcoin Core valida uma transacção ao verificar se o bitcoin que pretende gastar existe realmente, se ainda não foi gasto antes e se pode ser utilizado por si. O Bitcoin não funciona com um saldo simples que é ajustado algures. Um pagamento utiliza montantes recebidos anteriormente, que se chamam outputs.

Um output que ainda não foi gasto chama-se UTXO, abreviatura de unspent transaction output. Pode ver um UTXO como uma pequena parcela de bitcoin que ainda está disponível para ser gasta.

Numa nova transacção, o Bitcoin Core verifica, entre outros, estes pontos:

  • Os UTXO utilizados existem realmente.
  • Esses UTXO ainda não foram gastos anteriormente.
  • Os dados de desbloqueio cumprem as condições do output anterior.
  • O valor de todos os outputs não é superior ao valor de todos os inputs.

Para muitas transacções comuns, uma assinatura criptográfica prova que o remetente tem a private key correcta. O Bitcoin Script verifica depois se essa assinatura e a chave pública associada estão correctas. O Bitcoin Script é a linguagem de script limitada que executa as condições das transacções Bitcoin.

Exemplo: Imagine que recebeu anteriormente 0,5 BTC e que esse output ainda não foi utilizado. Então, esses 0,5 BTC podem servir como input para uma nova transacção. Se tentar gastar esse mesmo output novamente mais tarde, o Bitcoin Core rejeita-o como um “double-spending”.

Numa transacção normal, também não pode surgir valor do nada. Se os inputs somarem 0,5 BTC e enviar 0,49 BTC para outro endereço, a diferença de 0,01 BTC pode ser a taxa de transacção. A transacção coinbase especial num bloco funciona de forma diferente; esta destina-se à recompensa do bloco e às taxas.

Como verifica o Bitcoin Core blocos?

O Bitcoin Core verifica um bloco ao analisar tanto os dados no cabeçalho do bloco como todas as transacções no bloco. Apenas os blocos que cumprem as regras de consenso são guardados pelo node como parte da cadeia Bitcoin válida.

Um bloco é composto, de forma geral, por transacções e por um cabeçalho do bloco. Nesse cabeçalho constam, entre outros elementos, uma referência ao cabeçalho do bloco anterior e uma raiz de Merkle. Essa raiz de Merkle é um resumo criptográfico de todas as transacções no bloco.

A referência ao bloco anterior torna a história difícil de alterar. Se modificar uma transacção antiga, o resumo desse bloco muda. Por isso, também teria de voltar a alterar todos os blocos seguintes.

O Bitcoin Core também verifica cada transacção dentro do bloco. Assim, o node volta a confirmar se um output já não foi gasto anteriormente. Cada bloco contém ainda uma transacção coinbase. Com esta, a recompensa do bloco e as taxas de transacção são atribuídas ao miner. O bitcoin de uma transacção coinbase só pode ser gasto depois de a transacção ter 100 confirmações.

Por vezes, existem durante pouco tempo duas versões válidas da cadeia Bitcoin lado a lado. Nesse caso, o modelo de full node segue a versão com mais proof-of-work cumulativo. Isto não é algo que os programadores do Bitcoin Core ou os miners decidam por todos: cada full node executa as verificações por si próprio e escolhe segundo as mesmas regras.

Quem desenvolveu o Bitcoin Core?

O primeiro software Bitcoin foi desenvolvido e lançado sob o pseudónimo Satoshi Nakamoto. Satoshi é, portanto, um pseudónimo, ninguém sabe quem é este misterioso programador.

O Bitcoin Core é agora desenvolvido como um projecto de código aberto. As pessoas podem contribuir com propostas de alterações, testes e revisões. O novo código não é adicionado sem mais: outros colaboradores avaliam a alteração e são necessários testes.

Não existe um grupo fixo e privilegiado que simplesmente controle o Bitcoin Core. Existem, contudo, maintainers do repositório. Estes têm tarefas práticas, como integrar alterações propostas, coordenar lançamentos e moderar discussões. Isso não os torna proprietários centrais do Bitcoin.

Para utilização normal, escolhe-se uma versão estável. A versão principal na qual os programadores colaboram é testada, mas não é automaticamente uma versão estável para uso diário.

Qual é a diferença entre Bitcoin Core e Bitcoin?

Bitcoin Core é software, enquanto Bitcoin pode referir-se à rede, ao protocolo ou ao BTC como criptomoeda. Essa diferença é importante, porque os nomes são muitas vezes usados indistintamente.

Bitcoin é, por exemplo, a rede peer-to-peer na qual os participantes trocam transacções. BTC é a unidade de bitcoin com a qual envia valor. O Bitcoin Core é, por sua vez, um programa que instala para participar nessa rede segundo as suas regras.

Pode comparar isto a um browser e à internet. Um browser dá-lhe acesso à internet, mas não é a internet em si. Da mesma forma, o Bitcoin Core permite-lhe participar no Bitcoin, sem que o software seja o Bitcoin como um todo.

Também uma alteração no Bitcoin Core não muda automaticamente as regras do Bitcoin para todos. Para uma alteração nas regras de consenso, os outros participantes também têm de optar por utilizar regras ou software compatíveis.

O que é a carteira do Bitcoin Core?

A carteira do Bitcoin Core é a carteira de criptomoedas integrada no Bitcoin Core. Com esta pode receber, gerir e enviar bitcoin. A carteira funciona em conjunto com o Bitcoin Core, mas tem uma função diferente da do node em si. O node verifica transacções e blocos, enquanto a carteira é usada sobretudo para gerir o seu bitcoin e as chaves associadas.

A carteira do Bitcoin Core é uma carteira de autocustódia. Isto significa que é o próprio utilizador que é responsável pelas suas private keys, pelas suas cópias de segurança e pela segurança do seu dispositivo. Além disso, pode proteger a carteira com uma passphrase (frase-passe).

Por isso, é importante fazer regularmente uma cópia de segurança segura da sua carteira e nunca partilhar as suas private keys, a cópia de segurança e a frase-passe com outras pessoas. Quem obtiver acesso a estes dados pode também, potencialmente, obter acesso ao seu bitcoin.

Como pode utilizar o Bitcoin Core?

Pode utilizar o Bitcoin Core como programa de ambiente de trabalho, como node que corre silenciosamente em segundo plano, ou através de ferramentas de linha de comandos e RPC. RPC é uma forma de outros programas darem comandos ao seu node.

Para muitas pessoas, a versão gráfica é a mais fácil. Com esta, pode acompanhar a sincronização, gerir uma carteira e enviar transacções. Utilizadores mais técnicos executam muitas vezes bitcoind sem interface gráfica, por exemplo num computador próprio que serve sobretudo como node.

O seu node pode funcionar apenas para si, mas também pode permitir ligações de entrada. Para a sua própria carteira e validação, as ligações de saída são suficientes. As ligações de entrada ajudam, contudo, outros nodes e clientes leves, o que faz com que a rede peer-to-peer continue mais disponível.

Quer praticar primeiro sem utilizar bitcoin real? Então pode usar uma rede de teste separada, como o signet. Na Bitcoin mainnet, erros numa transacção podem levar a perda irreversível.

Se utilizar RPC, tenha cuidado redobrado com o acesso externo. Credenciais RPC válidas podem dar a alguém muito controlo sobre o seu node Bitcoin Core e, dependendo da sua configuração, sobre uma carteira carregada. Por isso, não exponha o acesso RPC a terceiros sem necessidade.

Como instala o Bitcoin Core?

Pode descarregar o Bitcoin Core através do site oficial do Bitcoin Core. Aí, escolha a versão que corresponde ao seu sistema operativo, como Windows, macOS ou Linux.

Depois de descarregar, instale o software e abra o Bitcoin Core. Na primeira vez que o iniciar, pode escolher onde os dados da blockchain serão armazenados. Tenha em conta que o Bitcoin Core pode necessitar de muito espaço de armazenamento, porque o software descarrega e verifica uma cópia da blockchain Bitcoin.

Depois disso, o Bitcoin Core começa a sincronizar com a rede Bitcoin. Na primeira vez, isto pode demorar algum tempo. Assim que a sincronização estiver concluída, o seu node pode verificar transacções e blocos de forma autónoma.

Quer instalar o Bitcoin Core por si próprio e procura os passos técnicos exactos? Então consulte os guias oficiais de instalação do Bitcoin Core para o seu sistema operativo.

Como sincroniza o Bitcoin Core com a blockchain?

O Bitcoin Core sincroniza ao descarregar blocos desde o início e ao validá-los um a um até ao bloco válido mais recente. Este processo chama-se initial block download e ocorre no primeiro arranque, ou quando o seu node está muito atrasado.

Durante este processo, o seu computador utiliza capacidade de rede, espaço de armazenamento e poder de processamento. A duração varia entre algumas horas e vários dias ou mais, dependendo do seu hardware e da sua ligação à internet.

A sua carteira pode parecer incompleta durante a sincronização. As novas transacções ou um saldo só ficam totalmente visíveis quando o seu node estiver actualizado até ao bloco em que essa actividade se encontra.

Se quiser usar menos armazenamento, pode activar o pruning. Com o pruning, o Bitcoin Core remove dados brutos antigos de blocos e dados undo depois de o node já os ter validado por si próprio. O node continua a ser um full node, porque continua a verificar os blocos de forma autónoma.

Quais são as vantagens e limitações do Bitcoin Core?

A maior vantagem do Bitcoin Core é que pode verificar o Bitcoin por si próprio. Não precisa de confiar totalmente num prestador externo de carteira, num servidor ou numa empresa de criptomoedas para a validade dos blocos e das transacções.

Um full node próprio também ajuda a rede. O seu node recebe dados válidos, verifica-os e pode encaminhá-los. Se poucas pessoas fizerem isto, os clientes leves tornam-se mais rapidamente dependentes de serviços centralizados.

Além disso, o Bitcoin Core pode ser melhor para a sua privacidade do que uma carteira que tenha de consultar um node externo para cada saldo e cada transacção. Isso não torna o Bitcoin automaticamente anónimo: as transacções continuam numa blockchain pública.

O reverso da medalha é que o Bitcoin Core exige mais do seu computador e de si enquanto utilizador do que uma carteira de criptomoedas simples. Por exemplo, precisa de muito espaço de armazenamento, a primeira sincronização pode demorar bastante e é o próprio utilizador que é responsável pelas actualizações, pelas cópias de segurança e pela segurança do seu dispositivo.

Pode limitar o uso de armazenamento e de internet, mas isso pode ser feito à custa de certas funcionalidades. Além disso, a autocustódia significa que é o próprio utilizador que é responsável pelo seu bitcoin. Um node próprio, por exemplo, não o protege contra malware, perda de private keys ou definições incorrectas.

Conclusão

Bitcoin Core é uma forma de participar directamente no Bitcoin em vez de confiar apenas na infraestrutura de terceiros. O software descarrega e verifica blocos e transacções segundo as regras do Bitcoin, e pode encaminhar dados válidos para outros nodes.

Isto torna o Bitcoin Core interessante se quiser mais autonomia, controlo e, possivelmente, mais privacidade. Em contrapartida, precisa de tempo, espaço de armazenamento e atenção técnica. Se também utilizar a carteira integrada, a segurança do seu bitcoin fica inteiramente nas suas mãos. Para quem quiser assumir essa responsabilidade, um full node próprio é uma forma prática de verificar o Bitcoin por si próprio.

Sobre a Finst

A Finst é uma plataforma de criptomoedas líder nos Países Baixos que oferece taxas de transação bastante reduzidas, segurança de nível institucional e um conjunto abrangente de serviços de criptomoedas, como negociação, custódia, staking e rampas de entrada e saída de moeda fiduciária. Fundada pelo antigo núcleo da equipa da DEGIRO, a Finst está autorizada como prestador de serviços de criptoativos pela Autoridade Holandesa para os Mercados Financeiros (AFM) e serve clientes privados e institucionais em 30 países europeus.

A plataforma de criptomoedas para todos os investidores

Quer seja um investidor ativo ou de longo prazo, a Finst permite-lhe aumentar o seu património de criptomoedas com confiança e tranquilidade.

Criar conta gratuita