A importancia de rodar um nó (node)?

Boa tarde,

Me deparei com uma discussão a respeito de rodar um nó no meu proprio computador.
Gostaria de saber se realmente, ao rodar um nó, eu tenho mais segurança nas transações da rede, e se empresas que possuem custodias dos btc (Exchanges) rodam um nó como forma de ajudar a rede e de manter a segurança das transações ?

Obrigado

Essa é uma longa discussão, mas em geral rodar um node próprio melhora sua privacidade e ajuda a descartar transações invalidas e eliminar os “bad players” da rede, parando de aceitar transações/conexões de quem não respeita as regras de consenso.

Tem um artigo muito bom (em inglês) que explica em detalhes o porquê de se rodar um full node: https://bitcoinist.com/6-reasons-run-bitcoin-full-node/

Não sei o que exchanges fazem, mas deveriam rodar nodes próprios para a própria segurança.

2 Curtidas

Antes de tentar responder suas questões vale a pena ver quais são os requisitos mínimos para ser um “full node” da rede Bitcoin que é o tipo de ajuda mais interessante para o projeto, lembrando para os menos afeitos ao sistema que existem tipos diferentes de nós que tem ou desempenham funções diferentes na rede, podendo inclusive desempenhar mais de uma.

  1. PC ou Notebook rodando a versão mais recente do Windows, Mac OS X ou Linux;

  2. 200 gigabytes de espaço livre no disco rígido com velocidade mínima de leitura de 100 MB/s;

  3. 2 gigabytes de memória RAM;

  4. Velocidade mínima de UPLOAD da conexão de Internet de 400 kilobits equivalente a 50 kilobytes por segundo. Se eu não olhei errado isso equivale a cerca de 3 MB por minuto ou algo próximo de 180 MB po hora de consumo de banda para UPLOAD de dados;

  5. Ter conexão de Internet sem restrições, com limite de UPLOAD elevado ou que seja monitorado constantemente para que não exceda o limite de UPLOAD. É normal que “full nodes” consumam cerca de 200 gigabytes ou mais por mês da sua banda de Internet, principalmente de UPLOAD (download representa cerca de 10% deste total, ou seja, cerca de 20 gigabytes são baixados e outros 180 gigabytes são enviados para a rede). Resumindo a questão, rodar um “full node” consome bastante largura de banda para enviar dados, também chamado de UPLOAD. Só para começar a atuar como “full node” você vai ter que consumir quase 200 gigabytes para fazer download do Blockchain completo.

  6. O “full node” precisa rodar pelo menos 6 horas por dia NO MÍNIMO, quanto mais tempo ficar rodando mais ajuda você estará oferecendo. A melhor ajuda possível é rodar o “full node” continuamente chegando perto dos 200 gigabytes de consumo de banda da Internet por mês. 200 gigabytes equivale a mais ou menos 205.000 MB. Rodando 24 horas por dia equivale a um consumo de cerca de 6.840 MB ou 285 MB por hora, lembrando que estamos falando de consumo de banda para enviar dados (UPLOAD).

Não se sabe com precisão quantos nós (dentre os diferentes tipos) existem na rede Bitcoin e nem mesmo em outras redes como Ethereum. Ao instalar o aplicativo de conexão o usuário se conecta a rede (abre portas no PC) podendo ser detectado mas existem “firewalls” e aplicativos rodando na rede TOR que impedem a detecção. Segundo o site bitnodes os “full nodes” detectados na rede Bitcoin não chegam a 10 mil. No caso da rede Ethereum são menos de 8 mil. Comparando por exemplo com a quantidade de “wallets” ou carteiras de Bitcoin que passam da casa das dezenas de milhões o número de nós é imensamente pequeno em relação ao número de usuários do sistema.

  1. “Rodar” um nó no computador pessoal dá mais segurança nas transações?

