L’idea di un social network decentralizzato di prossima generazione

L’idea di un social network decentralizzato di prossima generazione
In questo articolo vi presento il mio pensiero sulla storia e le prospettive di sviluppo di Internet, delle reti centralizzate e decentralizzate e, di conseguenza, sulla possibile architettura della rete decentralizzata di prossima generazione.

C'è qualcosa che non va in Internet

Ho conosciuto Internet per la prima volta nel 2000. Naturalmente, questo è ben lontano dall'inizio: la rete esisteva già prima, ma quel periodo può essere definito il primo periodo di massimo splendore di Internet. Il World Wide Web è l'ingegnosa invenzione di Tim Berners-Lee, web1.0 nella sua classica forma canonica. Molti siti e pagine sono collegati tra loro tramite collegamenti ipertestuali. A prima vista, l’architettura è semplice, come tutte le cose ingegnose: decentralizzato e gratuito. Voglio: visito i siti di altre persone seguendo i collegamenti ipertestuali; Voglio creare il mio sito web sul quale pubblico ciò che mi interessa, ad esempio i miei articoli, fotografie, programmi, collegamenti ipertestuali a siti che mi interessano. E altri postano link a me.

Sembrerebbe un quadro idilliaco? Ma sai già come è andata a finire.

Ci sono troppe pagine e la ricerca di informazioni è diventata un compito non banale. I collegamenti ipertestuali prescritti dagli autori semplicemente non potevano strutturare questa enorme quantità di informazioni. Prima ci furono le directory compilate manualmente, e poi i giganteschi motori di ricerca che iniziarono a utilizzare ingegnosi algoritmi di classificazione euristica. I siti web sono stati creati e abbandonati, le informazioni sono state duplicate e distorte. Internet si stava rapidamente commercializzando e si stava allontanando sempre più dalla rete accademica ideale. Il linguaggio di markup è diventato rapidamente un linguaggio di formattazione. Sono apparse pubblicità, banner fastidiosi e una tecnologia per promuovere e ingannare i motori di ricerca: SEO. La rete si stava rapidamente intasando di informazioni spazzatura. I collegamenti ipertestuali hanno cessato di essere uno strumento di comunicazione logica e sono diventati uno strumento di promozione. I siti web si sono chiusi in se stessi, si sono trasformati da “pagine” aperte in “applicazioni” sigillate e sono diventati solo mezzi per generare reddito.

Già allora avevo la sensazione che “qui c’è qualcosa che non va”. Un mucchio di siti diversi, che vanno da home page primitive con un aspetto strabico, a "mega portali" sovraccarichi di banner lampeggianti. Anche se i siti trattano lo stesso argomento, non sono affatto correlati, ognuno ha il proprio design, la propria struttura, banner fastidiosi, ricerca mal funzionante, problemi con il download (sì, volevo avere informazioni offline). Anche allora, Internet stava cominciando a trasformarsi in una sorta di televisione, in cui ogni sorta di orpelli veniva inchiodato a contenuti utili.
La decentralizzazione è diventata un incubo.

Cosa vuoi?

È paradossale, ma anche allora, non conoscendo ancora il web 2.0 o il p2p, io, come utente, non avevo bisogno del decentramento! Ricordando i miei pensieri sereni di quei tempi, giungo alla conclusione che avevo bisogno... banca dati unificata! Una query di questo tipo restituirebbe tutti i risultati e non quelli più adatti all'algoritmo di classificazione. Uno in cui tutti questi risultati sarebbero disegnati in modo uniforme e stilizzati dal mio stesso design uniforme, e non dai disegni strabilianti fatti da sé di numerosi Vasya Pupkins. Uno che potrebbe essere salvato offline e non aver paura che domani il sito scomparirà e le informazioni andranno perse per sempre. Uno in cui potrei inserire le mie informazioni, come commenti e tag. Uno in cui potrei cercare, ordinare e filtrare con i miei algoritmi personali.

Web 2.0 e social network

