Internet bajo Peer-To-Peer: de camino a la descentralización de la web

El P2P, el protocolo de comunicación entre pares, en el que uno mismo hace de cliente y servidor, está de moda.

bittorrent project maelstrom

Está de moda con la caída y renacimiento de TPB, que ahora tendrá que hacer frente (afortunadamente) a varios clones mejor posicionados. Está de moda con las monedas virtuales, y más concretamente, con los algoritmos de minería que le otorgan valor.

Esta de moda como método de comunicación, e incluso como sistema de reparto igualitario de acceso a la red. Está de moda por representar en un entorno fuertemente controlado (gobiernos, empresas, cibercriminales), una de las alternativas más plausibles para favorecer la descentralización de la red.

Y dentro de poco, quizás también esté de moda como cimiento de una internet que no entiende de fronteras.

Así al menos lo entiende un servidor cuando echa un ojo al proyecto Maelstrom (EN), dirigido por BitTorrent, y que tiene particularidad de ofrecer un sistema de compartición de webs basado en Chromium.

¿Cómo funciona? Muy sencillo. El administrador tiene su web albergada en uno o varios ordenadores conectados a la red (ojo, que no hablamos necesariamente de servidores). Cada usuario que se conecta descarga la web, y mientras siga con acceso a internet, hace las veces también de servidor, de tal manera que el siguiente usuario tendrá para acceder los servidores del administrador y del usuario anterior, y así indefinidamente.

¿Cuáles son sus ventajas? Principalmente dos: la descentralización y la curva inversa de rendimiento/recursos.

La arquitectura actual de internet es centralizada. Para acceder a esta web, usted está realizando una petición a un servidor, que le entrega el contenido, y luego su navegador lo procesa. Esto quiere decir que a mayor número de peticiones, mayor potencia demandada por parte del servidor, y por tanto menor rendimiento, lo que hace que las webs acaben por caerse o ralentizarse frente a subidas drásticas de volumen de usuarios.

Para suplir esto, se recurren a apaños, como las redes CDN, la virtualización de servidores y los balanceadores de carga, pero en todo caso es un problema que obliga a destinar mayores recursos conforme un proyecto tiene más éxito.

¿Qué ocurre en una red P2P? Justo lo contrario. A mayor volumen, mayor número de seeders (usuarios que proveen el contenido), y por tanto, mayor rendimiento, lo cual repercute directamente en el negocio (conforme el proyecto escala, los recursos necesarios se mantienen o incluso podrían reducirse).

Y tiene una lectura aún más importante. Descentralización de servidores significa menor capacidad para ejercer control. Es decir, en un panorama en el que una web esté distribuida por miles de seeders, si un gobierno o entidad quiere censurarla (bien tirándola abajo o bien implantando bloqueos digitales), tendría que ir uno a uno bloqueándola, y no únicamente buscando el proveedor del servicio.

Todo muy bonito sobre el papel, claro está. Ahora hay que ver la realidad del asunto.

Y es que pese a lo que nos gustaría, el proyecto está aún en fase alpha. Por ahora, funciona muy bien… para webs estáticas, con vídeo y audio. En cuanto se precisa un servidor por detrás la cosa se complica.

Técnicamente es posible, pero para ello, sería preciso que cambiara para siempre la infraestructura y prioridades de los que suministran internet.

A nivel usuario, precisaríamos de dispositivos con un almacenamiento alto (totalmente viable) con unas conexiones como mínimo simétricas (viable pero por ahora más caro que el tradicional desequilibrio entre Mbs de bajada y subida) y con tarifa plana real (nada de unos cuantos gigas, ya que estaríamos permanentemente conectados sirviendo webs a terceros). También hablaríamos o bien de webs sin un back-end que precisara servidor (también viable, aunque obligaría a migrar un porcentaje demasiado alto de páginas) o un servidor encapsulado en cada dispositivo (quizás en el propio navegador), lo que llevaría previsiblemente a un aumento exponencial de la carga del procesador (tendríamos que pensar en procesadores más preparados para este tipo de trabajos) y por tanto, mayor gasto energético (lo que echaría por tierra la autonomía de dispositivos móviles).

Todo esto sin olvidarnos de la seguridad, ya que habría que facilitar un sistema opaco que validase la originalidad de la web, para evitar que un seeder pudiera modificar el código. Algo semejante al sistema de firmas criptográficas de Bitcoin, aplicado a los archivos de una web.

Entraña retos interesantes, como el cómo mantener la dinámica de una página sin una base de datos centralizada (por ejemplo, un foro o una red social). ¿Descargamos todos todo continuamente? ¿Mantenemos algunos repositorios centralizados, y el resto descarga solo lo que necesite, haciendo de par para ese trozo de contenido?

Y pese a todo, una vía interesante para la evolución de internet, con obstáculos complejos pero salvables.

Por lo pronto el que firma este artículo ya ha pedido acceso (EN), aunque sea para trastear un ratejo con ello y ver cómo prospera. ¿Se apunta?