Se a dúvida sobre segurança se refere a confiabilidade nas informações das transações contidas nos blocos (Blockchain) mantidos por outros nós a resposta é sim, desde que você mantenha seu arquivo sempre atualizado e tenha um bom sistema de proteção contra vírus. Sempre existe a possibilidade de algum nó da rede ter sofrido algum “hack” e que os dados fornecidos por aquele nó sejam incorreto justamente naquele momento em que alguém procura a informação. Se não tiver uma boa proteção pode se tornar vulnerável expondo seus dados pessoais como saldo da carteira incentivando ataques mais pesados para tentar roubá-lo. Se a dúvida sobre maior segurança se refere a realização das suas próprias transações (enviar e receber) é necessário avaliar outros pontos como volume e valor das transações e conhecimentos sistêmicos e recursos para operacionalizar o processo com segurança. Ou seja, é preciso avaliar a questão custo x benefício. Mesmo tendo boa vontade para ajudar é preciso ter bom equipamento, largura de banda, conhecimentos de informática, considerar possíveis “hard fork” futuros e alta proteção contra ataques. Não tenho certeza mas se você tentar se proteger ficando oculto não vai ajudar muito no sentido operacional da rede porque os dados dos blocos ficarão protegidos mas não poderão ser usados por outros nós, ou seja, a ajuda fica comprometida em prol da segurança.

  1. Empresas que fazem custódia dos bitcoins rodam um nó como forma de ajudar a rede e de manter a segurança das transações?

Aqui no Brasil eu conheço apenas uma Exchange que faz “custódia” integral dos bitcoins que você compra (a XDEX que é da XP Investimentos). Lá você entrega/investe o dinheiro para “comprar/investir” e não tem como “pegar/transferir” os bitcoins para a sua carteira pessoal. Na maioria das outras Exchanges ao comprar os bitcoins você pode (e deve) transferí-los imediatamente para a sua própria carteira. Quando você vai vender faz o caminho inverso, transfere os bitcoins para a carteira da Exchange e recebe o dinheiro após a venda. Neste caso a custódia acontece por pouco tempo. É certo que Exchanges são potenciais alvos de ataques, tanto é que vira e mexe sofrem ataques, mas o fato de desempenharem função de nó do sistema não garante segurança e pode até aumentar o risco se não tiver bom sistema de proteção. Como existem nós que não são conhecidos não dá para saber com certeza se todas as Exchanges atuam como nós do sistema, talvez perguntando para alguém que trabalha lá seja possível saber com mais certeza. Eu pessoalmente acredito que todas as Exchanges atuam como nós da rede com foco na própria segurança, não pensando tanto em ajudar. mas vale lembrar que Exchanges devem ter equipes/pessoas especializadas com conhecimentos para operar um nó com segurança.

Nas duas perguntas você enfatiza a questão da maior segurança ao atuar como nó do sistema mas vale notar por exemplo que no mundo todo são catalogados menos de 10 mil nós detectados do Bitcoin e pouco mais de 7 mil do Ethereum, quase a totalidade localizados no hemisfério norte em países desenvolvidos, um volume muito pequeno por exemplo em relação a quantidade de carteiras digitais existentes, na casa das dezenas de milhões. Existem cerca de 140 mil carteiras digitais de bitcoin com saldo na faixa de 10 a 100 BTC. Numa pesquisa feita com saldos em dólar consta que existem mais de 20 milhões de carteiras de bitcoin com pelo menos 1 dólar de saldo. Se realmente fosse barato, seguro e simples se proteger atuando como nó da rede me parece que a quantidade de nós seria muito maior. Existem outras formas de proteção mais baratas e simples como “cold wallets” ou carteiras digitais mantidos em equipamentos sem conexão permanente com a internet (smartphones, PC caseiro, etc.), dividir saldos em diversas carteiras, ter segundo fator de autenticação, guardar a senha alfabética com segurança e usar carteiras com multiassinaturas, que exige duas ou mais senhas para concluir uma transação. É possível mesclar algumas alternativas como ter uma carteira digital sem conexão permanente com a Internet conjugado com segundo fator de autenticação e que permita movimentação do saldo com duas ou mais assinaturas. Vale alertar que tanto no caso de um ou mais usuários, a perda da senha ou de uma das senhas no caso de multiassinaturas, implica na perda total de acesso ao saldo.

Distribuição global dos nodes de Bitcoin:

Distribuição global dos nodes de Ethereum:
https://www.ethernodes.org/countries

Notícia sobre requisitos mínimos para instalar um nó/nodes:

Notícia sobre quantidade de carteiras e saldos de bitcoin:

Site oficial com orientações detalhadas para instalar um “full node” de Bitcoin:
https://bitcoin.org/en/full-node

