Ideea unei rețele sociale descentralizate de generație următoare

Ideea unei rețele sociale descentralizate de generație următoare
În acest articol, vă prezint părerile mele despre istoria și perspectivele dezvoltării Internetului, rețelelor centralizate și descentralizate și, ca urmare, arhitectura posibilă a rețelei descentralizate de generație următoare.

E ceva în neregulă cu internetul

Prima dată m-am familiarizat cu internetul în 2000. Desigur, acest lucru este departe de la început - rețeaua exista deja înainte de aceasta, dar acel moment poate fi numit prima perioadă de glorie a Internetului. World Wide Web este invenția ingenioasă a lui Tim Berners-Lee, web1.0 în forma sa canonică clasică. Multe site-uri și pagini se leagă între ele cu hyperlinkuri. La prima vedere, arhitectura este simplă, ca toate lucrurile ingenioase: descentralizat și gratuit. Vreau să - călătoresc pe site-urile altor persoane urmând hyperlinkuri; Vreau să îmi creez propriul site pe care să public ceea ce mă interesează - de exemplu, articolele mele, fotografiile, programele, hyperlink-urile către site-uri care sunt interesante pentru mine. Și alții postează link-uri către mine.

Ti s-ar parea o poza idilica? Dar știi deja cum s-a terminat totul.

Sunt prea multe pagini, iar căutarea de informații a devenit o sarcină foarte nebanală. Hyperlinkurile prescrise de autori pur și simplu nu au putut structura această cantitate imensă de informații. Mai întâi au fost directoare completate manual, iar apoi motoare de căutare gigantice care au început să folosească algoritmi ingenioși de clasare euristică. Site-urile web au fost create și abandonate, informațiile au fost duplicate și distorsionate. Internetul s-a comercializat rapid și s-a îndepărtat mai mult de rețeaua academică ideală. Limbajul de marcare a devenit rapid un limbaj de formatare. A apărut reclamă, bannere urât enervante și o tehnologie de promovare și înșelare a motoarelor de căutare - SEO. Rețeaua a devenit rapid înfundată cu gunoi de informații. Hyperlinkurile au încetat să mai fie un instrument de comunicare logică și au devenit un instrument de promovare. Site-urile web s-au închis în sine, s-au transformat din „pagini” deschise în „aplicații” sigilate și au devenit doar mijloace de generare a veniturilor.

Chiar și atunci am avut un anumit gând că „ceva nu este în regulă aici”. O grămadă de site-uri diferite, de la paginile de pornire primitive cu un aspect cu ochi zgomoți, până la „mega-portale” supraîncărcate cu bannere intermitente. Chiar dacă site-urile sunt pe aceeași temă, nu sunt deloc legate, fiecare are designul său, structură proprie, bannere enervante, căutare care funcționează prost, probleme cu descărcarea (da, am vrut să am informații offline). Chiar și atunci, internetul începea să se transforme într-un fel de televiziune, în care tot felul de beteală erau bătute în cuie la conținut util.
Descentralizarea a devenit un coșmar.

Ce vrei?

Este paradoxal, dar nici atunci, neștiind încă despre web 2.0 sau p2p, eu, ca utilizator, nu aveam nevoie de descentralizare! Amintindu-mi gândurile neînnorate din acele vremuri, am ajuns la concluzia că aveam nevoie de... baza de date unificata! O astfel de interogare pentru care ar returna toate rezultatele, și nu cele care sunt cele mai potrivite pentru algoritmul de clasare. Unul în care toate aceste rezultate ar fi proiectate uniform și stilizate prin propriul meu design uniform, și nu prin design-ul auto-realizat al multor Vasya Pupkins. Unul care ar putea fi salvat offline și să nu vă fie teamă că mâine site-ul va dispărea și informația se va pierde pentru totdeauna. Una în care aș putea introduce informațiile mele, cum ar fi comentarii și etichete. Unul în care aș putea căuta, sorta și filtra cu algoritmii mei personali.

Web 2.0 și rețele sociale

Între timp, conceptul de Web 2.0 a intrat în arena. Formulată în 2005 de Tim O'Reilly ca „o tehnică de proiectare a sistemelor care, ținând cont de interacțiunile din rețea, devin mai bune cu cât le folosesc mai mulți oameni” – și implicând implicarea activă a utilizatorilor în crearea și editarea colectivă a conținutului Web. Fără exagerare, apogeul și triumful acestui concept au fost rețelele sociale. Platforme uriașe care conectează miliarde de utilizatori și stochează sute de petabytes de date.

