Ideen om et næste generations decentraliseret socialt netværk

Ideen om et næste generations decentraliseret socialt netværk
I denne artikel præsenterer jeg for dig mine tanker om historien og udsigterne for udviklingen af ​​internettet, centraliserede og decentraliserede netværk og, som et resultat, den mulige arkitektur af næste generation af decentraliserede netværk.

Der er noget galt med internettet

Jeg stiftede første gang bekendtskab med internettet i 2000. Det er selvfølgelig langt fra begyndelsen - netværket eksisterede allerede før dette, men den tid kan kaldes internettets første storhedstid. World Wide Web er den geniale opfindelse af Tim Berners-Lee, web1.0 i sin klassiske kanoniske form. Mange websteder og sider linker til hinanden med hyperlinks. Ved første øjekast er arkitekturen enkel, ligesom alle geniale ting: decentraliseret og gratis. Jeg vil - jeg rejser til andres websteder ved at følge hyperlinks; Jeg vil lave min egen hjemmeside, hvor jeg publicerer det, der interesserer mig - for eksempel mine artikler, fotografier, programmer, hyperlinks til sider, der er interessante for mig. Og andre poster links til mig.

Det ville virke som et idyllisk billede? Men du ved allerede, hvordan det hele endte.

Der er for mange sider, og at søge efter information er blevet en meget ikke-triviel opgave. Hyperlinks foreskrevet af forfatterne kunne simpelthen ikke strukturere denne enorme mængde information. Først var der manuelt udfyldte mapper, og derefter gigantiske søgemaskiner, der begyndte at bruge geniale heuristiske rangordningsalgoritmer. Hjemmesider blev oprettet og forladt, information blev duplikeret og forvrænget. Internettet blev hurtigt kommercialiseret og bevægede sig længere væk fra det ideelle akademiske netværk. Markup-sprog blev hurtigt et formateringssprog. Der dukkede reklamer op, grimme irriterende bannere og en teknologi til at promovere og bedrage søgemaskiner - SEO. Netværket var hurtigt ved at blive tilstoppet med informationsaffald. Hyperlinks er ophørt med at være et værktøj til logisk kommunikation og er blevet et værktøj til promovering. Hjemmesider lukkede sig om sig selv, blev fra åbne "sider" til lukkede "applikationer" og blev kun et middel til at generere indtægter.

Allerede dengang havde jeg en bestemt tanke om, at "der er noget galt her." En masse forskellige websteder, lige fra primitive hjemmesider med et googly-eyed udseende, til "mega-portaler" overlæsset med blinkende bannere. Selvom siderne handler om det samme emne, er de slet ikke relaterede, hver har sit eget design, sin egen struktur, irriterende bannere, dårligt fungerende søgning, problemer med at downloade (ja, jeg ville gerne have information offline). Allerede dengang var internettet begyndt at blive til en slags fjernsyn, hvor alverdens tinsel blev naglet til brugbart indhold.
Decentralisering er blevet et mareridt.

Hvad vil du have?

Det er paradoksalt, men selv da jeg endnu ikke kendte til web 2.0 eller p2p, havde jeg som bruger ikke brug for decentralisering! Idet jeg husker mine uklare tanker fra dengang, kommer jeg til den konklusion, at jeg havde brug for... samlet database! En sådan forespørgsel, som ville returnere alle resultaterne, og ikke dem, der er bedst egnede til rangeringsalgoritmen. En, hvor alle disse resultater ville blive designet ensartet og stiliseret af mit eget ensartede design, og ikke af de iøjnefaldende selvfremstillede designs af adskillige Vasya Pupkins. En, der kunne gemmes offline og ikke være bange for, at siden i morgen forsvinder, og informationen vil gå tabt for altid. En, hvor jeg kunne indtaste mine oplysninger, såsom kommentarer og tags. En hvor jeg kunne søge, sortere og filtrere med mine egne personlige algoritmer.

Web 2.0 og sociale netværk