3 Curtidas

Um vídeo sobre segurança operando “full node”:

Aproveitando o tópico aberto segue algumas informações gerais sobre nós ou “nodes”. Um Blockchain “roda” numa rede ponto a ponto (P2P), ou seja, usuários conectados diretamente entre si sem necessidade de um servidor/controlador central. Como qualquer usuário localizado em qualquer lugar pode se conectar (ser um nó da rede) num Blockchain descentralizado os demais/outros nós desta rede são fundamentais para garantir a integridade e a segurança do sistema (cumprimento das regras). Neste caso tamanho é documento, ou seja, quanto maior for a rede e por consequência a quantidade de nós maiores são as chances de que a rede seja mais segura e confiável e portanto mais resistente a ataques. A integridade é garantida pela manutenção de cópias completas dos blocos pelos usuários “plugados” na rede (nós). A segurança é garantida pela realização da validação dos novos blocos gerados por outros nós (mineradores). Entre outros requisitos podemos dizer que integridade e segurança resultam em confiabilidade de um sistema baseada no mecanismo de consenso na rede onde alguns tipos de nós fazem validação dos novos blocos com base em regras universais adotadas/aceitas por todos os demais nós de rede Blockchain. Existem modelos diferentes de mecanismo de consenso, os mais conhecidos/usados são “PoW - Proof of Work” e “PoS - Proof of Stake”. Uma das diferenças do PoS em relação ao PoW está no fato de que o PoS impõe algumas restrições/exigências aos interessados em atuar como nó da rede, como por exemplo o depósito de moedas a título de garantia para atuar como minerador (que é um tipo de nó da rede) ou como “full node”.

Tipos de Nós e Modelos Diferentes de Blockchains

Falando de nós ou “nodes” de uma forma mais genérica, ressaltando que cada Blockchain tem suas particularidades e algumas informações a seguir/abaixo podem variar caso a caso, no detalhe de cada projeto. Ao falarmos sobre “nós” ou “nodes” de um Blockchain é interessante considerar que não existe apenas um tipo de nó num Blockchain, dependendo do tipo de projeto/ideologia dos seus criadores. Existem tipos diferentes executando funções diferentes assim como podem existir nós realizando mais de uma função na rede. A principal divisão é feita entre um “full node” (nó completo) e um “lightweight node” (nó leve ou simples) que também são conhecidos como SPV - Simplified Payment Verification (Nó de verificação de pagamento simples) que é a forma menos “pesada” de “plugar” as carteiras digitais na rede, mas nada impede que seja como “full node” por exemplo. Os tipos/funções diferentes não são todos obrigatórios e portanto não são encontrados em todos os Blockchains.


Fonte: https://nodes.com

Tipos de “Full Nodes” ou “Full Validating Nodes”

Os “full nodes” se dividem em três tipos principais: “Masternodes”, “Archival nodes” e “Pruned nodes”. Os “full nodes” do tipo “Archival nodes” por sua vez podem ser divididos em três tipos de nós, cada um tem funções diferentes num Blockchain.

1)Masternodes ” também chamados genericamente de “full nodes” ou nós completos atuam como “servidores” descentralizados da rede, ou seja, podem ser desligados para manutenção, por exemplo, ou ficarem “off” por algum tempo sem prejudicar o funcionamento da rede ao contrário dos servidores centralizados que ficam fora do ar ou indisponíveis. Os “masternodes” mantém cópia atualizada e integral (completa) do Blockchain para uso dos outros nós, cuidam do consenso na rede fazendo a validação dos blocos minerados e podem realizar outras funções mais específicas definidas no projeto, em resumo atuam para manter a segurança/confiabilidade da rede garantindo que os protocolos sejam devidamente observados/cumpridos pelos demais nós da rede. Não há hierarquia no sentido estrito do termo mas podemos considerar que tem um papel importantíssimo num Blockchain baseado em PoW;

2)Pruned nodes ” são nós podados ou capados. Este tipo de nó tem um limite máximo pré-definido de armazenamento de blocos e quando este limite é atingido os blocos mais antigos são apagados/descartados mantendo-se geralmente o cabeçalho e a posição de cada bloco na cadeia. Este tipo de nó pode validar novos blocos atuando no consenso da rede. Como a idéia original de um Blockchain é manter para sempre a cadeia de blocos completa armazenada nos “full nodes”, com o passar do tempo os arquivos armazenados vão se tornando cada vez maiores/pesados. Este tipo de nó mantém uma parte (mais recente/importante) dos blocos com dados integrais e os mais antigos parcialmente (cabeçalho e numeração) sendo uma tentativa de melhorar a escalabilidade e o sistema como um todo; e


