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

En informática, una 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 suele referirse 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 diversos 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 son 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 motores de búsqueda web, plataformas de transmisión por secuencias, mercados en línea y el protocolo web InterPlanetary File System (IPFS).


¿Cómo funciona el P2P?

En esencia, un sistema P2P lo mantiene 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 cargar archivos en ellos. Esto es lo que diferencia 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 cual 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 crece su base de usuarios. 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 único punto de falla.

Podemos clasificar los sistemas peer-to-peer según 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 aleatoriamente entre sí. Estos sistemas se consideran robustos contra una alta actividad de abandono (es decir, varios nodos que se unen y salen con frecuencia de 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 un pequeño número de nodos ofrece el contenido deseado.


Redes P2P estructuradas

Por el contrario, 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 las búsquedas en bases de datos.

Si bien las redes estructuradas pueden ser más eficientes, tienden a presentar niveles más altos de centralización y, por lo general, requieren mayores costos de instalación y mantenimiento. Aparte de eso, las redes estructuradas son menos sólidas cuando enfrentan altas tasas de abandono.


Redes P2P híbridas

Las redes híbridas P2P combinan el modelo cliente-servidor convencional con algunos aspectos de la arquitectura peer-to-peer. Por ejemplo, su diseño puede contener 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. Generalmente combinan algunas de las principales ventajas de cada enfoque, logrando grados significativos de eficiencia y descentralización simultáneamente.


Distribuido versus descentralizado

Aunque la arquitectura P2P está inherentemente distribuida, es importante tener en cuenta que existen distintos 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 vuelve 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 gestionar 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 del P2P en las blockchains

En las primeras etapas de Bitcoin, Satoshi Nakamoto lo definió como un "sistema de efectivo electrónico entre pares". Bitcoin fue creado como una forma digital de dinero. Puede transferirse de un usuario a otro a través de una red P2P, que gestiona un libro de contabilidad distribuido llamado blockchain.

En este contexto, la arquitectura P2P inherente a la tecnología blockchain es la que permite transferir bitcoin y otras criptomonedas a nivel mundial, sin necesidad de intermediarios ni de ningún servidor central. Además, cualquiera puede configurar un nodo Bitcoin si desea participar en el proceso de verificación y validación de bloques.

Por lo tanto, 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 inexacta.

En el contexto de las cadenas de bloques de criptomonedas, los nodos pueden asumir una variedad de funciones 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 completa son mineros.


Ventajas

La arquitectura peer-to-peer de blockchain ofrece muchos beneficios. Entre los más importantes está el hecho de que las redes P2P ofrecen mayor seguridad que los acuerdos 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 (DoS) 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 en el caso de grandes redes 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 sobre la mayoría de los nodos (esto se conoce como un ataque del 51 por ciento).

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 alcanzar la llamada tolerancia a fallos bizantinos.

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 por parte de las autoridades centrales. A diferencia de las cuentas bancarias estándar, los gobiernos no pueden congelar ni vaciar las billeteras de criptomonedas. Esta resistencia también se extiende a los esfuerzos de censura por parte de plataformas privadas de contenido y procesamiento de pagos. 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 numerosas 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 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 puedan usarse como soluciones de escalamiento. Ejemplos destacados incluyen Lightning Network, Ethereum Plasma y el protocolo Mimblewimble.

Otra posible limitación se relaciona con los ataques que pueden surgir durante eventos de 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 bifurcaciones duras son completamente normales y no representan una amenaza por sí solas. Pero si ciertos métodos de seguridad no se adoptan adecuadamente, ambas cadenas pueden volverse vulnerables a ataques de repetición.

Además, la naturaleza distribuida de las redes P2P las hace relativamente difíciles de controlar y regular, no sólo en el nicho de 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 maneras diferentes, y es el núcleo de las cadenas de bloques lo que hace posibles las criptomonedas. Al distribuir libros de transacciones a través de 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.