¿Qué es peer-to-peer (P2P)?
En ciencias de la computación, una red peer-to-peer (P2P) consiste en un grupo de dispositivos que almacenan y comparten archivos colectivamente. Cada participante (nodo) actúa como un par individual. Normalmente, todos los nodos tienen el mismo poder y realizan las mismas tareas.
En tecnología financiera, el término peer-to-peer generalmente se refiere al intercambio de criptomonedas o activos digitales a través de una red distribuida. Una plataforma P2P permite a compradores y vendedores ejecutar operaciones sin necesidad de intermediarios. En algunos casos, los sitios web también pueden proporcionar un entorno P2P que conecta a prestamistas y prestatarios.
La arquitectura P2P puede ser adecuada para varios casos de uso, pero se hizo particularmente popular en la década de 1990 cuando se crearon los primeros programas para compartir archivos. Hoy en día, las redes P2P se encuentran en el núcleo de la mayoría de las criptomonedas y constituyen una gran parte de la industria blockchain. Sin embargo, también se aprovechan en otras aplicaciones informáticas distribuidas, incluidos los motores de búsqueda web, las plataformas de transmisión, los mercados en línea y el protocolo web del Sistema de archivos interplanetarios (IPFS).
¿Cómo Funciona el P2P?
En esencia, un sistema P2P es mantenido por una red distribuida de usuarios. Por lo general, no tienen un administrador o servidor central porque cada nodo contiene una copia de los archivos, actuando como cliente y como servidor para otros nodos. Por lo tanto, cada nodo puede descargar archivos de otros nodos o cargarlos en ellos. Esto es lo que diferencia a las redes P2P de los sistemas cliente-servidor más tradicionales, en los que los dispositivos cliente descargan archivos desde un servidor centralizado.
En las redes P2P, los dispositivos conectados comparten archivos que se almacenan en sus discos duros. Utilizando aplicaciones de software diseñadas para mediar en el intercambio de datos, los usuarios pueden consultar otros dispositivos en la red para buscar y descargar archivos. Una vez que un usuario ha descargado un archivo determinado, puede actuar como fuente de ese archivo.
Dicho de otra manera, cuando un nodo actúa como cliente, descarga archivos de otros nodos de la red. Pero cuando funcionan como servidor, son la fuente desde la que otros nodos pueden descargar archivos. Sin embargo, en la práctica, ambas funciones se pueden ejecutar al mismo tiempo (por ejemplo, descargar el archivo A y cargar el archivo B).
Dado que cada nodo almacena, transmite y recibe archivos, las redes P2P tienden a ser más rápidas y eficientes a medida que su base de usuarios crece. Además, su arquitectura distribuida hace que los sistemas P2P sean muy resistentes a los ciberataques. A diferencia de los modelos tradicionales, las redes P2P no tienen un solo punto de falla.
Podemos categorizar los sistemas peer-to-peer de acuerdo con su arquitectura. Los tres tipos principales se denominan redes P2P no estructuradas, estructuradas e híbridas.
Redes P2P no Estructuradas
Las redes P2P no estructuradas no presentan ninguna organización específica de los nodos. Los participantes se comunican al azar entre sí. Estos sistemas se consideran robustos contra una alta actividad de abandono; es decir, varios nodos que se unen y abandonan con frecuencia en la red.
Aunque son más fáciles de construir, las redes P2P no estructuradas pueden requerir un mayor uso de CPU y memoria porque las consultas de búsqueda se envían al mayor número posible de pares. Esto tiende a inundar la red con consultas, especialmente si una pequeña cantidad de nodos ofrece el contenido deseado.
Redes P2P Estructuradas
En contraste, las redes P2P estructuradas presentan una arquitectura organizada, lo que permite a los nodos buscar archivos de manera eficiente, incluso si el contenido no está ampliamente disponible. En la mayoría de los casos, esto se logra mediante el uso de funciones hash que facilitan la búsqueda de bases de datos.
Si bien las redes estructuradas pueden ser más eficientes, tienden a presentar niveles más altos de centralización y generalmente requieren mayores costos de instalación y mantenimiento. Aparte de eso, las redes estructuradas son menos robustas cuando se enfrentan a altas tasas de abandono.
Redes P2P Híbridas
Las redes P2P híbridas combinan el modelo cliente-servidor convencional con algunos aspectos de la arquitectura peer-to-peer. Por ejemplo, puede diseñar un servidor central que facilite la conexión entre pares.
En comparación con los otros dos tipos, los modelos híbridos tienden a presentar un rendimiento general mejorado. Suelen combinar algunas de las principales ventajas de cada enfoque, logrando importantes grados de eficiencia y descentralización simultáneamente.
Distribuido vs Descentralizado
Aunque la arquitectura P2P está intrínsecamente distribuida, es importante tener en cuenta que existen diversos grados de descentralización. Entonces, no todas las redes P2P están descentralizadas.
De hecho, muchos sistemas dependen de una autoridad central para guiar la actividad de la red, lo que los hace algo centralizados. Por ejemplo, algunos sistemas de intercambio de archivos P2P permiten a los usuarios buscar y descargar archivos de otros usuarios, pero no pueden participar en otros procesos, como la gestión de consultas de búsqueda.
Además, también se podría decir que las redes pequeñas controladas por una base de usuarios limitada con objetivos compartidos tienen un mayor grado de centralización, a pesar de la falta de una infraestructura de red centralizada.
El Papel de P2P en Blockchains
En las primeras etapas de Bitcoin, Satoshi Nakamoto lo definió como un «Sistema de efectivo electrónico de igual a igual». Bitcoin fue creado como una forma de dinero digital. Se puede transferir de un usuario a otro a través de una red P2P, que administra un libro mayor distribuido llamado blockchain.
En este contexto, la arquitectura P2P que es inherente a la tecnología blockchain es la que permite transferir Bitcoin y otras criptomonedas a todo el mundo, sin necesidad de intermediarios ni servidor central. Además, cualquier persona puede configurar un nodo Bitcoin si desea participar en el proceso de verificación y validación de bloques.
Entonces, no hay bancos que procesen o registren transacciones en la red Bitcoin. En cambio, la cadena de bloques actúa como un libro de contabilidad digital que registra públicamente toda la actividad. Básicamente, cada nodo contiene una copia de la cadena de bloques y la compara con otros nodos para garantizar que los datos sean precisos. La red rechaza rápidamente cualquier actividad maliciosa o inexactitud.
En el contexto de las cadenas de bloques de criptomonedas, los nodos pueden asumir una variedad de roles diferentes. Los nodos completos, por ejemplo, son los que brindan seguridad a la red al verificar las transacciones con las reglas de consenso del sistema.
Cada nodo completo mantiene una copia completa y actualizada de la cadena de bloques, lo que les permite participar en el trabajo colectivo de verificar el verdadero estado del libro mayor distribuido. Sin embargo, vale la pena señalar que no todos los nodos de validación completos son mineros.
Ventajas
La arquitectura peer-to-peer de blockchains proporciona muchos beneficios. Entre los más importantes se encuentra el hecho de que las redes P2P ofrecen mayor seguridad que los arreglos tradicionales cliente-servidor. La distribución de blockchains en una gran cantidad de nodos los hace prácticamente inmunes a los ataques de Denegación de Servicio que afectan a numerosos sistemas.
Del mismo modo, debido a que la mayoría de los nodos deben establecer un consenso antes de agregar datos a una cadena de bloques, es casi imposible que un atacante altere los datos. Esto es especialmente cierto para redes grandes como la de Bitcoin. Las cadenas de bloques más pequeñas son más susceptibles a los ataques porque una persona o grupo podría eventualmente lograr el control de la mayoría de los nodos; esto se conoce como un ataque del 51 %.
Como resultado, la red distribuida peer-to-peer, junto con un requisito de consenso mayoritario, otorga a las cadenas de bloques un grado relativamente alto de resistencia a la actividad maliciosa. El modelo P2P es una de las razones por las que Bitcoin (y otras cadenas de bloques) pudieron lograr la llamada tolerancia a fallas bizantina.
Más allá de la seguridad, el uso de la arquitectura P2P en las cadenas de bloques de criptomonedas también las hace resistentes a la censura de las autoridades centrales. A diferencia de las cuentas bancarias estándar, los gobiernos no pueden congelar ni agotar las billeteras de criptomonedas.
Esta resistencia también se extiende a los esfuerzos de censura por parte de plataformas de contenido y procesamiento de pagos privados. Algunos creadores de contenido y comerciantes en línea adoptaron los pagos con criptomonedas como una forma de evitar que terceros bloqueen sus pagos.
Limitaciones
A pesar de sus muchas ventajas, el uso de redes P2P en blockchains también tiene ciertas limitaciones. Debido a que los libros de contabilidad distribuidos deben actualizarse en cada nodo en lugar de en un servidor central, agregar transacciones a una cadena de bloques requiere una enorme cantidad de potencia informática.
Si bien esto proporciona una mayor seguridad, reduce en gran medida la eficiencia y es uno de los principales obstáculos cuando se trata de escalabilidad y adopción generalizada. No obstante, los criptógrafos y los desarrolladores de blockchain están investigando alternativas que pueden usarse como soluciones de escala. Ejemplos destacados incluyen Lightning Network, Ethereum Plasma y el protocolo Mimblewimble.
Otra limitación potencial se relaciona con los ataques que pueden surgir durante eventos de hard fork. Dado que la mayoría de las cadenas de bloques están descentralizadas y son de código abierto, los grupos de nodos pueden copiar y modificar el código y separarse de la cadena principal para formar una nueva red paralela. Las bifurcaciones duras son completamente normales y no son una amenaza por sí mismas. Pero si ciertos métodos de seguridad no se adoptan correctamente, ambas cadenas pueden volverse vulnerables a los ataques de repetición.
Además, la naturaleza distribuida de las redes P2P las hace relativamente difíciles de controlar y regular, no solo en el nicho blockchain. Varias aplicaciones y empresas P2P se involucraron en actividades ilegales e infracciones de derechos de autor.
Pensamientos Finales
La arquitectura peer-to-peer se puede desarrollar y utilizar de muchas formas diferentes, y es el núcleo de las cadenas de bloques que hacen posible las criptomonedas. Al distribuir libros de contabilidad de transacciones en grandes redes de nodos, la arquitectura P2P ofrece seguridad, descentralización y resistencia a la censura.
Además de su utilidad en la tecnología blockchain, los sistemas P2P también pueden servir para otras aplicaciones informáticas distribuidas, que van desde redes de intercambio de archivos hasta plataformas de comercio de energía.