Nel frattempo è entrato nell’arena il concetto di Web 2.0. Formulato nel 2005 da Tim O'Reilly come "una tecnica per progettare sistemi che, tenendo conto delle interazioni di rete, migliorano quanto più persone li utilizzano" - e implica il coinvolgimento attivo degli utenti nella creazione collettiva e nella modifica dei contenuti web. Senza esagerare, l’apice e il trionfo di questo concetto sono stati i social network. Piattaforme giganti che collegano miliardi di utenti e archiviano centinaia di petabyte di dati.

Cosa abbiamo ottenuto sui social network?

  • unificazione delle interfacce; si è scoperto che gli utenti non hanno bisogno di tutte le opportunità per creare una varietà di design accattivanti; tutte le pagine di tutti gli utenti hanno lo stesso design e questo sta bene a tutti ed è anche comodo; Solo il contenuto è diverso.
  • unificazione delle funzionalità; tutta la varietà di script si è rivelata superflua. "Feed", amici, album... durante l'esistenza dei social network, la loro funzionalità si è più o meno stabilizzata ed è improbabile che cambi: dopotutto, la funzionalità è determinata dal tipo di attività delle persone, e le persone praticamente non cambiano .
  • banca dati unica; si è rivelato molto più conveniente lavorare con un database del genere che con molti siti disparati; la ricerca è diventata molto più semplice. Invece di scansionare continuamente una varietà di pagine vagamente correlate, memorizzarle tutte nella cache e classificarle utilizzando complessi algoritmi euristici: una query unificata relativamente semplice su un singolo database con una struttura nota.
  • interfaccia di feedback: Mi piace e ripubblicazioni; sul Web normale, lo stesso Google non poteva ottenere feedback dagli utenti dopo aver seguito un collegamento nei risultati di ricerca. Sui social network questa connessione si è rivelata semplice e naturale.

Cosa abbiamo perso? Abbiamo perso il decentramento, che significa libertà. Si ritiene che i nostri dati ora non ci appartengano. Se prima potevamo inserire una home page anche sul nostro computer, ora diamo tutti i nostri dati ai giganti di Internet.

Inoltre, con lo sviluppo di Internet, i governi e le aziende si sono interessati ad essa, il che ha sollevato problemi di censura politica e restrizioni sul copyright. Le nostre pagine sui social network possono essere bannate e cancellate se il contenuto non rispetta alcuna regola del social network; per un incarico imprudente - comportare responsabilità amministrativa e persino penale.

E ora ci ripensiamo: non dovremmo ripristinare il decentramento? Ma in una forma diversa, priva dei difetti del primo tentativo?

Reti peer-to-peer

Le prime reti p2p sono apparse molto prima del web 2.0 e si sono sviluppate parallelamente allo sviluppo del web. La principale applicazione classica del p2p è la condivisione di file; si svilupparono le prime reti per lo scambio di musica. Le prime reti (come Napster) erano essenzialmente centralizzate e quindi furono rapidamente chiuse dai detentori dei diritti d'autore. I seguaci hanno seguito il percorso del decentramento. Nel 2000 sono apparsi i protocolli ED2K (il primo client eDokney) e Gnutella, nel 2001 il protocollo FastTrack (client KaZaA). A poco a poco, il grado di decentramento è aumentato e le tecnologie sono migliorate. I sistemi di “coda di download” furono sostituiti dai torrent e apparve il concetto di tabelle hash distribuite (DHT). Mentre gli stati stringono le viti, l’anonimato dei partecipanti è diventato più richiesto. La rete Freenet è stata sviluppata dal 2000, I2003P dal 2 e il progetto RetroShare è stato lanciato nel 2006. Possiamo citare numerose reti p2p, sia preesistenti che già scomparse, ed attualmente operative: WASTE, MUTE, TurtleF2F, RShare, PerfectDark, ARES, Gnutella2, GNUNet, IPFS, ZeroNet, Tribbler e molte altre. Molti di loro. Sono diversi. Molto diversi, sia nello scopo che nel design... Probabilmente molti di voi non hanno nemmeno familiarità con tutti questi nomi. E questo non è tutto.

