O que é ponto a ponto (P2P)?
Na ciência da computação, uma rede ponto a ponto (P2P) consiste em um grupo de dispositivos que armazenam e compartilham arquivos coletivamente. Cada participante (nó) atua como um par individual. Normalmente, 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. Uma plataforma P2P permite que compradores e vendedores executem negociações sem a necessidade de 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 vários casos de uso, mas tornou-se particularmente popular na década de 1990, quando foram criados os primeiros programas de compartilhamento de arquivos. Hoje, as redes P2P estão no centro da maioria das criptomoedas, constituindo uma grande parte da indústria blockchain. No entanto, eles também são aproveitados em outras aplicações de computação distribuída, incluindo mecanismos de pesquisa na web, plataformas de streaming, mercados on-line e o protocolo da web InterPlanetary File System (IPFS).
Como funciona o P2P?
Em essência, um sistema P2P é mantido por uma rede distribuída de usuários. Normalmente, eles não têm administrador central ou servidor porque cada nó contém uma cópia dos arquivos - agindo tanto como cliente quanto como servidor para outros nós. Assim, cada nó pode baixar arquivos de outros nós ou fazer upload de arquivos para eles. É isso que diferencia 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 compartilham arquivos armazenados em seus discos rígidos. Usando aplicativos de software projetados para mediar o compartilhamento de dados, os usuários podem consultar outros dispositivos na rede para localizar e baixar arquivos. Depois que um usuário tiver baixado um determinado arquivo, ele poderá atuar como fonte desse arquivo.
Dito de outra forma, quando um nó atua como cliente, ele baixa arquivos de outros nós da rede. Mas quando trabalham como servidores, são a fonte da qual outros nós podem baixar arquivos. Na prática, porém, ambas as funções podem ser executadas ao mesmo tempo (por exemplo, baixar o arquivo A e enviar o arquivo B).
Como cada nó armazena, transmite e recebe arquivos, as redes P2P tendem a ser mais rápidas e eficientes à medida que sua base de usuários aumenta. Além disso, a sua arquitetura distribuída torna os sistemas P2P muito resistentes a ataques cibernéticos. Ao contrário dos modelos tradicionais, as redes P2P não apresentam um único ponto de falha.
Podemos categorizar os sistemas peer-to-peer de acordo com sua arquitetura. Os três tipos principais são chamados de redes P2P não estruturadas, estruturadas e híbridas.
Redes P2P não estruturadas
As redes P2P não estruturadas não apresentam nenhuma organização específica dos nós. Os participantes se comunicam aleatoriamente entre si. Esses sistemas são considerados robustos contra atividades de alta rotatividade (ou seja, vários nós entrando e saindo frequentemente da rede).
Embora sejam mais fáceis de construir, as redes P2P não estruturadas podem exigir maior uso de CPU e memória porque as consultas de pesquisa são enviadas para o maior número possível de pares. Isso tende a inundar a rede com consultas, especialmente se um pequeno número de nós estiver oferecendo o conteúdo desejado.
Redes P2P estruturadas
Em contrapartida, as redes P2P estruturadas apresentam uma arquitetura organizada, permitindo que os nós pesquisem arquivos de forma eficiente, mesmo que o conteúdo não esteja amplamente disponível. Na maioria dos casos, isso é conseguido através do uso de funções hash que facilitam pesquisas no banco de dados.
Embora as redes estruturadas possam ser mais eficientes, elas tendem a apresentar níveis mais elevados de centralização e geralmente exigem custos mais elevados de configuração e manutenção. Fora isso, as redes estruturadas são menos robustas quando enfrentam altas taxas de rotatividade.
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, seu design pode conter um servidor central que facilita a conexão entre pares.
Quando comparados aos outros dois tipos, os modelos híbridos tendem a apresentar melhor desempenho geral. Geralmente combinam algumas das principais vantagens de cada abordagem, alcançando simultaneamente graus significativos de eficiência e descentralização.
Distribuído vs. descentralizado
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 orientar 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 consultas de pesquisa.
Além disso, também se poderia dizer que pequenas redes controladas por uma base limitada de utilizadores com objectivos partilhados 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 chamado blockchain.
Neste contexto, a arquitetura P2P inerente à tecnologia blockchain é o que permite a transferência de bitcoin e outras criptomoedas em todo o mundo, sem a necessidade de intermediários nem de qualquer servidor central. Além disso, qualquer pessoa pode configurar um nó Bitcoin se desejar participar do processo de verificação e validação de blocos.
Portanto, não há bancos processando ou registrando transações na rede Bitcoin. Em vez disso, o blockchain atua como um livro digital que registra publicamente todas as atividades. Basicamente, cada nó mantém uma cópia do blockchain e a compara com outros nós para garantir que os dados sejam precisos. A rede rejeita rapidamente qualquer atividade maliciosa ou imprecisão.
No contexto dos blockchains de criptomoedas, os nós podem assumir diversas funções diferentes. Os nós completos, por exemplo, são aqueles que fornecem segurança à 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 do trabalho coletivo de verificação do verdadeiro estado do livro-razão distribuído. É importante notar, porém, que nem todos os nós de validação completos são mineradores.
Vantagens
A arquitetura ponto a ponto dos blockchains oferece muitos benefícios. Entre os mais importantes está o fato de que as redes P2P oferecem maior segurança do que os arranjos cliente-servidor tradicionais. A distribuição de blockchains por um grande número de nós os torna virtualmente imunes aos ataques de negação de serviço (DoS) que afetam vários sistemas.
Da mesma forma, como a maioria dos nós deve estabelecer um consenso antes que os dados sejam adicionados a uma blockchain, é quase impossível para um invasor alterar os dados. Isto é especialmente verdadeiro para grandes redes como a do Bitcoin. Blockchains menores são mais suscetíveis a ataques porque uma pessoa ou grupo pode eventualmente obter controle sobre a maioria dos nós (isso é conhecido como ataque de 51%).
Como resultado, a rede ponto a ponto distribuída, combinada com um requisito de consenso majoritário, dá às blockchains um grau 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 esgotadas pelos governos. Esta resistência também se estende aos esforços de censura por parte das plataformas privadas de processamento de pagamentos e de conteúdo. Alguns criadores de conteúdo e comerciantes online adotaram pagamentos em criptomoedas como forma de evitar o bloqueio de seus pagamentos por terceiros.
Limitações
Apesar de suas muitas vantagens, o uso de redes P2P em blockchains também apresenta certas limitações.
Como os livros-razão distribuídos devem ser atualizados em cada nó, e não em um servidor central, adicionar transações a um blockchain requer uma enorme quantidade de poder computacional. Embora isso proporcione maior segurança, reduz bastante a eficiência e é um dos principais obstáculos quando se trata de escalabilidade e adoção generalizada. No entanto, criptógrafos e desenvolvedores de blockchain estão investigando alternativas que possam ser usadas como soluções de escalonamento. Exemplos proeminentes incluem Lightning Network, Ethereum Plasma e o protocolo Mimblewimble.
Outra limitação potencial está relacionada a ataques que podem surgir durante eventos de hard fork. Como a maioria dos blockchains são descentralizados e de código aberto, grupos de nós são livres para copiar e modificar o código e se separar da cadeia principal para formar uma nova rede paralela. Hard forks são completamente normais e não são uma ameaça por si só. Mas se certos métodos de segurança não forem adotados adequadamente, ambas as cadeias podem tornar-se vulneráveis a ataques de repetição.
Além disso, a natureza distribuída das redes P2P torna-as relativamente difíceis de controlar e regular, não apenas no nicho blockchain. Vários aplicativos e empresas P2P se envolveram em atividades ilegais e violações de direitos autorais.
Pensamentos finais
A arquitetura ponto a ponto pode ser desenvolvida e usada de muitas maneiras diferentes e está no centro dos blockchains que tornam as criptomoedas possíveis. Ao distribuir livros de transações em grandes redes de nós, a arquitetura P2P oferece segurança, descentralização e resistência à censura.
Além da sua utilidade na tecnologia blockchain, os sistemas P2P também podem servir outras aplicações de computação distribuída, desde redes de partilha de ficheiros até plataformas de comércio de energia.