I mellemtiden kom konceptet Web 2.0 ind på arenaen. Formuleret i 2005 af Tim O'Reilly som "en teknik til at designe systemer, der ved at tage hensyn til netværksinteraktioner bliver bedre, jo flere mennesker bruger dem" - og indebærer brugernes aktive involvering i den kollektive skabelse og redigering af webindhold. Uden overdrivelse var dette koncepts højdepunkt og triumf sociale netværk. Kæmpe platforme, der forbinder milliarder af brugere og gemmer hundredvis af petabyte data.

Hvad fik vi på sociale netværk?

  • grænseflade forening; det viste sig, at brugerne ikke har brug for alle muligheder for at skabe en række iøjnefaldende designs; alle sider for alle brugere har det samme design, og dette passer til alle og er endda praktisk; Kun indholdet er anderledes.
  • forening af funktionalitet; alle de mange forskellige scripts viste sig at være unødvendige. "Feed", venner, album ... under eksistensen af ​​sociale netværk er deres funktionalitet mere eller mindre stabiliseret og vil sandsynligvis ikke ændre sig: funktionaliteten bestemmes trods alt af typen af ​​folks aktiviteter, og folk ændrer sig praktisk talt ikke .
  • enkelt database; det viste sig at være meget mere bekvemt at arbejde med en sådan database end med mange forskellige websteder; søgning er blevet meget nemmere. I stedet for kontinuerligt at scanne en række løst relaterede sider, cache det hele, rangordne ved hjælp af komplekse heuristiske algoritmer - en relativt simpel samlet forespørgsel til en enkelt database med en kendt struktur.
  • feedback-grænseflade - likes og reposts; på det almindelige web kunne den samme Google ikke få feedback fra brugerne efter at have fulgt et link i søgeresultaterne. På sociale netværk viste denne forbindelse sig at være enkel og naturlig.

Hvad har vi mistet? Vi har mistet decentralisering, hvilket betyder frihed. Det menes, at vores data nu ikke tilhører os. Hvis vi tidligere kunne placere en hjemmeside selv på vores egen computer, giver vi nu alle vores data til internetgiganter.

Efterhånden som internettet udviklede sig, blev regeringer og virksomheder desuden interesserede i det, hvilket rejste problemer med politisk censur og ophavsretsbegrænsninger. Vores sider på sociale netværk kan forbydes og slettes, hvis indholdet ikke overholder nogen regler for det sociale netværk; for en skødesløs stilling - bringe til administrativt og endda strafferetligt ansvar.

Og nu tænker vi igen: Skal vi ikke vende tilbage til decentralisering? Men i en anden form, blottet for manglerne ved det første forsøg?

Peer-to-peer netværk

De første p2p-netværk dukkede op længe før web 2.0 og udviklede sig sideløbende med udviklingen af ​​nettet. Den vigtigste klassiske anvendelse af p2p er fildeling; de første netværk blev udviklet til udveksling af musik. De første netværk (såsom Napster) var i det væsentlige centraliserede, og derfor blev de hurtigt lukket ned af copyright-indehavere. Tilhængere fulgte decentraliseringens vej. I 2000 dukkede ED2K (den første eDokney-klient) og Gnutella-protokoller op, i 2001 - FastTrack-protokollen (KaZaA-klient). Gradvist steg graden af ​​decentralisering, teknologierne blev forbedret. "Download-kø"-systemer blev erstattet af torrents, og konceptet med distribuerede hashtabeller (DHT) dukkede op. I takt med at staterne strammer skruerne, er deltagernes anonymitet blevet mere efterspurgt. Freenet-netværket er blevet udviklet siden 2000, I2003P siden 2, og RetroShare-projektet blev lanceret i 2006. Vi kan nævne adskillige p2p-netværk, både tidligere eksisterende og allerede forsvundet, og i øjeblikket i drift: WASTE, MUTE, TurtleF2F, RShare, PerfectDark, ARES, Gnutella2, GNUNet, IPFS, ZeroNet, Tribbler og mange andre. Mange af dem. De er forskellige. Meget forskellige - både i formål og i design... Sandsynligvis er mange af jer ikke engang bekendt med alle disse navne. Og dette er ikke alt.