Tuttavia, le reti p2p presentano molti svantaggi. Oltre alle carenze tecniche inerenti a ciascun protocollo specifico e all'implementazione del client, possiamo, ad esempio, notare uno svantaggio abbastanza generale: la complessità della ricerca (ovvero tutto ciò che ha incontrato il Web 1.0, ma in una versione ancora più complessa). Non c'è Google qui con la sua ricerca onnipresente e istantanea. E se per le reti di condivisione file è ancora possibile utilizzare una ricerca per nome file o metainformazioni, trovare qualcosa, ad esempio, nelle reti Onion o Overlay i2p è molto difficile, se non impossibile.

In generale, se tracciamo analogie con Internet classico, la maggior parte delle reti decentralizzate è bloccata da qualche parte a livello FTP. Immagina un Internet in cui non ci sia altro che FTP: niente siti moderni, niente web2.0, niente Youtube... Questo è più o meno lo stato delle reti decentralizzate. E nonostante i tentativi individuali di cambiare qualcosa, finora ci sono pochi cambiamenti.

Contenuto

Passiamo ad un altro pezzo importante di questo puzzle: il contenuto. Il contenuto è il problema principale di qualsiasi risorsa Internet, soprattutto di quella decentralizzata. Da dove prenderlo? Certo, puoi contare su una manciata di appassionati (come succede con le reti p2p esistenti), ma lo sviluppo della rete sarà piuttosto lungo e ci saranno pochi contenuti.