Ce am primit pe rețelele de socializare?

  • unificarea interfeței; s-a dovedit că utilizatorii nu au nevoie de toate oportunitățile pentru a crea o varietate de modele atrăgătoare; toate paginile tuturor utilizatorilor au același design și acest lucru se potrivește tuturor și este chiar convenabil; Doar conținutul este diferit.
  • unificarea funcționalității; toată varietatea de scripturi s-a dovedit a fi inutilă. „Feed”, prieteni, albume... în timpul existenței rețelelor sociale, funcționalitatea acestora s-a stabilizat mai mult sau mai puțin și este puțin probabil să se schimbe: la urma urmei, funcționalitatea este determinată de tipurile de activități ale oamenilor, iar oamenii practic nu se schimbă .
  • bază de date unică; s-a dovedit a fi mult mai convenabil să lucrezi cu o astfel de bază de date decât cu multe site-uri disparate; căutarea a devenit mult mai ușoară. În loc să scanați continuu o varietate de pagini înrudite, să le memorați în cache, să clasăm folosind algoritmi euristici complexi - o interogare unificată relativ simplă către o singură bază de date cu o structură cunoscută.
  • interfață de feedback - aprecieri și repostare; pe web obișnuită, același Google nu a putut primi feedback de la utilizatori după ce a urmat un link în rezultatele căutării. Pe rețelele de socializare, această conexiune s-a dovedit a fi simplă și firească.

Ce am pierdut? Am pierdut descentralizarea, ceea ce înseamnă libertate. Se crede că datele noastre acum nu ne aparțin. Dacă mai devreme puteam plasa o pagină de pornire chiar și pe propriul computer, acum dăm toate datele noastre giganților Internetului.

În plus, pe măsură ce internetul s-a dezvoltat, guvernele și corporațiile au devenit interesate de el, ceea ce a ridicat probleme de cenzură politică și restricții ale drepturilor de autor. Paginile noastre de pe rețelele sociale pot fi interzise și șterse dacă conținutul nu respectă nicio regulă a rețelei sociale; pentru un post neglijent – ​​aduce la răspundere administrativă și chiar penală.

Și acum ne gândim din nou: nu ar trebui să revenim la descentralizare? Dar într-o formă diferită, lipsită de neajunsurile primei încercări?

Rețele peer-to-peer

Primele rețele p2p au apărut cu mult înainte de web 2.0 și s-au dezvoltat în paralel cu dezvoltarea web-ului. Principala aplicație clasică a p2p este partajarea fișierelor; primele rețele au fost dezvoltate pentru schimbul de muzică. Primele rețele (cum ar fi Napster) au fost în esență centralizate și, prin urmare, au fost închise rapid de deținătorii drepturilor de autor. Adepții au urmat calea descentralizării. În 2000 au apărut protocoalele ED2K (primul client eDokney) și Gnutella, în 2001 - protocolul FastTrack (client KaZaA). Treptat, gradul de descentralizare a crescut, tehnologiile s-au îmbunătățit. Sistemele „cozi de descărcare” au fost înlocuite cu torrente și a apărut conceptul de tabele hash distribuite (DHT). Pe măsură ce statele strâng șuruburile, anonimatul participanților a devenit mai solicitat. Rețeaua Freenet a fost dezvoltată din 2000, I2003P din 2, iar proiectul RetroShare a fost lansat în 2006. Putem aminti numeroase rețele p2p, atât existente anterior, cât și deja dispărute, și care funcționează în prezent: WASTE, MUTE, TurtleF2F, RShare, PerfectDark, ARES, Gnutella2, GNUNet, IPFS, ZeroNet, Tribbler și multe altele. O mulțime. Sunt diferite. Foarte diferit - atât ca scop, cât și ca design... Probabil că mulți dintre voi nici măcar nu sunteți familiarizați cu toate aceste nume. Și asta nu este tot.

Cu toate acestea, rețelele p2p au multe dezavantaje. Pe lângă deficiențele tehnice inerente fiecărui protocol specific și implementării clientului, putem, de exemplu, să remarcăm un dezavantaj destul de general - complexitatea căutării (adică tot ceea ce a întâlnit Web 1.0, dar într-o versiune și mai complexă). Nu există Google aici cu căutarea sa omniprezentă și instantanee. Și dacă pentru rețelele de partajare a fișierelor puteți folosi în continuare o căutare după numele fișierului sau meta informații, atunci găsirea a ceva, să zicem, în rețelele de suprapunere i2p sau ceapă este foarte dificilă, dacă nu imposibil.

În general, dacă tragem analogii cu Internetul clasic, atunci majoritatea rețelelor descentralizate sunt blocate undeva la nivelul FTP. Imaginați-vă un Internet în care nu există altceva decât FTP: fără site-uri moderne, fără web2.0, fără Youtube... Cam asta este starea rețelelor descentralizate. Și în ciuda încercărilor individuale de a schimba ceva, există puține schimbări până acum.

Conținut

Să trecem la o altă piesă importantă a acestui puzzle - conținutul. Conținutul este principala problemă a oricărei resurse de pe Internet, și mai ales una descentralizată. De unde să-l iau? Desigur, vă puteți baza pe o mână de entuziaști (cum se întâmplă cu rețelele p2p existente), dar apoi dezvoltarea rețelei va fi destul de lungă și va fi puțin conținut acolo.

Lucrul cu Internetul obișnuit înseamnă căutarea și studierea conținutului. Uneori - salvarea (dacă conținutul este interesant și util, atunci mulți, mai ales cei care au venit pe Internet în zilele dial-up-ului - inclusiv eu - îl salvează cu prudență offline pentru a nu se pierde; pentru că Internetul este un lucru dincolo de controlul nostru, astăzi site-ul este acolo mâine nu există , astăzi există un videoclip pe YouTube - mâine va fi șters etc.

Și pentru torrente (pe care le percepem mai mult ca un mijloc de livrare decât ca o rețea p2p), economisirea este în general implicită. Și aceasta, apropo, este una dintre problemele cu torrente: un fișier descărcat o dată este dificil de mutat acolo unde este mai convenabil de utilizat (de regulă, trebuie să regenerați manual distribuția) și absolut nu poate fi redenumit ( îl poți conecta greu, dar foarte puțini oameni știu despre asta).

În general, mulți oameni salvează conținut într-un fel sau altul. Care este soarta lui viitoare? De obicei, fișierele salvate ajung undeva pe disc, într-un folder precum Descărcări, în grămada generală și se află acolo împreună cu multe mii de alte fișiere. Acest lucru este rău - și rău pentru utilizatorul însuși. Dacă Internetul are motoare de căutare, atunci computerul local al utilizatorului nu are nimic similar. Este bine dacă utilizatorul este îngrijit și obișnuit să sorteze fișierele descărcate „primite”. Dar nu toți sunt așa...

De fapt, acum sunt mulți care nu salvează nimic, ci se bazează în întregime pe online. Dar în rețelele p2p, se presupune că conținutul este stocat local pe dispozitivul utilizatorului și distribuit altor participanți. Este posibil să găsim o soluție care să permită ambelor categorii de utilizatori să se implice într-o rețea descentralizată fără a-și schimba obiceiurile și, mai mult, să le ușureze viața?

Ideea este destul de simplă: ce se întâmplă dacă facem un mijloc de salvare a conținutului de pe Internetul obișnuit, convenabil și transparent pentru utilizator și salvare inteligentă - cu meta-informații semantice și nu într-un hap comun, ci într-o structură specifică cu posibilitatea de a structura în continuare, și în același timp de a distribui conținutul salvat pe o rețea descentralizată?

Să începem cu salvarea

Nu vom lua în considerare utilizarea utilitară a Internetului pentru vizualizarea prognozelor meteo sau a orarelor avioanelor. Ne interesează mai mult obiectele autosuficiente și mai mult sau mai puțin imuabile - articole (de la tweet-uri/postări din rețelele de socializare până la articole mari, ca aici pe Habré), cărți, imagini, programe, înregistrări audio și video. De unde provin mai ales informațiile? De obicei asta

  • rețele sociale (diverse știri, note mici - „tweet”, imagini, audio și video)
  • articole despre resurse tematice (cum ar fi Habr); Nu există multe resurse bune, de obicei aceste resurse sunt construite și pe principiul rețelelor sociale
  • site-uri de știri

De regulă, există funcții standard: „like”, „repost”, „share pe rețelele sociale”, etc.

Să ne imaginăm câteva plugin pentru browser, care va salva în mod special tot ceea ce ne-a plăcut, repostat, salvat în „favorite” (sau a dat clic pe un buton de plugin special afișat în meniul browserului - în cazul în care site-ul nu are funcție de like/repost/marcaj). Ideea principală este că pur și simplu vă place - așa cum ați făcut de un milion de ori înainte, iar sistemul salvează articolul, imaginea sau videoclipul într-un spațiu de stocare special offline și acest articol sau imaginea devine disponibilă - și pentru dvs. pentru vizionare offline prin intermediul interfață client descentralizată și în cea mai descentralizată rețea! După părerea mea, este foarte convenabil. Nu există acțiuni inutile și rezolvăm multe probleme simultan:

  • Păstrarea conținutului valoros care ar putea fi pierdut sau șters
  • umplerea rapidă a rețelei descentralizate
  • agregarea conținutului din diferite surse (puteți fi înregistrat în zeci de resurse de internet, iar toate aprecierile/repostările vor curge într-o singură bază de date locală)
  • structurarea conţinutului care vă interesează în funcţie ta reguli

Evident, pluginul de browser trebuie configurat pentru structura fiecărui site (acest lucru este destul de realist - există deja pluginuri pentru salvarea conținutului de pe Youtube, Twitter, VK etc.). Nu există atât de multe site-uri pentru care să aibă sens să faci pluginuri personale. De regulă, acestea sunt rețele sociale comune (abia dacă există mai mult de o duzină de ele) și o serie de site-uri tematice de înaltă calitate, cum ar fi Habr (există și câteva dintre acestea). Cu codul și specificațiile open source, dezvoltarea unui nou plugin bazat pe un șablon nu ar trebui să dureze mult timp. Pentru alte site-uri, puteți utiliza un buton de salvare universal, care ar salva întreaga pagină în mhtml - poate după ce mai întâi ștergeți pagina de publicitate.

Acum despre structurare

Prin salvare „inteligentă” înțeleg cel puțin salvarea cu metainformații: sursa conținutului (URL), un set de aprecieri, etichete, comentarii setate anterior, identificatorii acestora etc. La urma urmei, în timpul salvării normale, această informație se pierde... Sursa poate fi înțeleasă nu numai ca un URL direct, ci și ca o componentă semantică: de exemplu, un grup de pe o rețea socială sau un utilizator care a făcut o repostare. Pluginul poate fi suficient de inteligent pentru a utiliza aceste informații pentru structurarea și etichetarea automată. De asemenea, trebuie înțeles că utilizatorul însuși poate adăuga oricând niște meta-informații la conținutul salvat, în acest scop ar trebui furnizate cele mai convenabile instrumente de interfață (am destul de multe idei despre cum să fac acest lucru).

Astfel, problema structurării și organizării fișierelor locale ale utilizatorului este rezolvată. Acesta este un beneficiu gata făcut, care poate fi folosit chiar și fără niciun P2P. Doar un fel de bază de date offline care știe ce, unde și în ce context am salvat și ne permite să efectuăm mici studii. De exemplu, găsiți utilizatori ai unei rețele sociale externe cărora le-au apreciat cel mai mult aceleași postări ca și dvs. Câte rețele sociale permit acest lucru în mod explicit?

Trebuie menționat deja că un singur plugin de browser nu este cu siguranță suficient. A doua cea mai importantă componentă a sistemului este serviciul de rețea descentralizată, care rulează în fundal și deservește atât rețeaua p2p în sine (cereri din rețea și solicitări de la client), cât și salvarea de conținut nou folosind plugin-ul. Serviciul, lucrând împreună cu pluginul, va plasa conținutul la locul potrivit, va calcula hash-urile (și, eventual, va determina că un astfel de conținut a fost deja salvat anterior) și va adăuga metainformațiile necesare în baza de date locală.

Ceea ce este interesant este că sistemul ar fi util deja în această formă, fără niciun p2p. Mulți oameni folosesc dispozitive de tuns web care adaugă conținut interesant de pe web la Evernote, de exemplu. Arhitectura propusă este o versiune extinsă a unui astfel de aparat de tuns.

Și în sfârșit, schimbul p2p

Cea mai bună parte este că informațiile și metainformațiile (atât capturate de pe web, cât și de pe propriile dvs.) pot fi schimbate. Conceptul de rețea socială se transferă perfect arhitecturii p2p. Putem spune că rețeaua de socializare și p2p par a fi făcute unul pentru celălalt. Orice rețea descentralizată ar trebui să fie construită în mod ideal ca una socială, doar atunci va funcționa eficient. „Prieteni”, „Grupuri” - aceștia sunt aceiași colegi cu care ar trebui să existe conexiuni stabile, iar acestea sunt preluate dintr-o sursă naturală - interesele comune ale utilizatorilor.

Principiile salvării și distribuirii conținutului într-o rețea descentralizată sunt complet identice cu principiile salvării (captării) conținutului de pe Internetul obișnuit. Dacă utilizați un anumit conținut din rețea (și, prin urmare, l-ați salvat), atunci oricine vă poate folosi resursele (discul și canalul) necesare pentru a primi acest anumit conținut.

Husky — cel mai simplu instrument de salvare și partajare. Dacă mi-a plăcut - indiferent de pe internetul extern sau în interiorul rețelei descentralizate - înseamnă că îmi place conținutul și, dacă da, atunci sunt gata să-l păstrez local și să-l distribui altor participanți în rețeaua descentralizată.

  • Conținutul nu va fi „pierdut”; acum este salvat local, pot reveni la el mai târziu, oricând, fără să-mi fac griji că cineva îl șterge sau îl blochează
  • Pot (imediat sau mai târziu) să-l clasific, să îl etichetez, să îl comentez, să îl asociez cu alt conținut și, în general, să fac ceva semnificativ cu el - să-i numim „generare de metainformații”.
  • Pot partaja aceste metainformații cu alți membri ai rețelei
  • Îmi pot sincroniza meta informațiile cu meta informațiile altor membri

Probabil că renunțarea la antipatii pare logică: dacă nu îmi place conținutul, atunci este destul de logic că nu vreau să-mi pierd spațiul pe disc pentru stocare și canalul meu de internet pentru distribuirea acestui conținut. Prin urmare, antipatiile nu se potrivesc foarte organic în descentralizare (deși uneori se întâmplă poate fi de folos).

Uneori trebuie să păstrezi ceea ce „nu-ți place”. Există un astfel de cuvânt ca „trebuie” :)
«Semne de carte” (sau „Preferate”) - nu exprim o afinitate pentru conținut, dar îl salvez în baza de date locală de marcaje. Cuvântul „favorite” nu este destul de potrivit ca semnificație (pentru aceasta există aprecieri și clasificarea lor ulterioară), dar „marcajele” sunt destul de potrivite. Conținutul din „marcaje” este, de asemenea, distribuit - dacă „aveți nevoie” de el (adică îl „utilizați” într-un fel sau altul), atunci este logic ca altcineva să „avea nevoie” de el. De ce să nu-ți folosești resursele pentru a face asta?

Functia "prieteni". Aceștia sunt colegi, oameni cu interese similare și, prin urmare, cei care sunt cel mai probabil să aibă conținut interesant. Într-o rețea descentralizată, acest lucru înseamnă în primul rând să vă abonați la fluxurile de știri de la prieteni și să accesați cataloagele (albumele) acestora cu conținutul salvat.

Similar cu funcția "grupuri„- un fel de fluxuri colective, sau forumuri, sau ceva la care te poți abona și asta înseamnă să accepți toate materialele grupului și să le distribui. Poate că „grupurile”, precum forumurile mari, ar trebui să fie ierarhice - acest lucru va permite o mai bună structurare a conținutului grupului, precum și limitarea fluxului de informații și nu acceptarea/distribuirea a ceea ce nu este foarte interesant pentru dvs.

Toate celelalte

Trebuie remarcat faptul că o arhitectură descentralizată este întotdeauna mai complexă decât una centralizată. În resursele centralizate există un dictat strict al codului serverului. În cele descentralizate, este nevoie de negocieri între mulți participanți egali. Desigur, acest lucru nu se poate face fără criptografie, blockchain și alte realizări dezvoltate în principal pe criptomonede.

Presupun că ar putea fi necesare un fel de evaluări criptografice de încredere reciprocă formate de participanții la rețea unul pentru celălalt. Arhitectura ar trebui să permită combaterea eficientă a botnet-urilor, care, existând într-un anumit cloud, își pot, de exemplu, să-și mărească reciproc propriile evaluări. Îmi doresc foarte mult ca corporațiile și fermele botnet, cu toată superioritatea lor tehnologică, să nu preia controlul asupra unei astfel de rețele descentralizate; astfel încât resursa sa principală este oamenii vii capabili să producă și să structureze conținut care este interesant și util pentru alți oameni vii.

De asemenea, vreau ca o astfel de rețea să îndrepte civilizația către progres. Am o grămadă de idei despre acest subiect, care, totuși, nu se încadrează în scopul acestui articol. Voi spune doar că într-un anumit fel științific, tehnic, medical etc. conținutul ar trebui să aibă prioritate față de divertisment, iar acest lucru va necesita un fel de moderare. Moderarea unei rețele descentralizate în sine este o sarcină netrivială, dar poate fi rezolvată (cu toate acestea, cuvântul „moderare” aici este complet incorect și nu reflectă deloc esența procesului - nici extern, nici intern... și Nici nu m-am putut gândi cum s-ar putea numi acest proces).

Probabil că ar fi inutil să menționăm necesitatea asigurării anonimatului, atât prin mijloace încorporate (ca în i2p sau Retroshare), cât și prin trecerea întregului trafic prin TOR sau VPN.

Și în sfârșit, arhitectura software (desenată schematic în imaginea articolului). După cum am menționat deja, prima componentă a sistemului este un plugin de browser care captează conținut cu metainformații. A doua cea mai importantă componentă este serviciul p2p, care rulează în fundal („backend”). În mod evident, funcționarea rețelei nu ar trebui să depindă de dacă browserul rulează. A treia componentă este software-ul client - frontend. Acesta poate fi un serviciu web local (în acest caz, utilizatorul va putea lucra cu o rețea descentralizată fără a părăsi browserul preferat) sau o aplicație GUI separată pentru un anumit sistem de operare (Windows, Linux, MacOS, Andriod, iOS, etc.). Îmi place ideea că toate opțiunile de front-end există în același timp. În același timp, acest lucru va necesita o arhitectură backend mai strictă.

Există multe alte aspecte care nu sunt incluse în acest articol. Conectarea la distribuția stocurilor de fișiere existente (adică atunci când aveți deja câțiva terabytes de date pompate și lăsați clientul să le scaneze, să obțină hashuri, să le comparați cu ceea ce este în interiorul rețelei și să vă alăturați distribuției și, în același timp, timpul obține metainformații despre propriile fișiere - nume obișnuite, descrieri, evaluări, recenzii etc.), conectarea surselor externe de metainformații (cum ar fi baza de date Libgen), utilizarea opțională a spațiului pe disc pentru a stoca conținutul criptat al altor persoane (ca în Freenet). ), arhitectura de integrare cu rețelele descentralizate existente (aceasta este o pădure complet întunecată), ideea de hashing media (folosirea hashurilor perceptuale speciale pentru conținutul media - imagini, audio și video, care vă va permite să comparați fișierele media ale același sens, care diferă în dimensiune, rezoluție etc.) și multe altele.

Scurt rezumat al articolului

1. În rețelele descentralizate nu există Google cu căutarea și clasarea lui – dar există o Comunitate de oameni reali. O rețea socială cu mecanismele sale de feedback (like-uri, repostări...) și graficul social (prieteni, comunități...) este un model de strat de aplicație ideal pentru o rețea descentralizată
2. Ideea principală pe care o aduc cu acest articol este salvarea automată a conținutului interesant de pe Internetul obișnuit atunci când setați un like/repost; acest lucru poate fi util fără p2p, menținând doar o arhivă personală de informații interesante
3. Acest conținut poate, de asemenea, umple automat rețeaua descentralizată
4. Principiul salvării automate a conținutului interesant funcționează și cu like-uri/repostări în cea mai descentralizată rețea

Sursa: www.habr.com

Adauga un comentariu