Fonte: https://web.getmonero.org/2019/02/01/pruning.html

3)Archival nodes ” ao contrário do nó podado os nós de arquivamento guardam cópia integral de todos os blocos exigindo mais espaço dedicado para o armazenamento das cópias. No caso do Bitcoin o espaço necessário atualmente é de 200 gigabytes. O tipo mais conhecido de “archival node” é o nó de mineração. Teóricamente todos os nós completos podem validar novos blocos e/ou adicioná-los na cadeia de blocos do sistema mas alguns nós de arquivamento podem ter esta funcionalidade restringida em certas situações. Por exemplo, um nó de mineração certamente não pode validar os blocos que ele mesmo minerou mas poderá validar blocos minerados por outros nós. Os nós de arquivamento se dividem em três tipos:

a)Mining nodes ” ou nós de mineração são considerados nós completos do sistema. São nós típicos dos Blockchains que adotam o mecanismo de consenso baseado na prova de trabalho ou “PoW - Proof of Work”. Não é obrigatório que mantenham uma cópia integral do Blockchain mas o ideal é que tenham esta cópia sempre atualizada, se não tiverem dados do último bloco terão que buscar/pegar com outros nós as informações necessárias para realizar seu trabalho de mineração sem o qual não poderão minerar novos blocos. Seu trabalho consiste basicamente em “pegar” (alguns dizem ficar ouvindo ou escutando) as transações que vão sendo realizadas pelos usuários, resolver um problema matemático específico/diferente a cada transação que é baseado em criptografia para verificar a integridade de cada transação, agrupar as transações num bloco dentro de um determinado período de tempo (10 minutos em média no Bitcoin) e transmitir para a rede afim de que os outros nós façam a validação, no final do processo este novo bloco validado é acrescentado a cadeia de blocos mantidas pelos “full nodes”. Aquele que completa a tarefa e tem o trabalho validado/confirmado recebe como pagamento uma recompensa do sistema que gera moedas a crédito deste minerador. Neste sistema PoW vários nós de mineração realizam a mesma tarefa concorrendo entre si numa corrida para ser o responsável pela mineração do próximo bloco, consumindo tempo e energia para realizar uma atividade onde somente uma delas será validada e as demais serão descartadas. Uma das ideias principais que resultaram na criação dos Blockchains é a sua descentralização e por consequência a dispensa do intermediário de confiança. O “PoW - Proof of Work” pode ser considerado o pilar principal que garante essa confiança entre desconhecidos. Em função disso qualquer usuário pode entrar na rede e atuar como nó da rede bastando ter os equipamentos mínimos, conexão com largura de banda e instalar os programas exigidos sem ter que pedir permissão ou fazer depósitos de moedas como garantia, ao contrário do "PoS - Proof os Stake” e seus “staking nodes”;

b)Staking nodes ” ou nós de participação são encontrados nas redes que adotam o sistema de prova de participação ou literalmente prova de estaca que também é conhecido pela sigla “PoS - Proof of Stake”. Também é um nó de minerador com funções parecidas ou iguais as que são desempenhadas por qualquer minerador de um sistema Blockchain. Recolhe as novas transações, resolve o problema matemático em determinado período de tempo e transmite para a rede afim de que outros nós façam a validação. A diferença em relação ao sistema PoW é que não há concorrência entre os mineradores, o sistema sorteia um entre os vários mineradores disponíveis que tenham cumprido alguns requisitos definidos no protocolo do sistema. Aquele minerador que é sorteado se encarrega da mineração enquanto os outros ficam na fila esperando pelo próximo sorteio. O minerador escolhido realiza a tarefa sem concorrência, apenas tem que realizar o trabalho corretamente no prazo definido para que seja validado por outros nós. Se eventualmente for constatado que cometeu algum tipo de erro ou fraude este bloco será minerado novamente descartando-se os blocos eventualmente minerados após este bloco incorreto e o minerador responsável (ou irresponsável) perderá um montante de moedas que depositou antecipadamente como garantia quando se habilitou para aturar como nó de mineração. Nos Blockchains que adotam o processo de validação do tipo “PoS - Proof of Stake” o papel de um “masternode” não é tão essencial e obriga, por exemplo. que o “staking nodes” mantenha uma cópia integral do Blockchain guardado no seu equipamento para não depender de outros nós. Ao contrário do modelo que adota o sistema PoW ser um minerador num Blockchain que adota o PoS não requer grande capacidade de processamento. Outra característica deste tipo de sistema baseado em “PoS - Proof of Stake” é que para se tornar um nó desta rede o usuário precisa “depositar” certa quantia em moedas do próprio sistema a título de garantia e não poderá usá-lo durante o período em que estiver atuando como nó minerador. Este tipo de exigência, entre outras finalidades, tem como objetivo dificultar a entrada de usuários mal intencionados atuando como nós da rede;