Lavorare con Internet normale significa cercare e studiare contenuti. A volte - salvando (se il contenuto è interessante e utile, allora molti, soprattutto quelli che sono arrivati ​​a Internet ai tempi del dial-up - me compreso - lo salvano prudentemente offline per non perdersi; perché Internet è una cosa fuori dal nostro controllo, oggi il sito c'è, domani non c'è, oggi c'è un video su YouTube, domani verrà cancellato, ecc.

E per i torrent (che percepiamo più come un semplice mezzo di distribuzione che come una rete p2p), il risparmio è generalmente implicito. E questo, tra l'altro, è uno dei problemi con i torrent: un file scaricato una volta è difficile da spostare dove è più comodo da usare (di norma è necessario rigenerare manualmente la distribuzione) e non può assolutamente essere rinominato ( puoi collegarlo direttamente, ma pochissime persone lo sanno).

In generale, molte persone salvano i contenuti in un modo o nell'altro. Qual è il suo destino futuro? In genere, i file salvati finiscono da qualche parte sul disco, in una cartella come Download, nell'heap generale, e restano lì insieme a molte migliaia di altri file. Questo è negativo e negativo per l'utente stesso. Se Internet dispone di motori di ricerca, il computer locale dell'utente non ha nulla di simile. È positivo se l'utente è attento e abituato a ordinare i file scaricati "in entrata". Ma non tutti sono così...

Infatti, ormai sono molti quelli che non risparmiano nulla, ma si affidano interamente all'online. Ma nelle reti p2p si presuppone che il contenuto sia archiviato localmente sul dispositivo dell’utente e distribuito agli altri partecipanti. È possibile trovare una soluzione che permetta a entrambe le categorie di utenti di essere coinvolte in una rete decentralizzata senza modificare le loro abitudini e, soprattutto, semplificando loro la vita?

L'idea è abbastanza semplice: e se creassimo un mezzo per salvare contenuti da Internet normale, conveniente e trasparente per l'utente, e un salvataggio intelligente - con metainformazioni semantiche e non in un mucchio comune, ma in una struttura specifica con la possibilità di strutturare ulteriormente e allo stesso tempo distribuire i contenuti salvati su una rete decentralizzata?

Cominciamo con il salvataggio

Non prenderemo in considerazione l'uso utilitaristico di Internet per visualizzare le previsioni del tempo o gli orari degli aerei. Siamo più interessati a oggetti autosufficienti e più o meno immutabili: articoli (dai tweet/post dei social network agli articoli di grandi dimensioni, come qui su Habré), libri, immagini, programmi, registrazioni audio e video. Da dove provengono principalmente le informazioni? Di solito questo

  • social network (notizie varie, piccole note - “tweet”, immagini, audio e video)
  • articoli su risorse tematiche (come Habr); Non ci sono molte buone risorse, di solito queste risorse sono costruite anche secondo il principio dei social network
  • siti di notizie

Di norma, ci sono funzioni standard: "mi piace", "ripubblicare", "condividi sui social network", ecc.

Immaginiamone alcuni plug-in del browser, che salverà in modo speciale tutto ciò che ci è piaciuto, ripubblicato, salvato nei "preferiti" (o fatto clic su uno speciale pulsante plug-in visualizzato nel menu del browser - nel caso in cui il sito non disponga di una funzione Mi piace/ripubblica/segnalibro). L'idea principale è che semplicemente ti piaccia - come hai fatto un milione di volte prima, e il sistema salva l'articolo, l'immagine o il video in uno speciale archivio offline e questo articolo o immagine diventa disponibile - e a te per la visualizzazione offline attraverso il interfaccia client decentralizzata e nella rete più decentralizzata! Secondo me è molto conveniente. Non ci sono azioni inutili e risolviamo molti problemi contemporaneamente:

  • Preservare contenuti preziosi che potrebbero andare persi o cancellati
  • rapido riempimento della rete decentralizzata
  • aggregazione di contenuti provenienti da diverse fonti (puoi essere registrato in decine di risorse Internet e tutti i Mi piace/ripubblicati confluiranno in un unico database locale)
  • strutturare i contenuti che ti interessano in base la tua le regole

Ovviamente, il plug-in del browser deve essere configurato per la struttura di ciascun sito (questo è abbastanza realistico: esistono già plug-in per il salvataggio dei contenuti da Youtube, Twitter, VK, ecc.). Non sono molti i siti per i quali ha senso creare plugin personali. Di norma si tratta dei social network comuni (ce ne sono appena più di una dozzina) e di una serie di siti tematici di alta qualità come Habr (ce ne sono anche alcuni). Con il codice e le specifiche open source, lo sviluppo di un nuovo plugin basato su un modello non dovrebbe richiedere molto tempo. Per altri siti, puoi utilizzare un pulsante di salvataggio universale, che salverebbe l'intera pagina in mhtml, magari dopo aver prima ripulito la pagina dalla pubblicità.

Ora parliamo della strutturazione

Per salvataggio “intelligente” intendo almeno il salvataggio con meta informazioni: la fonte del contenuto (URL), un insieme di Mi piace, tag, commenti precedentemente impostati, i loro identificatori, ecc. Dopotutto, durante il normale salvataggio, queste informazioni vengono perse... La fonte può essere intesa non solo come un URL diretto, ma anche come una componente semantica: ad esempio, un gruppo su un social network o un utente che ha effettuato un repost. Il plugin può essere abbastanza intelligente da utilizzare queste informazioni per la strutturazione e il tagging automatici. Inoltre, dovrebbe essere chiaro che l'utente stesso può sempre aggiungere alcune metainformazioni al contenuto salvato, per questo scopo dovrebbero essere forniti gli strumenti di interfaccia più convenienti (ho molte idee su come farlo).

Pertanto, il problema della strutturazione e dell’organizzazione dei file locali dell’utente viene risolto. Questo è un vantaggio già pronto che può essere utilizzato anche senza p2p. Solo una sorta di database offline che sa cosa, dove e in quale contesto abbiamo salvato e ci consente di condurre piccoli studi. Ad esempio, trova gli utenti di un social network esterno a cui sono piaciuti di più i tuoi stessi post. Quanti social network lo consentono esplicitamente?

Va già detto qui che un plugin per il browser non è certamente sufficiente. Il secondo componente più importante del sistema è il servizio di rete decentralizzato, che funziona in background e serve sia la rete p2p stessa (richieste della rete e richieste del client) sia il salvataggio di nuovi contenuti tramite plugin. Il servizio, lavorando insieme al plugin, posizionerà il contenuto nel posto giusto, calcolerà gli hash (ed eventualmente determinerà che tale contenuto è già stato salvato in precedenza) e aggiungerà le metainformazioni necessarie al database locale.

La cosa interessante è che il sistema sarebbe utile già in questa forma, senza p2p. Molte persone utilizzano web clipper che aggiungono contenuti interessanti dal web a Evernote, ad esempio. L'architettura proposta è una versione estesa di tale clipper.

E infine, lo scambio p2p

La parte migliore è che le informazioni e le metainformazioni (sia catturate dal web che proprie) possono essere scambiate. Il concetto di social network si trasferisce perfettamente all'architettura p2p. Possiamo dire che il social network e il p2p sembrano fatti l'uno per l'altro. Qualsiasi rete decentralizzata dovrebbe idealmente essere costruita come una rete sociale, solo allora funzionerà in modo efficace. "Amici", "Gruppi" sono gli stessi colleghi con cui dovrebbero esserci connessioni stabili e sono presi da una fonte naturale: gli interessi comuni degli utenti.

I principi di salvataggio e distribuzione dei contenuti in una rete decentralizzata sono completamente identici ai principi di salvataggio (acquisizione) di contenuti dalla normale Internet. Se utilizzi del contenuto dalla rete (e quindi lo hai salvato), chiunque può utilizzare le tue risorse (disco e canale) necessarie per ricevere questo particolare contenuto.

husky — lo strumento di salvataggio e condivisione più semplice. Se mi è piaciuto, non importa su Internet esterno o all'interno della rete decentralizzata, significa che mi piace il contenuto e, in tal caso, sono pronto a mantenerlo localmente e distribuirlo ad altri partecipanti alla rete decentralizzata.

  • I contenuti non andranno “persi”; ora è salvato in locale, posso ritornarci in seguito, in qualsiasi momento, senza preoccuparmi che qualcuno lo elimini o lo blocchi
  • Posso (immediatamente o successivamente) categorizzarlo, taggarlo, commentarlo, associarlo ad altri contenuti e in generale fare qualcosa di significativo con esso: chiamiamola "generazione di metainformazione".
  • Posso condividere queste meta informazioni con altri membri della rete
  • Posso sincronizzare le mie meta informazioni con le meta informazioni degli altri membri

Probabilmente, anche rinunciare alle antipatie sembra logico: se non mi piace il contenuto, allora è abbastanza logico che non voglio sprecare il mio spazio su disco per l'archiviazione e il mio canale Internet per distribuire questo contenuto. Pertanto, le antipatie non si adattano in modo molto organico al decentramento (anche se a volte lo fa). può essere utile).

A volte è necessario mantenere ciò che “non ti piace”. Esiste una parola come "deve" :)
«Quota" (o "Preferiti") - Non esprimo un'affinità con il contenuto, ma lo salvo nel database dei segnalibri locale. La parola "preferiti" non ha un significato del tutto adatto (per questo ci sono i Mi piace e la loro successiva categorizzazione), ma i "segnalibri" sono abbastanza adatti. Anche il contenuto dei "segnalibri" viene distribuito: se ne "hai bisogno" (ovvero, lo "usi" in un modo o nell'altro), è logico che qualcun altro possa "averne bisogno". Perché non utilizzare le tue risorse per farlo?

