La idea de una red social descentralizada de próxima generación

La idea de una red social descentralizada de próxima generación
En este artículo, les presento mis pensamientos sobre la historia y las perspectivas de desarrollo de Internet, las redes centralizadas y descentralizadas y, como resultado, la posible arquitectura de la red descentralizada de próxima generación.

Hay algo mal con internet

Conocí Internet por primera vez en el año 2000. Por supuesto, esto está lejos del comienzo: la Red ya existía antes, pero esa época puede considerarse el primer apogeo de Internet. La World Wide Web es una ingeniosa invención de Tim Berners-Lee, web1.0 en su forma canónica clásica. Muchos sitios y páginas enlazan entre sí mediante hipervínculos. A primera vista, la arquitectura es sencilla, como todas las cosas ingeniosas: descentralizado y gratuito. Quiero: viajo a sitios de otras personas siguiendo hipervínculos; Quiero crear mi propio sitio web en el que publico lo que me interesa, por ejemplo, mis artículos, fotografías, programas, hipervínculos a sitios que me interesan. Y otros publican enlaces hacia mí.

¿Parecería una imagen idílica? Pero ya sabes cómo terminó todo.

Hay demasiadas páginas y la búsqueda de información se ha convertido en una tarea nada trivial. Los hipervínculos prescritos por los autores simplemente no podían estructurar esta enorme cantidad de información. Primero hubo directorios llenados manualmente y luego motores de búsqueda gigantes que comenzaron a utilizar ingeniosos algoritmos de clasificación heurística. Se crearon y abandonaron sitios web, la información se duplicó y distorsionó. Internet se estaba comercializando rápidamente y alejándose cada vez más de la red académica ideal. El lenguaje de marcado se convirtió rápidamente en un lenguaje de formato. Aparecieron publicidad, banners desagradables y molestos y una tecnología para promocionar y engañar a los motores de búsqueda: el SEO. La red se estaba atascando rápidamente con basura de información. Los hipervínculos han dejado de ser una herramienta de comunicación lógica para convertirse en una herramienta de promoción. Los sitios web se cerraron sobre sí mismos, pasaron de ser “páginas” abiertas a “aplicaciones” selladas y se convirtieron en meros medios para generar ingresos.

Incluso entonces tuve un cierto pensamiento de que "algo anda mal aquí". Un montón de sitios diferentes, que van desde páginas de inicio primitivas con una apariencia de ojos saltones hasta "megaportales" sobrecargados con pancartas parpadeantes. Incluso si los sitios tratan el mismo tema, no están relacionados en absoluto, cada uno tiene su propio diseño, su propia estructura, banners molestos, búsqueda que funciona mal, problemas con la descarga (sí, quería tener información sin conexión). Incluso entonces, Internet comenzaba a convertirse en una especie de televisión, donde se clavaba todo tipo de oropel sobre contenido útil.
La descentralización se ha convertido en una pesadilla.

¿Qué deseas?

Es paradójico, pero incluso entonces, sin saber aún sobre la web 2.0 o p2p, yo, como usuario, ¡no necesitaba la descentralización! Recordando mis pensamientos despejados de aquellos tiempos, llego a la conclusión de que necesitaba... base de datos unificada! Una consulta de este tipo arrojaría todos los resultados, y no los más adecuados para el algoritmo de clasificación. Uno en el que todos estos resultados estuvieran diseñados de manera uniforme y estilizados por mi propio diseño uniforme, y no por los llamativos diseños hechos por ellos mismos por numerosos Vasya Pupkins. Uno que se pueda guardar sin conexión y no tener miedo de que mañana el sitio desaparezca y la información se pierda para siempre. Uno en el que pudiera ingresar mi información, como comentarios y etiquetas. Uno en el que pudiera buscar, ordenar y filtrar con mis propios algoritmos personales.

Web 2.0 y redes sociales

Mientras tanto, el concepto de Web 2.0 entró en escena. Formulado en 2005 por Tim O'Reilly como "una técnica para diseñar sistemas que, al tener en cuenta las interacciones de la red, mejoran cuanto más personas los usan", e implica la participación activa de los usuarios en la creación y edición colectiva de contenido web. Sin exagerar, el pináculo y triunfo de este concepto fueron las Redes Sociales. Plataformas gigantes que conectan miles de millones de usuarios y almacenan cientos de petabytes de datos.

¿Qué conseguimos en las redes sociales?

  • unificación de interfaces; resultó que los usuarios no necesitan todas las oportunidades para crear una variedad de diseños llamativos; todas las páginas de todos los usuarios tienen el mismo diseño y esto se adapta a todos e incluso es conveniente; Sólo el contenido es diferente.
  • unificación de funcionalidades; Toda la variedad de guiones resultó innecesaria. "Feed", amigos, álbumes... durante la existencia de las redes sociales, su funcionalidad se ha estabilizado más o menos y es poco probable que cambie: después de todo, la funcionalidad está determinada por los tipos de actividades de las personas, y las personas prácticamente no cambian .
  • base de datos única; resultó mucho más conveniente trabajar con una base de datos de este tipo que con muchos sitios diferentes; La búsqueda se ha vuelto mucho más fácil. En lugar de escanear continuamente una variedad de páginas poco relacionadas, almacenarlas en caché y clasificarlas mediante complejos algoritmos heurísticos, una consulta unificada relativamente simple a una única base de datos con una estructura conocida.
  • interfaz de comentarios: me gusta y publicaciones repetidas; En la web normal, el mismo Google no pudo obtener comentarios de los usuarios después de seguir un enlace en los resultados de búsqueda. En las redes sociales, esta conexión resultó sencilla y natural.

Que hemos perdido Hemos perdido la descentralización, que significa libertad.. Se cree que nuestros datos ahora no nos pertenecen. Si antes podíamos colocar una página de inicio incluso en nuestro propio ordenador, ahora entregamos todos nuestros datos a los gigantes de Internet.

Además, a medida que Internet se desarrolló, los gobiernos y las corporaciones se interesaron en ella, lo que generó problemas de censura política y restricciones de derechos de autor. Nuestras páginas en las redes sociales pueden ser prohibidas y eliminadas si el contenido no cumple con alguna de las reglas de la red social; por un puesto descuidado: asumir responsabilidad administrativa e incluso penal.

Y ahora volvemos a pensar: ¿no deberíamos regresar a la descentralización? ¿Pero de otra forma, sin los defectos del primer intento?

Redes de igual a igual

Las primeras redes p2p aparecieron mucho antes de la web 2.0 y se desarrollaron en paralelo al desarrollo de la web. La principal aplicación clásica del p2p es el intercambio de archivos; las primeras redes se desarrollaron para el intercambio de música. Las primeras redes (como Napster) estaban esencialmente centralizadas y, por lo tanto, los titulares de derechos de autor las cerraron rápidamente. Los seguidores siguieron el camino de la descentralización. En 2000, aparecieron los protocolos ED2K (el primer cliente eDokney) y Gnutella, en 2001, el protocolo FastTrack (cliente KaZaA). Poco a poco, el grado de descentralización aumentó y las tecnologías mejoraron. Los sistemas de “cola de descarga” fueron reemplazados por torrents y apareció el concepto de tablas hash distribuidas (DHT). A medida que los estados aprietan las tuercas, el anonimato de los participantes se ha vuelto más demandado. La red Freenet se desarrolla desde 2000, I2003P desde 2 y el proyecto RetroShare se lanzó en 2006. Podemos mencionar numerosas redes p2p, tanto existentes como ya desaparecidas, y actualmente en funcionamiento: WASTE, MUTE, TurtleF2F, RShare, PerfectDark, ARES, Gnutella2, GNUNet, IPFS, ZeroNet, Tribbler y muchas otras. Muchos de ellos. Ellos son diferentes. Muy diferente, tanto en finalidad como en diseño... Probablemente muchos de ustedes ni siquiera estén familiarizados con todos estos nombres. Y esto no es todo.

Sin embargo, las redes p2p tienen muchas desventajas. Además de las deficiencias técnicas inherentes a cada protocolo específico y a la implementación del cliente, podemos, por ejemplo, observar un inconveniente bastante general: la complejidad de la búsqueda (es decir, todo lo que encontró la Web 1.0, pero en una versión aún más compleja). Aquí no existe Google con su búsqueda omnipresente e instantánea. Y si para las redes de intercambio de archivos aún puede utilizar una búsqueda por nombre de archivo o metainformación, entonces encontrar algo, digamos, en redes de superposición cebolla o i2p es muy difícil, si no imposible.

En general, si hacemos analogías con la Internet clásica, la mayoría de las redes descentralizadas están estancadas en algún lugar del nivel FTP. Imaginemos una Internet en la que no existe nada más que FTP: ni sitios modernos, ni web2.0, ni Youtube... Este es aproximadamente el estado de las redes descentralizadas. Y a pesar de los intentos individuales de cambiar algo, hasta ahora hay pocos cambios.

Contenido

Pasemos a otra pieza importante de este rompecabezas: el contenido. El contenido es el principal problema de cualquier recurso de Internet, y especialmente de uno descentralizado. ¿De dónde conseguirlo? Por supuesto, puedes confiar en un puñado de entusiastas (como ocurre con las redes p2p existentes), pero entonces el desarrollo de la red será bastante largo y habrá poco contenido allí.

Trabajar con Internet normal significa buscar y estudiar contenidos. A veces, guardar (si el contenido es interesante y útil, entonces muchos, especialmente aquellos que llegaron a Internet en la época del acceso telefónico, incluido yo, lo guardan prudentemente fuera de línea para no perderse; porque Internet es una cosa fuera de nuestro control, hoy el sitio está ahí, mañana no lo hay, hoy hay un video en YouTube, mañana será eliminado, etc.

Y en el caso de los torrents (que percibimos más como un simple medio de entrega que como una red p2p), el ahorro generalmente está implícito. Y este, por cierto, es uno de los problemas de los torrents: un archivo descargado una vez es difícil de mover a donde sea más conveniente de usar (como regla general, es necesario regenerar manualmente la distribución) y no se puede cambiar el nombre en absoluto ( puedes vincularlo, pero muy pocas personas lo saben).

Por lo general, mucha gente guarda contenidos de una forma u otra. ¿Cuál es su destino futuro? Normalmente, los archivos guardados terminan en algún lugar del disco, en una carpeta como Descargas, en el montón general, y se encuentran allí junto con miles de otros archivos. Esto es malo y malo para el propio usuario. Si Internet tiene motores de búsqueda, entonces el ordenador local del usuario no tiene nada parecido. Es bueno si el usuario es ordenado y está acostumbrado a ordenar los archivos descargados "entrantes". Pero no todo el mundo es así...

De hecho, ahora hay muchos que no guardan nada, sino que dependen exclusivamente de Internet. Pero en las redes p2p, se supone que el contenido se almacena localmente en el dispositivo del usuario y se distribuye a otros participantes. ¿Es posible encontrar una solución que permita a ambas categorías de usuarios participar en una red descentralizada sin cambiar sus hábitos y, además, hacerles la vida más fácil?

La idea es bastante simple: ¿qué pasa si creamos un medio para guardar contenido de Internet común, conveniente y transparente para el usuario, y un almacenamiento inteligente, con metainformación semántica, y no en un montón común, sino en una estructura específica con ¿La posibilidad de estructurar aún más y, al mismo tiempo, distribuir el contenido guardado en una red descentralizada?

Empecemos por ahorrar.

No consideraremos el uso utilitario de Internet para ver pronósticos del tiempo u horarios de aviones. Estamos más interesados ​​en objetos autosuficientes y más o menos inmutables: artículos (desde tweets/posts de redes sociales hasta artículos extensos, como aquí en Habré), libros, imágenes, programas, grabaciones de audio y vídeo. ¿De dónde proviene principalmente la información? Generalmente esto

  • redes sociales (noticias varias, pequeñas notas - “tweets”, imágenes, audio y video)
  • artículos sobre recursos temáticos (como Habr); No hay muchos recursos buenos, por lo general estos recursos también se basan en el principio de las redes sociales.
  • sitios de noticias

Como regla general, existen funciones estándar: "me gusta", "volver a publicar", "compartir en redes sociales", etc.

Imaginemos algunos plugin para el navegador, que guardará especialmente todo lo que nos gustó, lo republicamos, lo guardamos en “favoritos” (o hicimos clic en un botón de complemento especial que se muestra en el menú del navegador, en caso de que el sitio no tenga la función Me gusta/volver a publicar/marcar como favorito). La idea principal es que simplemente le guste, como lo ha hecho millones de veces antes, y el sistema guarda el artículo, imagen o video en un almacenamiento especial fuera de línea y este artículo o imagen pasa a estar disponible, y para que usted pueda verlo sin conexión a través del Interfaz de cliente descentralizada y en la red más descentralizada. En mi opinión, es muy conveniente. No hay acciones innecesarias y solucionamos muchos problemas a la vez:

  • Preservar contenido valioso que podría perderse o eliminarse
  • llenado rápido de la red descentralizada
  • agregación de contenido de diferentes fuentes (puede estar registrado en docenas de recursos de Internet, y todos los "me gusta"/nuevas publicaciones fluirán a una única base de datos local)
  • estructurar contenidos que te interesen según вашим las reglas

Obviamente, el complemento del navegador debe configurarse para la estructura de cada sitio (esto es bastante realista: ya existen complementos para guardar contenido de Youtube, Twitter, VK, etc.). No hay tantos sitios para los que tenga sentido crear complementos personales. Por regla general, se trata de redes sociales comunes (hay poco más de una docena) y varios sitios temáticos de alta calidad como Habr (también hay varios). Con código fuente y especificaciones abiertas, desarrollar un nuevo complemento basado en una plantilla no debería llevar mucho tiempo. Para otros sitios, puede utilizar un botón de guardar universal, que guardará toda la página en mhtml, tal vez después de limpiar primero la página de publicidad.

Ahora sobre estructurar

Por ahorro "inteligente" me refiero al menos a guardar con metainformación: la fuente del contenido (URL), un conjunto de me gusta, etiquetas, comentarios, sus identificadores, etc. Después de todo, durante el guardado normal, esta información se pierde... La fuente puede entenderse no solo como una URL directa, sino también como un componente semántico: por ejemplo, un grupo en una red social o un usuario que volvió a publicar. El complemento puede ser lo suficientemente inteligente como para utilizar esta información para estructurar y etiquetar automáticamente. Además, debe entenderse que el propio usuario siempre puede agregar alguna metainformación al contenido guardado, para lo cual se deben proporcionar las herramientas de interfaz más convenientes (tengo bastantes ideas sobre cómo hacerlo).

De esta forma, se resuelve el problema de estructurar y organizar los archivos locales del usuario. Este es un beneficio ya preparado que se puede utilizar incluso sin ningún p2p. Simplemente una especie de base de datos fuera de línea que sabe qué, dónde y en qué contexto guardamos y nos permite realizar pequeños estudios. Por ejemplo, busque usuarios de una red social externa a quienes más les gustaron las mismas publicaciones que a usted. ¿Cuántas redes sociales permiten esto explícitamente?

Ya deberíamos mencionar aquí que un complemento de navegador no es suficiente. El segundo componente más importante del sistema es el servicio de red descentralizado, que se ejecuta en segundo plano y atiende tanto a la propia red p2p (solicitudes de la red y solicitudes del cliente) como al almacenamiento de contenido nuevo mediante el complemento. El servicio, trabajando junto con el complemento, colocará el contenido en el lugar correcto, calculará hashes (y posiblemente determinará que dicho contenido ya se ha guardado previamente) y agregará la metainformación necesaria a la base de datos local.

Lo interesante es que el sistema ya sería útil de esta forma, sin ningún tipo de p2p. Mucha gente utiliza web clippers que añaden contenido interesante de la web a Evernote, por ejemplo. La arquitectura propuesta es una versión extendida de dicho cortapelos.

Y finalmente, el intercambio p2p.

La mejor parte es que se puede intercambiar información y metainformación (tanto capturada de la web como propia). El concepto de red social se traslada perfectamente a la arquitectura p2p. Podemos decir que la red social y el p2p parecen hechos el uno para el otro. Idealmente, cualquier red descentralizada debería construirse como social, solo así funcionará de manera efectiva. "Amigos", "Grupos": estos son los mismos pares con los que debería haber conexiones estables, y provienen de una fuente natural: los intereses comunes de los usuarios.

Los principios para guardar y distribuir contenido en una red descentralizada son completamente idénticos a los principios para guardar (capturar) contenido de Internet normal. Si utiliza algún contenido de la red (y por lo tanto lo ha guardado), cualquiera puede usar sus recursos (disco y canal) necesarios para recibir este contenido en particular.

Me gusta - la herramienta más sencilla para guardar y compartir. Si me gustó, ya sea en Internet externo o dentro de la red descentralizada, significa que me gusta el contenido y, si es así, entonces estoy listo para conservarlo localmente y distribuirlo a otros participantes en la red descentralizada.

  • El contenido no se “perderá”; ahora está guardado localmente, puedo volver a él más tarde, en cualquier momento, sin preocuparme de que alguien lo borre o bloquee
  • Puedo (inmediatamente o más tarde) categorizarlo, etiquetarlo, comentarlo, asociarlo con otro contenido y, en general, hacer algo significativo con él; llamémoslo "generación de metainformación".
  • Puedo compartir esta metainformación con otros miembros de la red.
  • Puedo sincronizar mi metainformación con la metainformación de otros miembros

Probablemente, renunciar a los disgustos también parece lógico: si no me gusta el contenido, entonces es bastante lógico que no quiera desperdiciar mi espacio en disco para almacenarlo y mi canal de Internet para distribuir este contenido. Por lo tanto, los disgustos no encajan de manera muy orgánica en la descentralización (aunque a veces sí lo hace). puede ser útil).

A veces es necesario conservar lo que "no te gusta". Existe la palabra "debe" :)
«marcadores” (o “Favoritos”): no expreso afinidad por el contenido, pero lo guardo en mi base de datos de favoritos local. La palabra "favoritos" no tiene un significado del todo adecuado (para esto existen los "me gusta" y su posterior categorización), pero los "marcadores" son bastante adecuados. El contenido de los "marcadores" también se distribuye: si lo "necesita" (es decir, lo "usa" de una forma u otra), entonces es lógico que alguien más pueda "necesitarlo". ¿Por qué no utilizar sus recursos para hacer esto?

La función "друзья". Se trata de compañeros, personas con intereses similares y, por tanto, aquellos que tienen más probabilidades de tener contenido interesante. En una red descentralizada, esto significa principalmente suscribirse a fuentes de noticias de amigos y acceder a sus catálogos (álbumes) de contenido que han guardado.

Similar a la función "Grupo“- algún tipo de feeds colectivos, foros o algo a lo que también puedas suscribirte - y eso significa aceptar todos los materiales del grupo y distribuirlos. Quizás los "grupos", al igual que los foros grandes, deberían ser jerárquicos; esto permitirá estructurar mejor el contenido del grupo, además de limitar el flujo de información y no aceptar/distribuir lo que no sea muy interesante para usted.

Todo el resto

Cabe señalar que una arquitectura descentralizada siempre es más compleja que una centralizada. En los recursos centralizados existe un dictado estricto del código del servidor. En los descentralizados, es necesario negociar entre muchos participantes iguales. Por supuesto, esto no se puede hacer sin la criptografía, las cadenas de bloques y otros logros desarrollados principalmente en criptomonedas.

