Peer-to-peer networkLas criptomonedas han protagonizado una de las mayores revoluciones tecnológicas de los últimos años. La pionera y más famosa de ellas es el Bitcoin, aunque existen cientos de ellas. Cada una con distintas características, diferentes objetivos y diversas tecnologías detrás que las hacen funcionar. Una de las más importantes son las redes peer-to-peer.

El lector puede pensar que el dinero electrónico ya existía mucho antes que las criptomonedas, y tiene razón. Las transferencias bancarias y las tarjetas de crédito ya hacían uso de cadenas de bits para intercambiar dinero sin la necesidad de mover divisas físicamente. La verdadera revolución es eliminar la necesidad de un agente certificado, como un banco, un gobierno u otra institución.

La mayoría de ellas están basadas en la blockchain, una cadena de bloques unidos entre sí gracias a métodos criptográficos. Este concepto está en auge por su aplicación, no solo en criptomonedas, sino en innumerables campos, gracias a que garantiza que los datos en los bloques no han sido modificados. Si un atacante quiere modificar un solo bit, deberá también generar todos los bloques que le siguen.

A todo esto se le suma el uso de una red descentralizada o peer-to-peer. Para hacer más fácil la explicación, nos centraremos en el Bitcoin. Cada nodo posee una copia del blockchain, que se va sincronizando con los bloques que van apareciendo (block mining) y que son validados y transmitidos por los nodos conectados.

Cada nodo posee su propia blockchain (unos 223 GB si se almacena completa). Todos los nodos están al mismo nivel en la red, y la blockchain que acepta la red como “válida” es la utilizada por el mayor número de nodos (one-cpu-one-vote system). Si un atacante quisiera manipular una transacción del blockchain, tendría que controlar más del 50% del poder computacional de la red, algo altamente improbable en este caso (el “ataque del 51%”).

De todas formas, cada nodo solo se conecta a unos pocos nodos simultáneamente; el valor por defecto es 8 en Bitcoin Core, el software oficial de Bitcoin. La primera operación que realiza un nodo nuevo en la red es buscar estos peers. Si conoce algún peer de antemano, le preguntará por nuevas direcciones que este conozca. En cambio, si es totalmente nuevo en la red, hará uso de los DNS seed nodes, mantenidos por la comunidad, cuya única función es almacenar e informar sobre nodos actualmente activos en la red para que otros puedan conectarse a ellos.

El carácter económico del Bitcoin y su gran popularidad en los últimos años han generado un gran negocio detrás de esta red P2P. Esto ha permitido un gran desarrollo y expansión de la red, pero también ha llamado la atención de posibles atacantes. Los nodos conectados son muy distintos, y pueden ir desde el ordenador personal de un entusiasta de las criptomonedas, a grandes granjas o pools donde miles de ordenadores trabajan sin descanso, minando bloques.

Servicios online como https://bitnodes.earn.com/, analizan constantemente la red para obtener distintas métricas (número total de nodos, localización geográfica de cada uno, principales pools, o bloques descubiertos…). La red Bitcoin es mantenida entre 9.500 o 10.000 nodos activos. La mayoría de ellos están situados en Estados Unidos, Alemania y Francia.

Vale la pena explicar que estos 9.500 nodos no representan el total de usuarios de Bitcoin. Este número se refiere a nodos que mantienen y permiten que la red siga funcionando. Cualquiera puede formar parte de esta red, aunque no es necesario para transferir y recibir Bitcoins.

Sin embargo, no es tan fácil realizar un análisis completo de la red. El propio protocolo de red del Bitcoin implementa algoritmos para evitar la inferencia de su topología. Conocer con precisión las conexiones entre nodos puede facilitar los ataques a la red. Grandes usuarios como las “pools” intentan esconder sus puntos de acceso para evitar los ataques, o incluso algunos nodos utilizan la conocida red TOR para ser lo más anónimos posible.


Sobre el autor

Guillermo Escobero
Guillermo Escobero
Ingeniero Informático en el departamento de I+D de Teldat. Dentro de dicho departamento trabaja como desarrollador de software.

Comparte este post


Nuestras Soluciones Relevantes