¿Qué es una red P2P?

Una red P2P, o peer-to-peer, es una red donde un grupo de personas o máquinas participan de forma completamente descentralizada. Es decir, es una red donde no hay un punto central de conexión, y donde las partes actúan de forma autónoma respondiendo a un protocolo común. Con ello, los integrantes de la red pueden intercambiar información de forma directa y sin intermediarios.

Para su funcionamiento, las redes P2P se construyen sobre protocolos que se ejecutan sobre los protocolos de Internet. De allí que sus protocolos se les denominan protocolos de aplicación o Layer 7, según el modelo Open Systems Interconnection u OSI.

Los protocolos P2P, han sido ampliamente utilizados desde su creación para distintos usos. Algunos legales, otros un tanto grises, pero pese a ello, hay una cosa muy clara, el protocolo P2P es muy potente y permite la creación de estructuras descentralizadas, difícilmente censurables y de uso libre. Por esa razón, criptomonedas como Bitcoin fueron construidas sobre la base de protocolos P2P.

Dicho esto, conozcamos un poco más sobre estos protocolos y su evolución.

Origen e historia del P2P

El origen de la primera red P2P la podemos rastrear hasta la creación del protocolo UUCP o Unix to Unix Copy Protocol, en 1980. Este protocolo dio origen a la red USENET y a los BBS, redes que aún se encuentran activas y funcionando en nuestro tiempo.

El principio de funcionamiento de estos sistemas es sencillo: la máquina realizaba una llamada de conexión (conexión por marcación) usando un modem. Pero gracias al protocolo UUCP, la maquina se podía comunicar con otra máquina objetivo, compartiendo información en ese proceso. Al terminar la llamada la conexión, se podía dar inicio a otra conexión con otra máquina. Y todo era posible sin una estructura como la del Internet que conocemos hoy, una red y tecnología que para ese entonces aún estaba en desarrollo.

En su momento, USENET y el protocolo UUCP fueron la cumbre de las comunicaciones. De hecho, el movimiento cypherpunk inició con el uso de este protocolo. Personajes como Saint Jude, Eric Hughes, Timothy C. May, David Chaum, hacían uso de estos sistemas para compartir información en los tablones BBS de la comunidad Cypherpunks.

Más tarde, en 1983, llegó al mundo el protocolo TCP/IP. Este nuevo protocolo buscaba flexibilizar la creación de grandes redes globales. A esto siguió el establecimiento del sistema OSI en 1989, y la creación de la WWW en 1990. La unión de estos tres elementos es lo que permitió crear Internet, la gran red global que todos usamos en la actualidad. La creación de Internet, solo traería consigo mayores avances en la creación de sistemas P2P.

¿Cómo funciona una red P2P?

El funcionamiento de una red P2P es relativamente sencillo. Básicamente lo que se hace es construir un protocolo (lenguaje) de comunicaciones que permita a las personas que usan dicho software comunicarse de forma directa y sin intermediarios. El mayor problema frente a la construcción de estos sistemas es Cómo diseñar un sistema que permita que esta comunicación pueda ser establecida frente a procesos que puedan impedir, por ejemplo, la existencia de un índice de peers conocidos.

La situación se solventa a sí misma gracias a una mayor distribución entre sus partes. Es decir, mientras más pares tenga la red, más posibilidades hay de que la red no pueda ser censurada. En los primeros sistemas P2P, como USENET o IRC, los sistemas y sus conexiones se hacían conocer por medios escritos, llamadas, o el mismo sistema que tenía un tablero de pares a los cuales poder conectarse. Cada nuevo integrante en la red, tenía acceso a la lista de peers y con ello se auto añadía. No solo eso, ese nuevo peer podía ser la puerta de entrada a la información de peers que pudieran bloquearse.

Red de nodos en un sistema P2P

Pero la creación de redes más grandes como el IRC, DCC, DC++, Napster, Gnutella, BitTorrent e incluso Bitcoin cambió drásticamente esto. Ahora cada nodo se conectaba a un punto, obtienen una lista de peer iniciales (o nodos semillas). Y a partir de allí, cada nodo es capaz de recrear una lista propia de nodos que pertenecen a la red. Como resultado se obtiene una mejor resistencia a la censura y la red puede crecer más rápidamente.

Por supuesto, el funcionamiento de cada protocolo es distinto. IRC por ejemplo, es un sistema distribuido (casi centralizado) de servidores que pueden darte la capacidad de conectarte punto a punto con una persona. Pero DC+ y Gnutella, son completamente descentralizados, sus redes están pensadas para que de forma automática, la red se ajuste con la entrada y salida de nuevos nodos a la red.