La funzione "друзья". Si tratta di colleghi, persone con interessi simili e quindi coloro che hanno maggiori probabilità di avere contenuti interessanti. Su una rete decentralizzata, ciò significa principalmente iscriversi ai feed di notizie degli amici e accedere ai loro cataloghi (album) di contenuti che hanno salvato.

Simile alla funzione "gruppi“- una sorta di feed collettivi, o forum, o qualcosa del genere, a cui puoi anche iscriverti - e ciò significa accettare tutto il materiale del gruppo e distribuirlo. Forse i "gruppi", come i forum di grandi dimensioni, dovrebbero essere gerarchici: ciò consentirà una migliore strutturazione dei contenuti del gruppo, oltre a limitare il flusso di informazioni e a non accettare/distribuire ciò che non è molto interessante per te.

Tutto il resto

Va notato che un’architettura decentralizzata è sempre più complessa di una centralizzata. Nelle risorse centralizzate esiste un rigido dettato del codice del server. In quelli decentralizzati, è necessario negoziare tra molti partecipanti uguali. Naturalmente, questo non può essere fatto senza la crittografia, la blockchain e altre conquiste sviluppate principalmente sulle criptovalute.

Presumo che possa essere necessaria una sorta di valutazione crittografica di fiducia reciproca formata dai partecipanti alla rete l'uno per l'altro. L'architettura dovrebbe consentire di combattere efficacemente le botnet che, esistenti in un determinato cloud, possono, ad esempio, aumentare reciprocamente il proprio rating. Voglio davvero che le aziende e le botnet farm, con tutta la loro superiorità tecnologica, non prendano il controllo di una rete così decentralizzata; affinché la sua risorsa principale siano persone vive capaci di produrre e strutturare contenuti interessanti e utili per altre persone viventi.

