Desde que iniciámos esta série de artigos baseados em informação fornecida pela Binance Academy que já falámos por diversas vezes em “nós”, ou no seu equivalente em inglês, “nodes”. Mas, vale talvez a pena falarmos um pouco mais em detalhe sobre este tema, até porque a definição do que é um “nó” pode variar de acordo com o contexto usado.
Por exemplo, quando se trata de redes de computadores ou de telecomunicações, os “nos” podem agir tanto como um ponto de redistribuição ou designar um terminal de comunicação. Normalmente, um nó é representado como um dispositivo numa rede física, mas existem alguns casos específicos em que são usados também, nós virtuais. De forma simples, um nó de rede é o ponto onde uma mensagem pode ser criada, recebida ou transmitida.
Neste artigo iremos discutir os diferentes tipos de nós no contexto do Bitcoin: nós completos, super nós, nós de mineração e nós de clientes SPV.
Os nós do Bitcoin
Mergulhando no contexto das blockchains – que são desenhadas como sistemas distribuídos – uma rede de computadores é o que torna possível o uso do Bitcoin como uma moeda digital descentralizada Peer-to-Peer (P2P ou ponto-a-ponto) que é resistente à autoridade desde a sua conceção e não necessita de um intermediário para ser transacionada por utilizadores (e não importa qual a distância entre eles).
Portanto, os nós de uma rede blockchain são responsáveis por agir como um ponto de comunicação capaz de ter diferentes funções. Quaisquer computadores ou dispositivos que se liguem à interface do Bitcoin podem ser considerados nós no sentido de que comunicam entre si de alguma forma. Esses nós também são capazes de transmitir informações a respeito das transações e dos blocos dentro de uma rede de computadores ao usar o protocolo ponto-a-ponto do Bitcoin. Entretanto, cada computador é definido de acordo com sua função particular, pelo que existem diferentes tipos de nós dentro do Bitcoin.
Nós completos (“full nodes”)
Os nós completos (“full nodes”) são aqueles que realmente dão suporte e segurança ao Bitcoin, sendo indispensáveis à rede. Esses nós também são conhecidos como full validating nodes (nós de validação total) já que entram no processo de verificação dos blocos e transações seguindo as regras do algoritmo de consenso. Os nós completos também são capazes de retransmitir novos blocos e transações para a blockchain. Normalmente, um full node faz download de uma cópia da blockchain do Bitcoin contendo cada bloco e transação, mas isso não é um requisito para ser tornar um nó completo (uma cópia reduzida da blockchain pode ser usada em vez da completa).
Um nó do Bitcoin pode ser estabelecido por meio de diferentes implementações de software, mas a forma mais popular e usada é o Bitcoin Core. Estes são os requisitos mínimos para correr um “full node” de Bitcoin Core:
- Computador de secretária ou notebook com a versão mais recente do Windows, Mac OS X ou Linux;
- 200GB de espaço livre na unidade de armazenamento;
- Um mínimo de 2GB de memória RAM;
- Ligação à Internet de alta velocidade e taxa de upload com pelo menos 50 kB/s;
- Ligação à Internet sem limite de tráfego para uploads. Os nós completos podem chegar, ou até ultrapassar, os 200GB/mês e download de 20GB/mês. E também é necessário descarregar cerca de 200 GB assim que começar o seu “full node”;
- Um nó completo deve estar ativo durante pelo menos 6 horas todos os dias. É melhor ainda se deixá-lo a correr continuamente, 24 horas por dia, 7 dias por semana.
Algumas organizações voluntárias e utilizadores individuais correm nós completos de Bitcoin como forma de ajudar o ecossistema. Atualmente, existem alguns milhares de nós públicos em funcionamento na rede, sendo que é difícil determinar o número exato, pois muitos deles não estão sequer visíveis (designados “nós não recetíveis”) e que operam normalmente atrás de uma firewall, por intermédio de protocolos como o Tor ou, simplesmente, foram configurados para não receber conexões.
Nós recetíveis (“super nodes”)
Essencialmente, um nó recetivo ou “super node” é um “full node” publicamente visível. Ele comunica com e entrega informações para qualquer outro nó que estabeleça uma ligação mútua. Consequentemente, passa a ser basicamente um ponto de redistribuição que pode funcionar como fonte de informações e ponte de comunicação ao mesmo tempo.
Um nó recetível confiável normalmente corre todos os dias e tem várias ligações estabelecidas, transmitindo as informações e transações da blockchain para vários nós à volta do mundo. Por essa razão, este tipo de nó vai provavelmente precisar de um poder computacional e ligação à Internet de maior capacidade, ao contrário de um “full node” que permaneça escondido.
Nós de mineração
Para conseguir minerar Bitcoins no cenário atual, que é muito competitivo, o interessado precisa investir em equipamento e programas especializados para tal. Esses programas de mineração (software) não estão diretamente relacionados com o Bitcoin Core e devem ser executados de forma paralela, para tentar minerar blocos do Bitcoin. Um minerador pode escolher trabalhar sozinho (minerador solitário) ou em grupos conhecidos como “miner pools” (grupos de mineração). Enquanto os mineradores solitários de nós completos usam uma cópia própria da blockchain, os “pool miners” trabalham juntos, cada um contribuindo com o seu poder computacional individual (“hashpower”). Numa “mining pool”, só o administrador dela precisa de facto de correr um “full node” – neste caso, conhecido como “pool miner’s full node”.
Clientes leves ou SPV
Mais conhecido como clientes de Verificação Simples de Pagamento (Simplified Payment Verification) ou SPV, os clientes “lightweight” (leves) são aqueles que fazem o uso da rede Bitcoin, mas não agem como “full nodes”. Ou seja, não contribuem para a segurança da rede simplesmente porque não têm uma cópia da blockchain e não fazem parte do processo de verificação e validação de transações.
De forma simples, SPV é o método pelo qual determinado participante pode verificar se algumas transações foram incluídas ou não nalgum bloco, sem precisar descarregar as informações totais do mesmo. Logo, clientes SPV dependem da informação fornecida por outros “full nodes”. Os clientes leves funcionam como terminais de comunicação e são usados por várias carteiras de criptomoedas.
Clientes vs nós de mineração
É importante notar que correr um “full node” normal não é a mesma coisa que correr um “full node” de mineração. Enquanto os mineradores precisam investir em peças e programas de computador extremamente caros, qualquer pessoa consegue correr um simples “full node”.
Antes de tentar minerar um bloco, o minerador precisa de juntar um número de transações pendentes que foram previamente aceites como válidas pelos “full nodes”. Depois, o minerador cria um bloco candidato (com um grupo de transações) e tenta minerar esse bloco. Se o minerador conseguir encontrar uma solução válida para a prova matemática desse bloco, ele transmite-o para a rede e os outros full nodes fazem a verificação da validade desse bloco. Portanto, as regras de consenso são determinadas e protegidas pela rede distribuída de blocos validados e não pelos mineradores.
Considerações finais
Os nós do Bitcoin comunicam entre si pelo protocolo P2P da rede e, ao fazê-lo, garantem a integridade do sistema. Um nó que age de forma desonesta ou tenta propagar informações incorretas é rapidamente descoberto pelos honestos e acaba por ser desligado da rede.
Apesar do facto de que correr um “full node” de validação não tem nenhuma recompensa financeira, é altamente recomendável tomar essa atitude com intuito de proporcionar confiança, segurança e privacidade para todos os utilizadores da rede. Os “full nodes” garantem que as regras estão sempre a ser seguidas e protegem a blockchain contra ataques e fraudes (como o duplo gasto).
Além disso, um “full node” não precisa de confiar noutros e permite ao utilizador o total controlo das suas criptomoedas
Siga toda a atualidade tecnológica no TecheNet através do Google News. Todas as novidades em tempo real e sem atrasos!
Outros artigos interessantes: