¿Qué es peer-to-peer (P2P)?

En informática, una red peer-to-peer, o red peer-to-peer (P2P), consta de un grupo de dispositivos que almacenan y comparten archivos colectivamente. Cada participante (nodo) actúa como un par individual. Normalmente, todos los nodos tienen la misma potencia y realizan las mismas tareas.

En tecnología financiera, el término peer-to-peer se utiliza a menudo para describir el proceso de intercambio de criptomonedas o activos digitales a través de una red distribuida. Las plataformas P2P permiten a compradores y vendedores realizar transacciones sin necesidad de intermediarios. En algunos casos, los sitios web también pueden proporcionar un entorno P2P para conectar a los prestamistas con los prestatarios.

La arquitectura P2P puede ser adecuada para muchos casos de uso diferentes, pero se hizo especialmente popular en la década de 1990, cuando se crearon los primeros programas para compartir archivos. Hoy en día, las redes P2P son el elemento central de la mayoría de las criptomonedas y constituyen una gran parte de la industria blockchain. Sin embargo, también se explotan en otras aplicaciones informáticas distribuidas, incluidos motores de búsqueda web, plataformas de transmisión por secuencias, mercados en línea y el protocolo web del Sistema de archivos interplanetario (IPFS).


¿Cómo funciona una red peer-to-peer?

En esencia, un sistema peer-to-peer lo mantiene una red distribuida de usuarios. Esta red normalmente no tiene un administrador o servidor central porque cada nodo almacena una copia de los archivos y cada nodo actúa como cliente y servidor para los demás nodos. Por lo tanto, cada nodo puede descargar archivos de otros nodos o cargar archivos en otros nodos. Esto es lo que diferencia las redes peer-to-peer de los sistemas servidor-cliente más tradicionales, en los que los dispositivos cliente descargan archivos desde un servidor centralizado.

En una red peer-to-peer, los dispositivos conectados comparten archivos almacenados 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, puede actuar como fuente de ese archivo.

En otras palabras, cuando un nodo actúa como cliente, descarga archivos de otros nodos de la red. Pero cuando actúan como servidor, son la fuente desde la cual otros nodos pueden descargar archivos. Sin embargo, en realidad, los botones pueden realizar dos funciones al mismo tiempo (por ejemplo, descargar el archivo A y cargar el archivo B).

Debido a que cada nodo tiene funciones para almacenar, transmitir y recibir archivos, las redes peer-to-peer tienden a operar más rápido y más eficientemente a medida que sus comunidades de usuarios crecen. Además, su arquitectura distribuida hace que los sistemas P2P sean altamente resistentes a los ciberataques. A diferencia de los modelos tradicionales, las redes P2P no tienen un único punto de falla.

Podemos clasificar los sistemas peer-to-peer según tres estilos arquitectónicos principales: redes peer-to-peer no estructuradas, estructuradas e híbridas.


Las redes peer-to-peer (P2P) no están estructuradas

Los nodos de una red P2P no estructurada no están organizados según ninguna estructura particular. Los participantes se comunican aleatoriamente entre sí. Estos sistemas se consideran robustos contra la pérdida de usuarios (donde ciertos nodos se unen y abandonan con frecuencia la red).

Aunque son más fáciles de construir, las redes P2P no estructuradas pueden requerir un mayor uso de memoria y CPU 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 solo hay una pequeña cantidad de nodos que proporcionan el contenido deseado.


Red estructurada de igual a igual (P2P)

Por el contrario, los nodos en una red P2P tienen una arquitectura organizada, lo que les permite buscar archivos de manera eficiente, incluso cuando el contenido no está ampliamente disponible. En la mayoría de los casos, esto se logra mediante el uso de funciones hash que permiten búsquedas en bases de datos.

Si bien las redes estructuradas pueden ser más eficientes, normalmente exhiben un mayor grado de centralización y a menudo requieren mayores costos de instalación y mantenimiento. Además, las redes son estructuralmente menos robustas cuando enfrentan una alta rotación de usuarios.


Red híbrida de igual a igual (P2P)

Las redes híbridas P2P combinan una arquitectura tradicional cliente-servidor con algunos aspectos de una arquitectura peer-to-peer. Por ejemplo, esta red puede diseñar un servidor central para crear conexiones entre computadoras pares en la red.

En comparación con las otras dos arquitecturas, los modelos híbridos suelen demostrar un mayor rendimiento operativo. Combinan las principales ventajas de cada método, proporcionando un grado significativo de eficiencia y descentralización.


Distribuido versus descentralizado

Aunque la arquitectura P2P es de naturaleza distribuida, es importante señalar que existen diferentes niveles de descentralización. Entonces no todas las redes P2P están descentralizadas.

De hecho, muchos sistemas dependen de un sistema central para ejecutar las operaciones de la red, lo que los hace algo centralizados. Por ejemplo, algunos sistemas de intercambio de archivos de igual a igual permiten a los usuarios buscar y descargar archivos de otros usuarios, pero ese usuario no puede participar en otros procesos, como la gestión de consultas de búsqueda.

Además, también se puede decir que las redes pequeñas controladas por una pequeña comunidad de usuarios con objetivos comunes tienen un mayor grado de centralización, a pesar de no tener una infraestructura de red centralizada.


El papel del P2P en blockchain

En las primeras etapas de Bitcoin, Satoshi Nakamoto lo definió como un "sistema de efectivo electrónico entre pares". Bitcoin se creó inicialmente como una forma de moneda digital. Se puede transferir de un usuario a otro a través de una red peer-to-peer, que gestiona un libro de contabilidad distribuido llamado blockchain.

En este contexto, es la arquitectura peer-to-peer, una tecnología central de blockchain, la que permite a los usuarios intercambiar Bitcoin y otras criptomonedas en todo el mundo sin necesidad de intermediarios ni servidores. Además, cualquiera puede convertirse en un nodo de la red Bitcoin si quiere participar en el proceso de verificación y validación de bloques.

Por lo tanto, no existe ningún banco que procese o registre transacciones en la red Bitcoin. En cambio, blockchain actúa como un libro de contabilidad digital que registra públicamente toda la actividad. Básicamente, cada nodo guarda una copia de la cadena de bloques y la compara con otros nodos para garantizar que los datos sean precisos. La red niega rápidamente cualquier actividad maliciosa o incorrecta.

En el contexto de las cadenas de bloques de criptomonedas, los nodos pueden asumir diferentes funciones. Por ejemplo, los nodos completos son nodos que ayudan a mantener la seguridad de la red verificando las transacciones de acuerdo 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 un trabajo conjunto para verificar el estado real del libro mayor distribuido. Sin embargo, vale la pena señalar que no todos los nodos con validación completa son mineros.


Ventajas de las redes peer-to-peer

La arquitectura peer-to-peer de Blockchain ofrece muchos beneficios. El beneficio más importante es que las redes peer-to-peer son más seguras que las arquitecturas tradicionales cliente-servidor. La distribución de las cadenas de bloques en una gran cantidad de nodos las hace prácticamente resistentes a los ataques de denegación de servicio (DoS) que se han utilizado para atacar muchos sistemas.

Del mismo modo, debido a que la mayoría de los nodos deben llegar a un consenso antes de agregar nuevos datos a la cadena de bloques, es casi imposible que un atacante cambie los datos. Esto es especialmente cierto para redes grandes como la red Bitcoin. Las cadenas de bloques más pequeñas son más vulnerables a los ataques porque una persona o grupo puede obtener control sobre la mayoría de los nodos (esto se conoce como ataque del 51%).

Por lo tanto, las redes distribuidas entre pares, cuando se combinan con el requisito de un consenso mayoritario, hacen que las cadenas de bloques sean altamente resistentes a actividades maliciosas. Es el modelo P2P el que hace posible que Bitcoin (y otras cadenas de bloques) alcancen la llamada tolerancia a fallos bizantinos.

Además de la seguridad, el uso de la arquitectura P2P en las cadenas de bloques de criptomonedas también las hace resistentes a la censura por parte de las autoridades centrales. A diferencia de las cuentas bancarias estándar, los gobiernos no pueden congelar ni vaciar las carteras de criptomonedas. Además, la arquitectura P2P también ayuda a las cadenas de bloques a resistir la censura de las plataformas de contenido privado y las plataformas de procesamiento de pagos. Algunos creadores de contenido y comerciantes en línea han adoptado pagos con criptomonedas como una forma de evitar el bloqueo de pagos por parte de terceros.


Limitaciones de las redes peer-to-peer

A pesar de muchas ventajas, el uso de redes P2P en blockchain también tiene ciertas limitaciones.

Debido a que el libro mayor distribuido debe actualizarse en cada nodo en lugar de en un servidor central, agregar transacciones a la cadena de bloques requiere una gran cantidad de potencia informática. Si bien esto aumenta la seguridad, reduce significativamente el rendimiento y es uno de los principales obstáculos para la escalabilidad y la adopción generalizada de la red. Sin embargo, los criptógrafos y los desarrolladores de blockchain están investigando alternativas que puedan usarse como soluciones de escalamiento. Ejemplos destacados incluyen los protocolos Lightning Network, Ethereum Plasma y Mimblewimble.

Otra posible limitación se refiere a los ataques que pueden surgir durante eventos de división de cadena (bifurcación dura). Dado que la mayoría de las cadenas de bloques son descentralizadas y de código abierto, los grupos de nodos son libres de copiar y modificar el código y separarse de la cadena principal para formar una nueva red paralela. Las divisiones de cadena (bifurcaciones duras) son completamente normales y no representan una amenaza en sí mismas. Sin embargo, si ciertos métodos de seguridad no se aplican correctamente, ambas cadenas pueden convertirse fácilmente en blanco de ataques de repetición.

Además, la naturaleza distribuida de las redes P2P las hace relativamente difíciles de controlar y regular, sobre todo en el segmento blockchain. Algunas aplicaciones y empresas P2P se han involucrado en actividades ilegales y piratería.


Concluir

La arquitectura peer-to-peer es el elemento central de la tecnología blockchain: la base de las criptomonedas. Hay muchas formas de desarrollar y utilizar una arquitectura peer-to-peer. Al dispersar los libros de transacciones en una gran red de nodos, la arquitectura P2P proporciona seguridad, descentralización y resistencia a la censura.

Además de sus beneficios en la tecnología blockchain, los sistemas P2P también se pueden aplicar en otras aplicaciones informáticas distribuidas, desde redes de intercambio de archivos hasta plataformas de comercio de energía.