P2p-netværk har dog mange ulemper. Ud over de tekniske mangler, der er iboende i hver specifik protokol og klientimplementering, kan vi for eksempel bemærke en ret generel ulempe - kompleksiteten af ​​søgning (dvs. alt, hvad Web 1.0 stødte på, men i en endnu mere kompleks version). Der er ingen Google her med sin allestedsnærværende og øjeblikkelige søgning. Og hvis du til fildelingsnetværk stadig kan bruge en søgning efter filnavn eller metainformation, så er det meget svært, hvis ikke umuligt at finde noget, f.eks. i løg- eller i2p-overlejringsnetværk.

Generelt, hvis vi tegner analogier med det klassiske internet, så sidder de fleste decentrale netværk fast et eller andet sted på FTP-niveau. Forestil dig et internet, hvor der ikke er andet end FTP: ingen moderne websteder, ingen web2.0, ingen Youtube... Dette er omtrent decentraliserede netværks tilstand. Og på trods af individuelle forsøg på at ændre noget, er der få ændringer indtil videre.

Indhold

Lad os vende tilbage til en anden vigtig brik i dette puslespil - indhold. Indhold er hovedproblemet for enhver internetressource, og især en decentral. Hvor får man det fra? Selvfølgelig kan du stole på en håndfuld entusiaster (som det er, hvad der sker med eksisterende p2p-netværk), men så vil udviklingen af ​​netværket være ret lang, og der vil være lidt indhold der.