Voglio anche che una tale rete muova la civiltà verso il progresso. Ho un sacco di idee su questo argomento, che, tuttavia, non rientrano nello scopo di questo articolo. Dirò solo che in un certo senso scientifico, tecnico, medico, ecc. i contenuti dovrebbero avere la precedenza sull’intrattenimento e ciò richiederà una sorta di moderazione. La moderazione di una rete decentralizzata in sé non è un compito banale, ma può essere risolto (tuttavia, la parola "moderazione" qui è completamente errata e non riflette affatto l'essenza del processo - né esternamente né internamente... e Non riuscivo nemmeno a pensare a come si potrebbe chiamare questo processo).

Probabilmente non sarebbe necessario menzionare la necessità di garantire l’anonimato, sia con mezzi integrati (come in i2p o Retroshare) sia facendo passare tutto il traffico attraverso TOR o VPN.

E infine l'architettura del software (disegnata schematicamente nell'immagine dell'articolo). Come già accennato, il primo componente del sistema è un plug-in del browser che cattura i contenuti con metainformazioni. Il secondo componente più importante è il servizio p2p, che viene eseguito in background (“backend”). Il funzionamento della rete ovviamente non dovrebbe dipendere dal fatto che il browser sia in esecuzione. Il terzo componente è il software client: frontend. Può trattarsi di un servizio web locale (in questo caso l'utente potrà lavorare con una rete decentralizzata senza uscire dal suo browser preferito) o di un'applicazione GUI separata per un sistema operativo specifico (Windows, Linux, MacOS, Andriod, iOS, eccetera.). Mi piace l'idea che tutte le opzioni frontend esistano contemporaneamente. Allo stesso tempo, ciò richiederà un’architettura backend più rigorosa.

Ci sono molti altri aspetti che non sono inclusi in questo articolo. Connettersi alla distribuzione di archivi di file esistenti (cioè quando hai già un paio di terabyte di dati pompati e lasci che il client li scansioni, ottenga gli hash, li confronti con ciò che è all'interno della rete e unisciti alla distribuzione, e allo stesso tempo tempo ottenere metainformazioni sui propri file - nomi normali, descrizioni, valutazioni, recensioni, ecc.), connessione a fonti esterne di metainformazioni (come il database Libgen), uso opzionale dello spazio su disco per archiviare il contenuto crittografato di altre persone (come in Freenet ), architettura di integrazione con le reti decentralizzate esistenti (questa è una foresta completamente oscura), l'idea del media hashing (l'uso di speciali hash percettivi per i contenuti multimediali - immagini, audio e video, che ti permetteranno di confrontare file multimediali di stesso significato, differenti per dimensioni, risoluzione, ecc.) e molto altro ancora.

Breve riassunto dell'articolo

1. Nelle reti decentralizzate non esiste Google con la sua ricerca e il suo posizionamento, ma esiste una Community di persone reali. Un social network con i suoi meccanismi di feedback (mi piace, repost...) e il grafico sociale (amici, comunità...) è un modello di livello applicativo ideale per una rete decentralizzata
2. L'idea principale che porto con questo articolo è il salvataggio automatico di contenuti interessanti da Internet normale quando imposti un mi piace/ripubblica; questo può essere utile senza p2p, semplicemente mantenendo un archivio personale di informazioni interessanti
3. Questi contenuti possono anche riempire automaticamente la rete decentralizzata
4. Il principio del salvataggio automatico dei contenuti interessanti funziona anche con i Mi piace/repost nella rete più decentralizzata

Fonte: habr.com

Aggiungi un commento