Lo mismo pasa en Bitcoin, donde la red comenzó con una sola semilla, la iniciada por Satoshi Nakamoto, y desde entonces, la red ha ido creciendo paulatinamente para convertirse en una red con un tamaño superior a los 10 mil nodos en activos. Por supuesto, el objetivo de Bitcoin es distinto al de una red como Gnutella, pero los principios del protocolo se mantienen: comunicar a dos partes sin intermediarios.

Bitcoin y sus nodos en el mundo

Ventajas y Desventajas de esta tecnología

Ventajas

  1. Una red P2P es resistente a la censura. Una red P2P altamente descentralizada es prácticamente imposible de censurar.
  2. Ofrecen un resiliencia inigualable. Si un nodo cae, otro nodo puede tomar su lugar. Por eso dicen que las redes P2P pueden sobrevivir a una catástrofe nuclear, porque estas pueden destruir muchos nodos, pero si solo uno sobrevive, la red puede reconstruirse por completo.
  3. Las redes P2P pueden llevar a soluciones de escalabilidad potentes para presentar servicios únicos con alcance global.
  4. Al no depender de entidades centrales, las P2P generan más confianza en sus usuarios. 
  5. Ofrecen un alto nivel de ancho de banda. Esto gracias a que aprovechan el ancho de banda de cada participantes, para transformarlo en propio de la red.
  6. Sirven para transmitir información digital de cualquier tipo. Desde tu canción favorita a cientos de millones de dólares, en segundos.

Desventajas

  1. Una red P2P es resistente a la censura, pero no te hace anónimo a menos que esté diseñada para ello, incluso, si esa red usa cifrado. El mejor ejemplo es BitTorrent, donde los ISP pueden detectar el uso del protocolo, y con ello advertir a las autoridades de la descarga ilegal por parte de un usuario.
  2. El diseño de las redes P2P generan que a mayor tamaño aumente la latencia. Es decir, para que una información llegue a todas las partes que forma la red, se tomará más tiempo en una red P2P de gran tamaño que en una de menor tamaño. De allí que se busquen nuevos algoritmos y protocolos que ayuden a superar este problema.
  3. Los protocolos P2P tienen una serie de problemas estructurales conocidos. Casos como los ataques MITM para tomar el control de nodos, debido a que estos deben estar conectados todo el tiempo de forma pública son uno de estos fallos. También los protocolos son susceptibles a ataques de enrutamiento o cosas tan sigilosas como un ataque Eclipse o un ataque Erebus.

Bitcoin una red P2P para manejar valor

Bitcoin es una de las redes P2P más grandes que existen en la actualidad, con sus más de 10 mil nodos activos, Bitcoin es una red global que permite a sus usuarios manejar valor sin intermediarios. Lo único que debe hacerse es descargar un software que permita interactuar con esta red, y ya podrás hacer uso de la misma.

La construcción de Bitcoin como una red P2P responde a la necesidad de descentralizar sus capacidades. De nada vale crear una moneda con criptografía, si esta luego es manejada por una entidad central. Eso sería simplemente crear un nuevo banco central. En su lugar, Satoshi Nakamoto deseaba una red global, incensurable, segura y privada que permitiera manejar valor. Así que para ello, Nakamoto diseño Bitcoin sobre la base de una red P2P usando un protocolo propio diseñado bajo los principios del protocolo Kademlia y protocolo Gossip.

El resultado, es que Bitcoin es una red P2P que, prácticamente, no se puede detener. Incluso con sus fallas estructurales, el protocolo P2P fue la mejor decisión que Nakamoto pudo tomar en el diseño de Bitcoin. Con ello se aseguró de crear un dinero digital que sirviera a los intereses del mundo y de sus usuarios.

P2P para resolver los problemas del dinero digital

Lo mejor de todo, es que Bitcoin con su sistema P2P ha logrado crear un sistema de contabilidad distribuido en el que problemas como el doble gasto son cosas del pasado. El doble gasto, era uno de los problemas principales del dinero digital. La posibilidad de duplicar el dinero y falsificarlo, era algo que no había tenido solución hasta que Satoshi Nakamoto diseño la blockchain y su protocolo P2P para Bitcoin.

Desde entonces somos capaces de usar criptomonedas con total seguridad sabiendo que nuestro dinero no solo está en un protocolo abierto, transparente y libre, sino que también jamás podrá ser falsificado. Y todo ello porque cada nodo tiene un historial de transacciones de la red, siendo testigo de cada operación en la misma. Esta enorme red de testigos, permanece como un registro inmodificable de todo lo que sucede y nos da la seguridad de que el sistema no es manipulable.

Algo realmente útil y que permite transformar a Bitcoin en un dinero digital seguro, el más seguro y transparente de todos.