O que significa ponto a ponto (P2P)?
Na ciência da computação, uma rede peer-to-peer (P2P) é definida como 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.
Em tecnologia voltada para finanças, o termo peer-to-peer geralmente se refere à troca de criptomoedas ou ativos digitais por meio de uma rede distribuída. As plataformas P2P permitem que compradores e vendedores executem transações sem a necessidade de intermediários. Em alguns casos, os sites 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 especialmente popular na década de 1990, quando foram criados os primeiros programas de compartilhamento de arquivos. Hoje, as redes P2P servem de base para 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 mecanismos de pesquisa na web, plataformas de streaming, mercados on-line e o protocolo da web InterPlanetary File System (IPFS).
Como funciona um sistema P2P?
Em essência, os sistemas P2P são mantidos por redes distribuídas de usuários. Normalmente, eles não possuem um administrador central ou servidor, porque cada nó possui uma cópia dos arquivos - atuando como cliente e servidor para o restante dos 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. A partir do momento em que um usuário baixa um arquivo específico, ele pode atuar como sua fonte.
Em outras palavras, quando um nó atua como cliente, ele fará download de arquivos de outros nós da rede. Embora quando funcione como um servidor, ele se tornará a fonte da qual outros nós podem baixar os arquivos. Na prática, porém, ambas as funções podem ser executadas simultaneamente (por exemplo, baixar o arquivo A e carregar o arquivo B).
Como cada nó armazena, transmite e recebe arquivos, as redes P2P tendem a se tornar 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 categorizar os sistemas ponto a ponto de acordo com sua arquitetura. Os três principais tipos de redes P2P são chamados: 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. Esses sistemas são considerados robustos para atividades de alta rotatividade (ou seja, quando vários nós frequentemente entram ou saem da rede).
Embora sejam mais fáceis de construir, as redes P2P não estruturadas podem exigir mais uso de CPU e memória porque as consultas de pesquisa são enviadas para o maior número possível de pares. Isto tende a inundar a rede com consultas, especialmente se apenas um pequeno número de nós oferecer o conteúdo desejado.
Redes P2P estruturadas
Em contrapartida, as redes P2P estruturadas apresentam uma arquitetura organizada, que permite aos nós buscar arquivos de forma eficiente, mesmo quando o conteúdo não é amplamente divulgado. Na maioria dos casos, isso é conseguido através do emprego de funções hash que facilitam a pesquisa no banco de dados.
Embora as redes estruturadas possam ser mais eficientes, tendem a ter níveis mais elevados de centralização e, normalmente, custos de instalação e manutenção mais elevados. Além disso, as redes estruturadas são menos robustas a 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, eles podem designar um servidor central que facilite a conexão entre pares.
Em comparação com os outros dois tipos, os modelos híbridos tendem a apresentar melhor desempenho geral. Normalmente combinam algumas das principais vantagens de cada abordagem, permitindo-lhes alcançar graus significativos de eficiência e descentralização simultaneamente.
Distribuído vs. descentralizado
Embora a arquitetura P2P seja inerentemente distribuída, é importante notar que existem vários graus de descentralização. Assim, nem todas as redes P2P são descentralizadas.
Na verdade, muitos dependem de uma autoridade central que orienta a atividade da rede, tornando-os, até certo ponto, sistemas centralizados. Por exemplo, alguns sistemas de compartilhamento de arquivos P2P permitem que os usuários pesquisem e baixem arquivos de outros pares, mas não podem participar de outros processos, como o gerenciamento de consultas de pesquisa.
Além disso, o grau de centralização de pequenas redes, controladas por uma base limitada de utilizadores e com objectivos partilhados, pode ser considerado maior, apesar de carecerem 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 ou quaisquer servidores centrais. Além disso, qualquer pessoa pode configurar um nó Bitcoin se quiser participar do processo de verificação e validação do bloco.
Portanto, não existem bancos que processem ou registrem transações na rede Bitcoin. Em vez disso, o blockchain atua como um livro digital que registra publicamente todas as atividades. Basicamente, cada nó conté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. No entanto, é importante notar que nem todos os nós de validação completa 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 a 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 de adicionar dados a uma blockchain, é quase impossível para um invasor alterar os dados. Isto é especialmente verdadeiro para grandes redes como o 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 peer-to-peer distribuída, juntamente com um requisito de consenso majoritário, confere à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, os governos não podem congelar ou drenar carteiras de criptomoedas. 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 que terceiros bloqueiem seus pagamentos.
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 grande quantidade de poder computacional. Embora isto proporcione maior segurança, reduz enormemente 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 notáveis 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 podem 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 representam 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 da blockchain. Vários aplicativos e empresas P2P estiveram envolvidos em atividades ilegais e violações de direitos autorais.
Em conclusão
A arquitetura ponto a ponto pode ser desenvolvida e usada de muitas maneiras diferentes e é o núcleo dos blockchains que tornam possíveis as criptomoedas. 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.

