O que é ponto a ponto (P2P)?

Na computação ponto a ponto (P2P), uma rede (P2P) consiste em um grupo de dispositivos que compartilham e armazenam arquivos juntos. Cada participante (nó) atua como um par separado. Via de regra, todos os nós têm o mesmo poder e executam as mesmas tarefas.

Na tecnologia financeira, o termo “peer-to-peer” geralmente se refere à troca de criptomoedas ou ativos digitais através de uma rede distribuída. A plataforma P2P permite que compradores e vendedores façam transações sem intermediários. Em alguns casos, os websites também podem fornecer um ambiente P2P que conecta credores e devedores.

A arquitetura P2P pode ser adequada para uma variedade de casos de uso, mas tornou-se particularmente popular na década de 1990, quando os primeiros aplicativos de compartilhamento de arquivos foram criados. Hoje, as redes P2P sustentam a maioria das criptomoedas e constituem uma grande parte da indústria blockchain. No entanto, eles também são usados ​​em outras aplicações de computação distribuída, incluindo serviços de pesquisa na web, plataformas de streaming, mercados online e o protocolo web InterPlanetary File System (IPFS).


Como funciona o P2P?

Em essência, o sistema P2P é suportado por uma rede distribuída de usuários. Eles geralmente não possuem administrador ou servidor central, pois cada nó contém uma cópia dos arquivos, atuando como cliente e servidor para outros nós. Dessa forma, cada nó pode baixar arquivos de outros nós ou fazer upload de arquivos para eles. Isto é o que distingue as redes P2P dos sistemas cliente-servidor mais tradicionais, nos quais os dispositivos clientes baixam arquivos de um servidor centralizado.

Nas redes P2P, os dispositivos conectados trocam arquivos armazenados em discos rígidos. Usando aplicativos projetados para compartilhamento de dados, os usuários podem solicitar e baixar arquivos para outros dispositivos na rede. Depois que um usuário tiver baixado esse arquivo, ele poderá ser a origem desse arquivo.

Em outras palavras, quando os nós atuam como clientes, eles baixam arquivos de outros nós da rede. Mas quando atuam como servidores, são uma fonte da qual outros sites podem baixar arquivos. Porém, na prática, ambas as funções podem ser executadas ao mesmo tempo (por exemplo, carregar o arquivo A e carregar o arquivo B).

À medida que cada nó armazena, transfere e recebe arquivos, as redes P2P se tornam mais rápidas e eficientes à medida que sua base de usuários cresce. Além disso, a sua arquitetura distribuída torna os sistemas P2P altamente resistentes a ataques cibernéticos. Ao contrário dos modelos tradicionais, as redes P2P não possuem um único ponto de falha.

Podemos classificar os sistemas peer-to-peer de acordo com sua arquitetura. Existem três tipos principais: redes P2P não estruturadas, estruturadas e híbridas.


Redes P2P não estruturadas

As redes P2P não estruturadas não representam nenhuma organização específica de nós. Os participantes se comunicam aleatoriamente entre si. Esses sistemas são considerados resilientes a atividades de alta rotatividade (ou seja, vários nós entram e saem da rede com frequência).

Embora redes P2P não estruturadas sejam mais fáceis de construir, elas podem consumir mais CPU e memória porque as pesquisas são enviadas para o maior número possível de pares. Isso tende a sobrecarregar a rede com solicitações se um pequeno número de nós oferecer o conteúdo desejado.


Redes P2P estruturadas

Por outro lado, redes P2P estruturadas são arquiteturas organizadas que permitem que os nós pesquisem arquivos com eficiência, mesmo quando o conteúdo não é público. Na maioria das vezes, isso é conseguido através do uso de funções hash, que facilitam as pesquisas no banco de dados.

Embora as redes estruturadas possam ser mais eficientes, elas normalmente têm um nível mais alto de centralização e geralmente exigem custos mais elevados de configuração e manutenção. Além disso, as redes estruturadas são menos robustas quando confrontadas com elevadas taxas de saída.


Redes P2P híbridas

As redes P2P híbridas combinam o modelo cliente-servidor convencional com alguns aspectos da arquitetura peer-to-peer. Por exemplo, graças a isso, você pode criar um servidor central que simplificará a conexão entre pares.

Em comparação com os outros dois tipos, os modelos híbridos melhoraram o desempenho geral. Geralmente combinam algumas das principais vantagens de cada abordagem, ao mesmo tempo que alcançam um grau significativo de eficiência e descentralização.


Distribuição ou descentralização?

Embora a arquitetura P2P seja inerentemente distribuída, é importante observar que existem vários graus de descentralização. Portanto, nem todas as redes P2P são descentralizadas. 

Na verdade, muitos sistemas dependem de uma autoridade central para gerenciar a atividade da rede, tornando-os um tanto centralizados. Por exemplo, alguns sistemas de compartilhamento de arquivos P2P permitem que os usuários pesquisem e baixem arquivos de outros usuários, mas não podem participar de outros processos, como o gerenciamento de solicitações de pesquisa.

Alternativamente, pode-se dizer que pequenas redes controladas por uma base limitada de usuários de uso geral têm um maior grau de centralização, apesar da falta de uma infra-estrutura de rede centralizada.