Fonte: https://staking.com
A sigla “MN” que aparece no triângulo laranja significa “Masternode”.

c)Authority nodes ” ou nós que rodam algoritmos com perfil de “autoridade” do sistema não podem ser criados livremente. As redes que adotam este tipo de nó definem previamente a quantidade deste tipo de nó. Normalmente os nós de autoridade são escolhidos pela comunidade por meio de votação ou pelos desenvolvedores. Sua função principal é validar os novos blocos e manter o registro atualizado de todos os blocos minerados sendo considerado o maior garantidor da integridade da rede. Dependendo do protocolo pode ter a função de adicionar estes novos blocos a cadeia ou não, cabendo neste caso em que não pode incluir diretamente os blocos tem a tarefa de enviar para a rede a informação da validação para que outros nós façam a adição do novo bloco na cadeia existente. Este tipo de nó é encontrado em redes que adotam o processo de mineração “PoS - Proof of Stake”, talvez pelo fato de eliminar o processo de concorrência e deixar a tarefa de mineração para apenas um minerador tenha se tornado necessário “escolher” alguns nodes bem confiáveis para executar o processo de validação. Alguns projetos trocam o nome do mecanismo de consenso “PoS - Proof of Stake” que ficou meio vinculado com o Ethereum e adotam, por exemplo, o nome “PoA - Proof of Authority” como sendo seu mecanismo de consenso, geralmente como ocorre neste segmento, dizendo que seu mecanismo é uma evolução do outro.

Proof of Authority Elysian
Fonte: https://elycoin.io/whitepaper/english

Nós Leves (SPV)

Este tipo de nó é mais usado por aplicativos de “wallet” ou carteira digital porque não exigem a “importação” completa dos blocos do sistema, que aumenta continuamente. Sua função principal é servir de “interface” permitindo que usuários de qualquer nível possam realizar transações enviando, recebendo e consultando sua conta digital. Também fazem a criptografia das transações antes de enviar para a rede.

Outras Questões Relacionadas aos Nós/Nodes

1) Transações Fora da Rede/Nós

Uma das grandes questões que possivelmente impede a adoção massificada do bitcoin é o tempo exigido para confirmação de uma transação na rede oficial do sistema, que em tese pode chegar a 10 minutos ou mais se estiver ocorrendo um grande volume de transações. Uma das propostas para superar esse obstáculo e que já foi implementado é chamado de “LN - Lightning Network ”. De forma bem simplificada usuários que realizam muitas operações ou transações podem abrir um canal direto com outro usuário fora da rede oficial do sistema de forma segura. As transações são enviadas para o Blockchain após acumularem determinada quantidade de transações ou de valor. Por um lado alivia a quantidade de transações que entram na rede principal e por outro agilizam o tempo gasto na validação de uma transação. Já existe há algum tempo e tem muitos fãs mas é um processo que roda “em paralelo” ou antes de entrar no Blockchain do Bitcoin.

2) Conexão Entre Blockchains