At arbejde med det almindelige internet betyder at søge og studere indhold. Nogle gange - gemmer (hvis indholdet er interessant og nyttigt, så gemmer mange, især dem, der kom til internettet i opkaldstiden - inklusive mig - det forsigtigt offline for ikke at gå tabt; fordi internettet er en ting uden for vores kontrol, i dag er siden der i morgen er der ingen , i dag er der en video på YouTube - i morgen bliver den slettet osv.

Og for torrents (som vi opfatter mere som blot et leveringsmiddel end som et p2p-netværk), er besparelse generelt underforstået. Og dette er i øvrigt et af problemerne med torrents: en fil, der er downloadet én gang, er svær at flytte til, hvor den er mere bekvem at bruge (som regel skal du genskabe distributionen manuelt) og kan absolut ikke omdøbes ( du kan hardlink det, men meget få mennesker ved om dette).

Generelt gemmer mange mennesker indhold på den ene eller anden måde. Hvad er hans fremtidige skæbne? Typisk ender gemte filer et sted på disken, i en mappe som Downloads, i den generelle bunke og ligger der sammen med mange tusinde andre filer. Dette er dårligt – og dårligt for brugeren selv. Hvis internettet har søgemaskiner, har brugerens lokale computer ikke noget lignende. Det er godt, hvis brugeren er pæn og vant til at sortere "indkommende" downloadede filer. Men ikke alle er sådan...

Faktisk er der efterhånden mange, der ikke sparer noget, men stoler helt på nettet. Men i p2p-netværk antages det, at indholdet gemmes lokalt på brugerens enhed og distribueres til andre deltagere. Er det muligt at finde en løsning, der gør det muligt for begge kategorier af brugere at blive involveret i et decentraliseret netværk uden at ændre deres vaner og desuden gøre deres liv lettere?

Ideen er ret enkel: hvad nu hvis vi laver et middel til at gemme indhold fra det almindelige internet, praktisk og gennemsigtigt for brugeren, og smart lagring - med semantisk metainformation, og ikke i en fælles bunke, men i en bestemt struktur med muligheden for yderligere at strukturere, og samtidig distribuere det gemte indhold til et decentralt net?

Lad os starte med at spare

Vi vil ikke overveje den utilitaristiske brug af internettet til at se vejrudsigter eller flyveplaner. Vi er mere interesserede i selvforsynende og mere eller mindre uforanderlige objekter – artikler (fra tweets/opslag fra sociale netværk til store artikler, som her på Habré), bøger, billeder, programmer, lyd- og videooptagelser. Hvor kommer informationen for det meste fra? Normalt dette

  • sociale netværk (diverse nyheder, små noter - "tweets", billeder, lyd og video)
  • artikler om tematiske ressourcer (såsom Habr); Der er ikke mange gode ressourcer, normalt er disse ressourcer også bygget på princippet om sociale netværk
  • nyhedssider

Som regel er der standardfunktioner: "synes godt om", "repost", "del på sociale netværk" osv.

Lad os forestille os nogle browser plugin, som specielt vil gemme alt, hvad vi kunne lide, genindstillet, gemt i "favoritter" (eller klikket på en speciel plugin-knap vist i browsermenuen - i tilfælde af at webstedet ikke har en like/repost/bogmærke-funktion). Hovedideen er, at du simpelthen kan lide det - som du har gjort en million gange før, og systemet gemmer artiklen, billedet eller videoen i et særligt offline lager, og denne artikel eller billede bliver tilgængelig - og for dig til offline visning via decentraliseret klientgrænseflade, og i det mest decentraliserede netværk! Efter min mening er det meget praktisk. Der er ingen unødvendige handlinger, og vi løser mange problemer på én gang:

  • Bevaring af værdifuldt indhold, der kan gå tabt eller slettes
  • hurtig udfyldning af det decentrale netværk
  • aggregering af indhold fra forskellige kilder (du kan være registreret i snesevis af internetressourcer, og alle likes/reposts vil flyde ind i en enkelt lokal database)
  • strukturere indhold, der interesserer dig iflg din regler

Det er klart, at browser-plugin'et skal konfigureres til strukturen på hvert websted (dette er ret realistisk - der er allerede plugins til at gemme indhold fra Youtube, Twitter, VK osv.). Der er ikke så mange sider, som det giver mening at lave personlige plugins for. Som regel er disse almindelige sociale netværk (der er næppe mere end et dusin af dem) og en række tematiske websteder af høj kvalitet som Habr (der er også et par af disse). Med åben kildekode og specifikationer bør udvikling af et nyt plugin baseret på en skabelon ikke tage meget tid. For andre websteder kan du bruge en universel gem-knap, som ville gemme hele siden i mhtml - måske efter først at have ryddet siden for annoncering.

Nu om strukturering

Med "smart" lagring mener jeg i det mindste at gemme med metainformation: kilden til indholdet (URL), et sæt tidligere indstillede likes, tags, kommentarer, deres identifikatorer osv. Når alt kommer til alt, under normal lagring, går denne information tabt... Kilden kan ikke kun forstås som en direkte URL, men også som en semantisk komponent: for eksempel en gruppe på et socialt netværk eller en bruger, der har lavet en repost. Pluginnet kan være smart nok til at bruge disse oplysninger til automatisk strukturering og tagging. Det skal også forstås, at brugeren selv altid kan tilføje nogle meta-informationer til det gemte indhold, til hvilket formål de mest bekvemme grænsefladeværktøjer skal stilles til rådighed (jeg har en hel del ideer til, hvordan man gør dette).

Dermed er spørgsmålet om strukturering og organisering af brugerens lokale filer løst. Dette er en færdiglavet fordel, der kan bruges selv uden nogen p2p. Bare en slags offline database, der ved hvad, hvor og i hvilken sammenhæng vi har gemt, og som giver os mulighed for at lave små undersøgelser. Find for eksempel brugere af et eksternt socialt netværk, der kunne lide de samme opslag som dig. Hvor mange sociale netværk tillader dette eksplicit?

Det skal allerede nævnes her, at ét browser-plugin bestemt ikke er nok. Den næstvigtigste komponent i systemet er den decentraliserede netværkstjeneste, som kører i baggrunden og betjener både selve p2p-netværket (anmodninger fra netværket og anmodninger fra klienten) og lagring af nyt indhold ved hjælp af pluginnet. Tjenesten, der arbejder sammen med plugin'et, vil placere indholdet det rigtige sted, beregne hashes (og muligvis fastslå, at sådant indhold allerede er blevet gemt tidligere) og tilføje den nødvendige metainformation til den lokale database.

Det interessante er, at systemet ville være nyttigt allerede i denne form, uden nogen p2p. Mange bruger webklippere, der f.eks. tilføjer interessant indhold fra nettet til Evernote. Den foreslåede arkitektur er en udvidet version af sådan en klipper.

Og endelig, p2p-udveksling

Det bedste er, at information og metainformation (både hentet fra nettet og din egen) kan udveksles. Konceptet med et socialt netværk overføres perfekt til p2p-arkitektur. Vi kan sige, at det sociale netværk og p2p ser ud til at være lavet til hinanden. Ethvert decentraliseret netværk bør ideelt set bygges som et socialt netværk, først da vil det fungere effektivt. "Venner", "Grupper" - det er de samme jævnaldrende, som der skal være stabile forbindelser med, og disse er taget fra en naturlig kilde - brugernes fælles interesser.

Principperne for at gemme og distribuere indhold i et decentralt netværk er fuldstændig identiske med principperne for at gemme (fange) indhold fra det almindelige internet. Hvis du bruger noget indhold fra netværket (og derfor har gemt det), så kan enhver bruge dine ressourcer (disk og kanal), der er nødvendige for at modtage netop dette indhold.

Kan lide — det enkleste værktøj til lagring og deling. Hvis jeg kunne lide det - uanset på det eksterne internet eller inde i det decentrale netværk - betyder det, at jeg kan lide indholdet, og hvis ja, så er jeg klar til at beholde det lokalt og distribuere det til andre deltagere i det decentrale netværk.

  • Indhold vil ikke gå tabt; det er nu gemt lokalt, jeg kan vende tilbage til det senere, når som helst uden at bekymre mig om, at nogen sletter eller blokerer det
  • Jeg kan (umiddelbart eller senere) kategorisere det, tagge det, kommentere det, associere det med andet indhold og generelt gøre noget meningsfuldt med det - lad os kalde det "generering af metainformation."
  • Jeg kan dele denne metainformation med andre netværksmedlemmer
  • Jeg kan synkronisere mine metaoplysninger med andre medlemmers metaoplysninger

Sandsynligvis virker det også logisk at opgive antipatier: Hvis jeg ikke kan lide indholdet, så er det ret logisk, at jeg ikke vil spilde min diskplads til opbevaring og min internetkanal til at distribuere dette indhold. Derfor passer antipatier ikke særlig organisk ind i decentralisering (selv om det nogle gange gør det kan være nyttigt).

Nogle gange er du nødt til at beholde det, du "ikke kan lide". Der er sådan et ord som "skal" :)
«bogmærker” (eller “Favoritter”) - Jeg udtrykker ikke en affinitet til indholdet, men jeg gemmer det i min lokale bogmærkedatabase. Ordet "favoritter" er ikke helt passende i betydningen (til dette er der likes og deres efterfølgende kategorisering), men "bogmærker" er ret egnede. Indhold i "bogmærker" distribueres også - hvis du "bruger" det (det vil sige, du "bruger" det på den ene eller anden måde), så er det logisk, at en anden kan "bruge" det. Hvorfor ikke bruge dine ressourcer til at gøre dette?