O papel do P2P em blockchains

Nos estágios iniciais do Bitcoin, Satoshi Nakamoto o definiu como um “sistema de dinheiro eletrônico ponto a ponto”. Bitcoin foi criado como uma forma digital de dinheiro. Ele pode ser transferido de um usuário para outro por meio de uma rede P2P que gerencia um livro-razão distribuído denominado “blockchain”.

Neste contexto, a arquitetura P2P inerente à tecnologia blockchain permite que Bitcoin e outras criptomoedas sejam transferidas em todo o mundo sem a necessidade de intermediários ou de um servidor central. Além disso, qualquer pessoa pode criar um nó Bitcoin se quiser participar do processo de verificação e confirmação de blocos.

Assim, não existem bancos na rede Bitcoin que processem ou registrem transações. Em vez disso, o blockchain atua como um livro digital que registra publicamente todas as ações. Essencialmente, cada nó armazena uma cópia do blockchain e a compara com outros nós para garantir a precisão dos dados. A rede rejeita rapidamente qualquer atividade maliciosa ou imprecisão.

No contexto dos blockchains de criptomoedas, os nós podem desempenhar muitas funções diferentes. Os nós completos, por exemplo, garantem a segurança da rede, verificando as transações em relação às regras de consenso do sistema.

Cada nó completo mantém uma cópia completa e atualizada do blockchain, permitindo-lhes participar de um esforço colaborativo para verificar o verdadeiro estado do livro-razão distribuído. No entanto, é importante notar que nem todos os nós totalmente verificados são mineradores.


Vantagens

A arquitetura peer-to-peer de blockchains oferece muitas vantagens. Entre os mais importantes está o fato de as redes P2P oferecerem maior segurança do que os mecanismos cliente-servidor tradicionais. A distribuição de blockchains por um grande número de nós os torna virtualmente imunes a ataques de negação de serviço (DoS), que muitos sistemas sofrem.

Como a maioria dos nós deve chegar a um consenso antes de adicionar dados ao blockchain, é virtualmente impossível para um invasor alterar os dados. Isto é especialmente verdadeiro para grandes redes como o Bitcoin. Blockchains menores são mais propensos a ataques porque uma pessoa ou grupo pode eventualmente obter o controle da maioria dos nós (isso é conhecido como ataque de 51%).

Como resultado, a rede distribuída peer-to-peer, combinada com o requisito de consenso majoritário, dá às blockchains um nível relativamente alto de resistência a atividades maliciosas. O modelo P2P é uma das razões pelas quais o Bitcoin (e outras blockchains) foram capazes de alcançar a chamada “tolerância a falhas bizantinas”.

Além da segurança, o uso da arquitetura P2P em blockchains de criptomoedas também os torna resistentes à censura por parte das autoridades centrais. Ao contrário das contas bancárias padrão, as carteiras de criptomoedas não podem ser congeladas ou esvaziadas pelos governos. Essa resistência também se estende às tentativas de censura por parte de plataformas privadas de pagamento e processamento de conteúdo. Alguns criadores de conteúdo e comerciantes online aceitaram pagamentos em criptomoedas para evitar que seus pagamentos sejam bloqueados por terceiros.


Limitação

Apesar das inúmeras vantagens, o uso de redes P2P em blockchains também apresenta certas limitações.

Como os livros distribuídos devem ser atualizados em cada nó individual, e não em um servidor central, adicionar transações ao blockchain requer um enorme poder computacional. Embora isto proporcione maior segurança, por sua vez reduz significativamente a eficiência operacional, que é um dos principais obstáculos quando se trata de escalabilidade e adoção generalizada. No entanto, criptógrafos e desenvolvedores de blockchain estão explorando alternativas que podem ser usadas como soluções de escalonamento. Exemplos proeminentes são os protocolos Lightning Network, Ethereum Plasma e Mimblewimble.

Outra limitação potencial está relacionada a ataques que podem ocorrer durante eventos de hard fork. Como a maioria dos blockchains são descentralizados e de código aberto, grupos de nós podem copiar e modificar livremente o código e ramificar-se da cadeia principal para formar uma nova rede paralela. Hard forks são completamente normais e não representam uma ameaça por si só. Mas se certas práticas de segurança não forem adotadas adequadamente, ambas as cadeias podem tornar-se vulneráveis ​​a ataques repetidos.

Além disso, a natureza distribuída das redes P2P torna-as relativamente difíceis de controlar e regular, não apenas na esfera da blockchain. Vários programas e empresas P2P foram implicados em atividades ilegais e violação de direitos autorais.


Resultados

A arquitetura ponto a ponto pode ser projetada e usada de muitas maneiras diferentes e é a base dos blockchains que tornam possíveis as criptomoedas. Ao distribuir livros de transações em grandes redes de nós, a arquitetura P2P fornece segurança, descentralização e resistência à censura.

Além de sua utilidade na tecnologia blockchain, os sistemas P2P também podem servir outras aplicações de computação distribuída, desde redes de compartilhamento de arquivos até plataformas de comércio de energia.