Outra grande questão considerada negativa no mundo dos Blockchains é o fato dos Blockchains não “conversarem”. Nem mesmo Blockchains que resultaram da mesma raiz e se dividiram num “hard fork” conversam automaticamente entre si, tornam-se distintos, sem nenhuma conexão. O Blockchain do Bitcoin não tem conexão com o Blockchain do Ethereum, do Ripple, do Litecoin, etc. Para permitir que Blockchains diferentes possam realizar transações foi desenvolvido um processo chamado de Sidechains, que surgiu em 2014 mas acabou não vingando até agora. Basicamente consiste na abertura de um canal de comunicação entre Blockchains diferentes fazendo equalização entre as diferentes moedas. A empresa Canadense Blockstream talvez seja aquela que mais tem se empenhado em desenvolver um projeto consistente de Sidechain. Outra alternativa de troca de moedas é disponibilizada por um tipo específico de Exchange que faz uma espécia de “câmbio” trocando Bitcoin por Ethereum ou Litecoin por Ripple etc. mediante cobrança de taxa. Este tipo de opção geralmente vem embutido em algumas carteiras digitais mas não envolve conexão ou interface direta entre Blockchains.

3) Os Nós e os Forks (Hard & Soft)

O “hard fork” consiste basicamente na implementação de alteração(ões) ou correção (ões) obrigatória(s) no mecanismo de consenso da rede, ou seja, todos os nós que quiserem continuar na rede terão que adotá-lo. Alguns exemplos de alteração: mudança na forma de recompensa/emissão de novas moedas, no tempo de mineração e mudança do sistema PoW para PoS. Até a data limite pré-estabelecida todos os nós da rede devem adotar e testar o novo protocolo para se adequar ao novo mecanismo. Se não adotarem o novo protocolo ficarão de fora da rede e passarão a ser ignorados/rejeitados pelos demais nós que adotaram o novo protocolo. Os nós que adotarem o novo protocolo darão continuidade na corrente de blocos existente, sendo considerado Blockchain “original” pelos desenvolvedores e aderentes ao novo protocolo. Os que não adotarem o novo protocolo e permanecerem ativos na rede poderão continuar formando uma rede separada, ou seja, uma cadeia única de blocos se divide em duas correntes separadas. É o que ocorreu no caso do “hard fork” do Bitcoin Cash, que já é um “hard fork” do Bitcoin, que se dividiu em duas cadeias de blocos distintos e as duas correntes permaneceram ativas sendo que uma delas já sofreu novos “hard forks” depois do primeiro.

Os “soft fork” introduzem alterações ou mudanças que podem (correção de algum erro crítico que expõe o sistema) ou não ser obrigatório de imediato (geralmente tem algum acionamento/gatilho em algum momento futuro que torna obrigatório) e neste caso os nós que não adotarem ou implementarem as mudanças continuam “plugados” na rede sem sofrerem restrições. Um exemplo deste tipo de alteração foi a implementação do “SegWit - Segregated Witness” que implementa mudanças para minimizar a questão do tamanho dos blocos no Bitcoin de 1 mb. Essa liberalidade será tolerada até que se atinja 95% de adoção, ou seja, foi criado um sistema de transição progressiva para que seja adotado aos poucos diminuindo o impacto.

4) Nós Instalados em VPS - Servidores Privados Virtuais

Pelo menos com base em dados apurados em nós reconhecidos, a maior parte destes nós esta baseado em servidores alugados (VPS - Virtual Private Server), por exemplo da Amazon e Google. Ao usar/alugar servidores privados evita-se custo e paradas com manutenção, proteção contra ataques, consumo de banda, etc. No caso dos nós da rede Ethereum, por exemplo, quase 70% dos nós rastreáveis/identificáveis são mantidos em servidores do Google, Alibaba e Amazon. No caso do Bitcoin também encontramos a maioria dos nós baseados em servidores de grandes empresas de hospedagem.


Fonte: https://www.ethernodes.org/networkType/Hosting


Fonte: https://bitnodes.earn.com/nodes/?q=United%20States

2 Curtidas

Obrigado, Tiago.

Agradeço a resposta

Muito obrigado, Cecilio

1 Curtida

O minerador é um dos tipos de nós da rede. Meus modestos conhecimentos indicam que líquido e eletricidade não combinam mas o russo do vídeo abaixo parece saber o que está fazendo. Não consegui ver se é água ou algum tipo de líquido especial.

Outro vídeo:

1 Curtida

Muito boa esta explicação sobre nodes, @Cecilio! Não conhecia este sites que você linkou no artigo. Parecem excelentes fontes de informação. Muito obrigado!

2 Curtidas