Funktionen "друзья". Det er jævnaldrende, folk med lignende interesser og derfor dem, der med størst sandsynlighed har interessant indhold. På et decentralt netværk betyder det primært at abonnere på nyhedsfeeds fra venner og få adgang til deres kataloger (album) med indhold, de har gemt.

Svarende til funktionen "grupper"- en slags kollektive feeds, eller fora eller noget, som du også kan abonnere på - og det betyder, at du accepterer alle gruppens materialer og distribuerer dem. Måske bør "grupper", ligesom store fora, være hierarkiske - dette vil give mulighed for bedre strukturering af gruppeindhold, samt begrænse informationsstrømmen og ikke acceptere/distribuere det, der ikke er særlig interessant for dig.

Resten

Det skal bemærkes, at en decentraliseret arkitektur altid er mere kompleks end en centraliseret. I centraliserede ressourcer er der et strengt diktat af serverkoden. I decentrale er der behov for at forhandle mellem mange ligeværdige deltagere. Dette kan selvfølgelig ikke lade sig gøre uden kryptografi, blockchains og andre præstationer udviklet hovedsageligt på kryptovalutaer.

Jeg antager, at en form for kryptografiske gensidige tillidsvurderinger dannet af netværksdeltagere for hinanden kan være påkrævet. Arkitekturen skal gøre det muligt effektivt at bekæmpe botnets, som, der eksisterer i en bestemt sky, for eksempel gensidigt kan øge deres egne ratings. Jeg ønsker virkelig, at virksomheder og botnetfarme, med al deres teknologiske overlegenhed, ikke skal overtage kontrollen over et sådant decentraliseret netværk; så dens vigtigste ressource er levende mennesker, der er i stand til at producere og strukturere indhold, der er interessant og nyttigt for andre levende mennesker.