Supongo que puede ser necesario algún tipo de calificación criptográfica de confianza mutua formada por los participantes de la red entre sí. La arquitectura debería permitir combatir eficazmente las botnets que, al existir en una determinada nube, pueden, por ejemplo, aumentar mutuamente sus propias valoraciones. Realmente quiero que las corporaciones y las granjas de botnets, con toda su superioridad tecnológica, no tomen el control de una red tan descentralizada; de modo que su principal recurso son personas vivas capaces de producir y estructurar contenidos que resulten interesantes y útiles para otras personas vivas.

También quiero que una red así haga avanzar la civilización hacia el progreso. Tengo un montón de ideas sobre este tema que, sin embargo, no entran en el alcance de este artículo. Sólo diré que en cierto modo científico, técnico, médico, etc. El contenido debe primar sobre el entretenimiento, y esto requerirá algún tipo de moderación. La moderación de una red descentralizada en sí misma no es una tarea trivial, pero se puede resolver (sin embargo, la palabra "moderación" aquí es completamente incorrecta y no refleja en absoluto la esencia del proceso, ni externa ni internamente... y Ni siquiera podía pensar en cómo se podría llamar este proceso).

Probablemente sería innecesario mencionar la necesidad de garantizar el anonimato, tanto por medios integrados (como en i2p o Retroshare) como pasando todo el tráfico a través de TOR o VPN.

Y finalmente, la arquitectura del software (dibujada esquemáticamente en la imagen del artículo). Como ya se mencionó, el primer componente del sistema es un complemento del navegador que captura contenido con metainformación. El segundo componente más importante es el servicio p2p, que se ejecuta en segundo plano (“backend”). Obviamente, el funcionamiento de la red no debería depender de si el navegador se está ejecutando. El tercer componente es el software del cliente: la interfaz. Puede ser un servicio web local (en este caso, el usuario podrá trabajar con una red descentralizada sin salir de su navegador favorito) o una aplicación GUI separada para un sistema operativo específico (Windows, Linux, MacOS, Andriod, iOS, etc.). Me gusta la idea de que todas las opciones de interfaz existan al mismo tiempo. Al mismo tiempo, esto requerirá una arquitectura de backend más estricta.

Hay muchos más aspectos que no están incluidos en este artículo. Conectarse a la distribución de almacenamientos de archivos existentes (es decir, cuando ya tiene un par de terabytes de datos bombeados y deja que el cliente los escanee, obtenga hashes, los compare con lo que hay dentro de la red y se una a la distribución, y al mismo obtener metainformación sobre sus propios archivos (nombres normales, descripciones, calificaciones, reseñas, etc.), conexión de fuentes externas de metainformación (como la base de datos Libgen), uso opcional de espacio en disco para almacenar contenido cifrado de otras personas (como en Freenet ), arquitectura de integración con redes descentralizadas existentes (este es un bosque completamente oscuro), la idea de hash de medios (el uso de hashes de percepción especiales para contenido multimedia: imágenes, audio y video, que le permitirán comparar archivos multimedia de el mismo significado, difiriendo en tamaño, resolución, etc.) y mucho más.

Breve resumen del artículo.

1. En las redes descentralizadas no existe Google con sus búsquedas y clasificaciones, pero sí una comunidad de personas reales. Una red social con sus mecanismos de retroalimentación (me gusta, reposts...) y gráfico social (amigos, comunidades...) es un modelo de capa de aplicación ideal para una red descentralizada.
2. La idea principal que traigo con este artículo es el guardado automático de contenido interesante de Internet normal cuando configuras un me gusta/volver a publicar; Esto puede ser útil sin p2p, simplemente manteniendo un archivo personal de información interesante.
3. Este contenido también puede llenar automáticamente la red descentralizada.
4. El principio de guardar automáticamente contenido interesante también funciona con Me gusta/republicaciones en la red más descentralizada.

Fuente: habr.com

Añadir un comentario