← Volver al blog

Fundamentos · Infraestructura

Redes P2P. Por qué la arquitectura peer-to-peer es obligatoria para que blockchain funcione

Imagina que quieres enviar un archivo a mil personas. Tienes dos opciones. Primera, centralizada: subes el archivo a un servidor en internet, y todos descargan desde ese servidor. Segunda, distribuida: tu computadora lo envía directamente a tus amigos, tus amigos lo envían a sus amigos, y así sucesivamente hasta que el archivo llega a todos. Ese segundo modelo se llama peer-to-peer (P2P). Funciona diferente porque no hay intermediario. Es más lento en algunos aspectos, más rápido en otros, y casi imposible censurar.

Una red peer-to-peer es una arquitectura donde cada participante (llamado peer o nodo) tiene capacidades equivalentes. No existe un servidor central que controla todo. Cada nodo es simultáneamente cliente y servidor: descarga datos de otros nodos y también sirve datos a otros nodos. Esta simetría es lo que distingue a las redes P2P de las redes cliente-servidor tradicionales donde una máquina central sirve a muchas máquinas periféricas.

Las redes cliente-servidor: el modelo centralizado

Para entender por qué P2P es importante, primero mira cómo funcionan actualmente la mayoría de servicios de internet. Cuando accedes a Gmail, instagram o Netflix, estás conectándote a servidores centralizados. Google tiene data centers en múltiples ubicaciones geográficas, pero esos data centers están bajo el control de Google. Si Google decide bloquear tu cuenta, eso sucede en un lugar. Si el gobierno presiona a Google para que elimine tu contenido, Google puede hacerlo porque controla los servidores. Si Google tiene un fallo de seguridad, tus datos están en riesgo.

El beneficio del modelo centralizado es la velocidad y la consistencia. Google puede garantizar que cuando escribes un email, ese email se guarda inmediatamente en sus sistemas. Pueden indexar todo el contenido de internet porque lo almacenan centralmente. Pueden mostrar a cada usuario una vista consistente de su cuenta.

El costo es que confías completamente en esa compañía. Si Google decide que no eres bienvenido, desapareces. Si un gobierno decide que tu contenido es ilegal, puede obligar a Google a eliminarlo sin tu consentimiento.

Redes P2P en el mundo no-blockchain

BitTorrent es el ejemplo más antiguo. Cuando descargas un archivo BitTorrent, no descargas desde un servidor central. Descargas fragmentos del archivo desde múltiples personas que también tienen esos fragmentos. A su vez, mientras descargas, tu computadora sirve esos fragmentos a otras personas. El efecto es que el costo de distribución se distribuye entre todos los participantes. Ninguna persona o compañía controla el sistema. Si el gobierno cierra un sitio de torrents, puedes seguir compartiendo archivos porque el archivo no vive en un lugar, vive en las computadoras de todos los que lo descargaron.

Lo importante de este ejemplos es que ninguno requiere confianza en una institución central. El sistema funciona porque cada participante está motivado a participar.

Cómo funcionan técnicamente las redes P2P

Una red P2P necesita resolver varios problemas. Primero, descubrimiento de pares: ¿cómo encuentra tu nodo otros nodos para conectarse? Bitcoin resuelve esto manteniendo una lista de servidores "seed" que tu nodo contacta para obtener direcciones de otros nodos. Una vez que te conectas a algunos nodos, ellos te presentan a otros nodos que conocen. La red se construye a partir de esas conexiones.

Segundo, enrutamiento de mensajes es cuando envías un mensaje a un nodo que no está directamente conectado, ¿cómo llega? En Bitcoin, el mensaje se propaga a través de todos los nodos vecinos hasta que llega al destino. No existe un "mejor camino" precalculado porque no existe punto central que lo calcule.

Tercero, sincronización de estado: si todos los nodos tienen copias del ledger, ¿cómo se aseguran que están sincronizados cuando algunos están offline? En Bitcoin, tu nodo descarga los bloques más recientes de otros nodos y verifica que cada bloque es válido según las reglas. Una vez que verificas, aceptas que ese bloque es parte de tu copia del ledger.

Cuarto, resistencia a ataques: si alguien intenta contaminar la red enviando información falsa, ¿cómo se defiende? En Bitcoin, cada nodo verifica independientemente cada bloque. Si un atacante intenta crear un bloque falso, los nodos lo rechazan inmediatamente. Si un atacante intenta enviar un mensaje corrupto, los nodos lo descartan.

Los riesgos reales de las redes P2P

La mayor debilidad de P2P es la latencia. En una red centralizada, todos acceden a la misma copia del servidor, por lo que la consistencia es trivial. En una red P2P, si tu nodo recibe información diferente de dos pares, ambas podrían ser "correctas" según la información que cada par ha visto. Bitcoin resuelve esto requiriendo que los nodos acuerden un consenso sobre la cadena más larga de bloques válidos. Pero esto introduce complejidad.

El segundo riesgo es la privacidad de la red. Si tu computadora envía un mensaje en una red P2P, otros nodos ven que ese mensaje viene de ti aunque no vean el contenido. En Bitcoin, los analistas pueden rastrear transacciones identificando patrones de propagación. Tu dirección IP puede revelar tu ubicación aproximada.

El tercer riesgo es la resistencia. Una red P2P distribuida es más resistente a cortes centralizados, pero sigue siendo vulnerable. Si un gobierno bloquea todas las conexiones de internet a un país, los nodos en ese país no pueden alcanzar el resto de la red. Si todos tus pares están comprometidos por un atacante, tu nodo recibe solo información falsa. En práctica, Bitcoin es resiliente porque hay nodos en cientos de países con infraestructura de internet redundante.

El cuarto riesgo es que P2P es más lento. Bitcoin procesa 7 transacciones por segundo. Visa procesa decenas de miles. La razón es que Bitcoin requiere que miles de nodos lleguen a consenso sobre cada transacción. Eso toma tiempo. Para aplicaciones donde la velocidad es crítica, P2P puro puede no ser adecuado.

¿Cómo elegir?

Cuando evalúas si deberías usar una aplicación P2P en lugar de centralizada, pregúntate: ¿necesito censura-resistencia o solo eficiencia? Si necesitas que nadie pueda apagar el sistema, P2P es obligatorio. Si necesitas que nadie pueda manipular los datos, P2P es obligatorio. Si necesitas que los datos vivan en múltiples lugares para que ningún actor tenga poder absoluto, P2P es obligatorio.

Pero si necesitas velocidad, consistencia y control centralizado, una arquitectura cliente-servidor es mejor.

Para entender cómo P2P conecta con los mecanismos de consenso que permiten a miles de nodos independientes coordinarse, consulta nuestro análisis sobre mecanismos de consenso en blockchain y cómo funcionan Proof of Work y Proof of Stake.

Antes de irse

Reciba el próximo newsletter.

← Volver al blog