Jeg ønsker også, at et sådant netværk skal bevæge civilisationen mod fremskridt. Jeg har en hel masse ideer om dette emne, som dog ikke passer ind i denne artikels rammer. Jeg vil kun sige, at på en bestemt måde videnskabelig, teknisk, medicinsk osv. indhold bør have forrang frem for underholdning, og dette vil kræve en form for mådehold. Moderering af et decentralt netværk i sig selv er en ikke-triviel opgave, men den kan løses (dog er ordet "moderering" her fuldstændig forkert og afspejler slet ikke essensen af ​​processen - hverken eksternt eller internt... og Jeg kunne ikke engang komme i tanke om, hvad denne proces kunne kaldes).

Det ville nok være unødvendigt at nævne behovet for at sikre anonymitet, både med indbyggede midler (som i i2p eller Retroshare) og ved at sende al trafik gennem TOR eller VPN.

Og endelig softwarearkitekturen (skematisk tegnet på billedet til artiklen). Som allerede nævnt er den første komponent i systemet et browser-plugin, der fanger indhold med metainformation. Den næstvigtigste komponent er p2p-tjenesten, som kører i baggrunden ("backend"). Driften af ​​netværket skal naturligvis ikke afhænge af, om browseren kører. Den tredje komponent er klientsoftwaren - frontend. Dette kan være en lokal webtjeneste (i dette tilfælde vil brugeren være i stand til at arbejde med et decentraliseret netværk uden at forlade sin yndlingsbrowser) eller en separat GUI-applikation til et specifikt OS (Windows, Linux, MacOS, Andriod, iOS, etc.). Jeg kan godt lide ideen om, at alle frontend-muligheder eksisterer på samme tid. Dette vil samtidig kræve en mere stram backend-arkitektur.

Der er mange flere aspekter, som ikke er inkluderet i denne artikel. Tilslutning til distributionen af ​​eksisterende fillager (dvs. når du allerede har et par terabyte pumpede data, og du lader klienten scanne det, hente hashes, sammenligne dem med det, der er inde i netværket og tilslutte sig distributionen, og samtidig tid får metainformation om deres egne filer - normale navne, beskrivelser, vurderinger, anmeldelser osv.), tilslutning af eksterne kilder til metainformation (såsom Libgen-databasen), valgfri brug af diskplads til at gemme andres krypterede indhold (som i Freenet ), integrationsarkitektur med eksisterende decentraliserede netværk (dette er en fuldstændig mørk skov), ideen om mediehashing (brugen af ​​specielle perceptuelle hashes til medieindhold - billeder, lyd og video, som giver dig mulighed for at sammenligne mediefiler af samme betydning, forskellig i størrelse, opløsning osv.) og meget mere.

Kort opsummering af artiklen

1. I decentrale netværk er der ingen Google med dens søgning og rangering - men der er et Fællesskab af rigtige mennesker. Et socialt netværk med dets feedback-mekanismer (likes, reposts...) og sociale grafer (venner, communities...) er en ideel applikationslagsmodel for et decentraliseret netværk
2. Hovedideen, som jeg kommer med med denne artikel, er den automatiske lagring af interessant indhold fra det almindelige internet, når du indstiller et like/repost; dette kan være nyttigt uden p2p, blot vedligeholde et personligt arkiv med interessante oplysninger
3. Dette indhold kan også automatisk fylde det decentraliserede netværk
4. Princippet om automatisk at gemme interessant indhold fungerer også med likes/reposts i det mest decentrale netværk

Kilde: www.habr.com

Tilføj en kommentar