¿Qué significa peer-to-peer (P2P)?
En las ciencias computacionales, una red peer-to-peer (P2P) se define como un grupo de dispositivos que almacenan y comparten archivos de forma colectiva. Cada participante (nodo) actúa como par individual. Normalmente, todos los nodos tienen el mismo poder y ejecutan las mismas tareas.
En la tecnología enfocada a finanzas, el término peer-to-peer habitualmente alude al intercambio de criptomonedas o activos digitales a través de una red distribuida. Las plataformas P2P permiten a los compradores y vendedores ejecutar operaciones sin necesidad de intermediarios. En algunos casos, páginas web pueden proporcionar también un entorno P2P que conecte a prestamistas y prestatarios.
La arquitectura P2P puede resultar adecuada para varios casos de uso, pero se hizo especialmente popular en los 90, cuando los primeros programas de compartición de archivos fueron creados. En la actualidad, las redes P2P sirven de base de la mayoría de criptomonedas, y conforman gran parte de la industria blockchain. Sin embargo, también se aprovechan en otras aplicaciones informáticas distribuidas, entre las que se encuentran los motores de búsqueda web, las plataformas de streaming, los marketplaces online y el protocolo web InterPlanetary File System (IPFS).
¿Cómo funciona un sistema P2P?
En esencia, los sistemas P2P son mantenidos por redes distribuidas de usuarios. Habitualmente, no disponen de un administrador o servidor central, porque cada nodo dispone de una copia de los archivos -actuando tanto como cliente y servidor para el resto de nodos. Así, cada nodo puede descargarse archivos de otros nodos, o subir archivos a los mismos. Esto es lo que diferencia a las redes P2P de los sistemas cliente-servidor más tradicionales, en los que los dispositivos cliente descargan los archivos de un servidor centralizado.
En las redes P2P, los dispositivos conectados comparten archivos que se encuentran almacenados en sus discos duros. Empleando aplicaciones de tipo software diseñadas para mediar en la compartición de datos, los usuarios pueden realizar consultas (query) a otros dispositivos de la red para encontrar y descargar archivos. A partir del momento en que un usuario haya descargado un archivo concreto, podrá actuar como fuente del mismo.
En otras palabras, cuando un nodo actúe como cliente, descargará archivos de otros nodos de la red. Mientras que cuando funcione como servidor, se convertirá en la fuente desde la que otros nodos podrán descargar los archivos. En la práctica, sin embargo, ambas funciones pueden llevarse a cabo de forma simultánea (por ejemplo, descargando el archivo A y subiendo el B).
Dado que cada nodo almacena, transmite y recibe archivos, las redes P2P tienden a volverse 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 presentan un single point of failure (punto único de fallo).
Podemos categorizar los sistemas peer-to-peer de acuerdo a su arquitectura. Los tres tipos principales de redes P2P se denominan: 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 entre sí de forma aleatoria. Estos sistemas se consideran robustos frente a la actividad de alta rotación (es decir, cuando múltiples nodos se unen o abandonan la red de manera frecuente).
A pesar de que 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 (search queries) se envían al mayor número de pares posible. Esto tiende a inundar la red de consultas, especialmente, si sólo un pequeño número de nodos ofrece el contenido deseado.
Redes P2P estructuradas
En contraposición, las redes P2P estructuradas presentan una arquitectura organizada, que permite a los nodos buscar archivos de forma eficiente, incluso cuando el contenido no presenta una amplia difusión. En la mayoría de casos, esto se logra mediante el empleo de funciones hash que facilitan la búsqueda en bases de datos.
A pesar de que las redes estructuradas pueden ser más eficientes, tienden a presentar niveles más elevados de centralización y, habitualmente, mayores costes de instalación y mantenimiento. Aparte de eso, las redes estructuradas son menos robustas frente a tasas de rotación altas.
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 poner un ejemplo, pueden designar 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. Habitualmente, combinan algunas de las ventajas principales de cada enfoque, lo que les permite alcanzar grados significativos de eficiencia y descentralización de forma simultánea.
Distribuido vs. descentralizado
A pesar de que la arquitectura P2P es, de forma inherente, distribuida, resulta importante señalar que existen diversos grados de descentralización. Así, no todas las redes P2P son descentralizadas.
De hecho, muchas dependen de una autoridad central que guía la actividad de la red, lo que hace que sean, en cierta medida, sistemas centralizados. Por ejemplo, algunos sistemas de compartición de archivos P2P permiten a los usuarios buscar y descargar archivos de otros pares, pero son incapaces de participar en otros procesos, como por ejemplo, la gestión de consultas de búsqueda (search queries).
Además, el grado de centralización de las redes pequeñas, controladas por una base de usuarios limitada y con objetivos compartidos, puede considerarse mayor, a pesar de carecer de una infraestructura de red centralizada.
El rol de P2P en Blockchains
En las primeras etapas de Bitcoin, Satoshi Nakamoto lo definió como un “Sistema de cash (Dinero en efectivo) electrónico peer to peer”. Bitcoin se creó como una forma digital de dinero. Se puede transferir de un usuario a otro a través de una red P2P, que gestiona un libro mayor distribuido llamado blockchain.
En este contexto, la arquitectura P2P que es inherente a la tecnología blockchain es lo que permite que Bitcoin y otras criptomonedas se transfieran a todo el mundo, sin la necesidad de intermediarios ni ningún servidor central. Además, cualquiera puede configurar un nodo de 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 blockchain actúa como un libro de contabilidad digital que registra públicamente toda la actividad. Básicamente, cada nodo contiene una copia de la blockchain 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 blockchains de criptomonedas, los nodos pueden asumir una variedad de roles diferentes. Los nodos completos, por ejemplo, son los que proporcionan 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 blockchain, 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 ofrece muchos beneficios. Entre los más importantes está el hecho de que las redes P2P ofrecen mayor seguridad que los arreglos tradicionales de cliente-servidor. La distribución de blockchains en un gran número de nodos los hace prácticamente inmunes a los ataques de Denegación de servicio (DoS) que afectan a numerosos sistemas.
Del mismo modo, dado que la mayoría de los nodos deben establecer un consenso antes de agregar datos a una blockchain, es casi imposible que un atacante altere los datos. Esto es especialmente cierto para grandes redes como la de Bitcoin. Las blockchains más pequeñas son más susceptibles a los ataques porque una persona o grupo eventualmente podría 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 de peer to peer junto con un requisito de consenso mayoritario, otorga a las blockchains un grado relativamente alto de resistencia a la actividad maliciosa. El modelo P2P es una de las razones por las que Bitcoin (y otras blockchains) pudieron lograr la llamada Tolerancia a fallas bizantinas.
Más allá de la seguridad, el uso de la arquitectura P2P en blockchains 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 drenar los monederos de criptomonedas. Esta resistencia también se extiende a los esfuerzos de censura por parte del procesamiento de pagos privados y las plataformas de contenido. Algunos creadores de contenido y comerciantes en línea adoptaron pagos de 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 distribuidos deben actualizarse en cada nodo en lugar de en un servidor central, agregar transacciones a una blockchain requiere una gran 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 escalado. Entre los ejemplos más destacados se incluyen Lightning Network, Ethereum Plasma y el protocolo Mimblewimble.
Otra limitación potencial se relaciona con los ataques que pueden surgir durante los eventos de hard fork. Como la mayoría de las blockchains son descentralizadas y 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. Los hard forks son completamente normales y no representan 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 de blockchain. Varias aplicaciones y empresas P2P se involucraron con actividades ilegales e infracciones de derechos de autor.
En conclusión
La arquitectura peer-to-peer se puede desarrollar y usar de muchas maneras diferentes, y es el núcleo de las blockchain que hacen posibles las criptomonedas. Al distribuir los libros 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 a otras aplicaciones informáticas distribuidas, que van desde redes de intercambio de archivos hasta plataformas de trading de energía.