Passa al contenuto principale

Bitsocial e Reticulum

Reticulum è uno stack di rete basato sulla crittografia per costruire reti su qualunque mezzo di trasmissione sia disponibile: radio LoRa, packet radio, collegamenti seriali, Wi-Fi, Ethernet, TCP, UDP o I2P. Viene accostato a Bitsocial perché entrambi eliminano l'azienda che sta nel mezzo. Lo fanno però a livelli diversi, quindi sono complementari più che concorrenti.

Livelli diversi​

Reticulum sostituisce il livello di rete. Offre alle applicazioni endpoint cifrati e instradabili senza indirizzi IP, DNS, autorità di certificazione o account, ed è progettato per continuare a funzionare su collegamenti lenti fino a 5 bit al secondo con un MTU di 500 byte. Non definisce post, comunità o moderazione; sono le applicazioni costruite sopra ad aggiungerli.

Bitsocial è un protocollo social. Gira sullo stack IPFS/libp2p su normali connessioni internet, anche da una scheda del browser, e definisce comunità, pubblicazioni e sfide anti-spam per ogni comunità. Vedi Protocollo peer-to-peer e Peer-to-peer nel browser.

Nello stack di Bitsocial, Reticulum si collocherebbe all'incirca dove si trova libp2p, non dove si trova il protocollo Bitsocial.

Come funziona Reticulum​

  • Identità. Un'identità Reticulum è un insieme di chiavi da 512 bit: una chiave X25519 per la cifratura e una chiave Ed25519 per le firme.
  • Destinazioni. Le applicazioni creano destinazioni, indirizzate tramite un hash SHA-256 troncato a 16 byte. I pacchetti non riportano alcun indirizzo di origine.
  • Annunci. Una destinazione diventa raggiungibile inviando un annuncio. I nodi di trasporto lo inoltrano e ricordano il salto successivo per tornare verso di essa, così nessun nodo ha bisogno di una mappa dell'intera rete.
  • Cifratura. Il traffico è cifrato per impostazione predefinita, con chiavi effimere e forward secrecy.
  • LXMF. Il livello di messaggistica LXMF aggiunge messaggi firmati, consegna diretta e store-and-forward tramite nodi di propagazione per i destinatari offline.

Tra le applicazioni costruite in questo modo ci sono Sideband per la messaggistica e Nomad Network per la messaggistica e le pagine ospitate. Il manuale di Reticulum mantiene un elenco di programmi.

Confronto​

DomandaReticulumBitsocial
Che cos'èStack di reteProtocollo social peer-to-peer e app
Progettato perQualsiasi mezzo di trasmissione, fino ai collegamenti radio lentiConnessioni internet, comprese le schede del browser
IdentitàInsieme di chiavi X25519 ed Ed25519Coppie di chiavi Ed25519 per utenti e comunità
IndirizziHash di un'identità e del nome di un'applicazioneHash della chiave pubblica di una comunità
Trovare un peerAnnunci propagati dai nodi di trasportoI router HTTP restituiscono i peer fornitori
Funzionalità socialAggiunte da applicazioni come Nomad NetworkComunità, post, risposte e moderazione nel protocollo
Controllo dello spamLimiti di frequenza degli annunci per interfaccia; timbri proof-of-work LXMF che un destinatario o un nodo può richiedereLa sfida di ciascuna comunità prima che un post venga accettato
Consegna offlineI nodi di propagazione LXMF conservano e inoltrano i messaggiI peer continuano a servire lo stato più recente di una comunità; per pubblicare serve che il suo nodo sia online

Bitsocial potrebbe funzionare sopra Reticulum?​

Non oggi. Bitsocial non ha un trasporto Reticulum e il suo modello dati presuppone la larghezza di banda di internet: un client recupera dai peer i metadati delle comunità e il contenuto dei post e scambia messaggi pubsub, cosa che si adatta male a collegamenti costruiti attorno a pacchetti da 500 byte e a un throughput misurato in bit o kilobit al secondo.

La strada realistica è più stretta: un client che funzioni su una mesh locale mentre è disconnesso, e che poi si sincronizzi con la rete Bitsocial più ampia quando è raggiungibile un peer o un gateway con accesso a internet. Si tratterebbe di un nuovo client con un bridge, non di una modifica al protocollo, e non rientra nella roadmap attuale.

Per chi sviluppa​

Reticulum è distribuito con la Reticulum License: termini in stile MIT più due restrizioni. Il software non può essere usato in sistemi progettati per fare del male alle persone, né per creare dataset di addestramento per AI o machine learning. Leggila prima di includere codice di Reticulum in un'app Bitsocial.

L'implementazione di riferimento è scritta in Python. I maintainer di Reticulum avvertono che diversi port non ufficiali di Reticulum e LXMF sono generati automaticamente e riportano dichiarazioni di licenza che considerano nulle, quindi preferisci l'implementazione di riferimento o i programmi elencati nel manuale.