Hoppa till innehållet
Tillbaka till Nymchat

Kunskapsbas Utanför internet

Bluetooth mesh

Meddelanden utan internet, ingen mobiltjänst och ingen infrastruktur snäll. Enheter i närheten länkar över Bluetooth LE och reläer för varandra, så ett meddelande når människor utanför radioräckvidden genom att hoppa genom enheterna däremellan.

Vad är nätet

Nätet är en andra transport som körs vid sidan av reläerna, inte en separat app eller en separat identitet. Både offentliga kanaler och privata meddelanden fungerar över det, och appen bestämmer vilket väg att ta på egen hand: onlinesändningar går över internet och faller tillbaka till Bluetooth när det är inte tillgängligt, medan en peer som bara kan nås via radion förblir på nätet i båda riktningarna.

Det är ett översvämningsnätverk. Varje enhet överför paket till de enheter som den kan höra, med en hopgräns på 7Två personer som inte kan höra varandra direkt utbyter fortfarande meddelanden så länge det finns en kedja av enheter mellan dem.

Under det kör varje par jämnåriga en Buller XX handslag och pratar över dess egen krypterad session. Paketen är vadderade och, när de är stora, fragmenterade, så storleken på vad du skickar säger så lite som möjligt om vad det är.

En översvämning når bara den som lyssnar i det ögonblicket, så tre saker bär ett meddelande förbi det: enheter Kom ihåg den senaste offentliga historien och överlämna den till den som missat den, närliggande peers bär förseglad post för någon utanför räckhåll, och allt som skickas utan internet är Publicerad senare När internet kommer tillbaka.

Slår på den

Öppna Bluetooth-nätpanelen och tryck på Sätta på. Vad som händer härnäst beror på vad du kör den på.

Nymchat Bluetooth-mesh-panelen visar mesh-status, ihopparade enheter, peers på mesh och en radiologg.
Nätpanelen: status, ihopparade enheter, hörda peers och en liveradiologg.

På Android och iOS

Appen kör båda Bluetooth-rollerna samtidigt - annonserar sig själv och söker efter andra — så att två närliggande enheter länkas upp oavsett vilken som märkte den andra. Grant Bluetooth-tillståndet när det tillfrågas och det hittar peers av sig själv.

I en webbläsare

Webbappen ansluter till samma mesh via webb-Bluetooth, på Chromium-webbläsare: Chrome, Edge, Opera och Brave. På Safari och Firefox, som inte implementerar webb-Bluetooth, ska mesh kontroller döljs helt istället för att erbjudas och misslyckas sedan.

En webbläsare går med som ett blad

En webbläsare kan bara ta Bluetooth central roll: den kan inte annonsera sig själv, så andra enheter kan inte upptäcka det. Den ansluter utåt till närliggande telefoner och reläer igenom dem. Du väljer varje enhet en gång genom webbläsarens egen enhetsväljare, varefter den återansluter på egen hand. Två webbläsare kan inte länka till varandra direkt.

Delar ett nät med Bitchat

Nymchat implementerar Bitchats mesh-protokoll på tråden, byte för byte — samma GATT-tjänst och egenskap UUID, samma pakethuvud, samma meddelandetyper, samma standardhoppgräns. De två appar överbryggas inte genom någonting; de är helt enkelt på samma mesh och en Nymchat-enhet och en Bitchat-enhet upptäcker varandra och utbyter krypterade meddelanden direkt.

Annonspaket kan också bära en nostrLink: en signerad länk från en mesh-peer till deras verkliga Nostr-identitet. När en är närvarande och verifierar, en kamrat du träffade över Bluetooth dyker upp som samma person som du känner från stafetterna.

Historikförlikningen och den bärda posten som beskrivs nedan är Bitchats format också, så de två apparna samexisterar inte bara på samma mesh - de synkroniserar varandras offentliga historia och bär varandras kuvert.

Historien som mesh bär

En översvämning levererar ett offentligt meddelande till vem som helst som är i radioräckning vid det ögonblicket. Gå in i rummet en minut sent och det är borta. 6 timmar, begränsad till 1000 paket - och försonar det fönstret med varje peer det möter, ungefär varje 15 sekunderVad du saknar, skickar de dig; vad de saknar, skickar du dem.

Jämförelsen görs med en kompakt sannolikhetssats (ett Golomb-kodat filter), så att förena tusen meddelanden kostar ungefär en kilobyte istället för sexton.

Det är det som låter en telefon fungera som en stadskrikare: gå mellan två grupper som aldrig har varit i närheten av varandra, eller komma tillbaka timmar senare, och det ger över vad den andra sidan missade.

Endast offentliga meddelanden

Endast offentlig trafik transporteras någonsin på det här sättet – meddelandena är redan synliga för alla inom radioräckan.

E-post som skickas av andra

Om du skriver till någon som inte är i radioräckning finns det ingen att vidarebefordra meddelandet till. Nymchat förseglar det till den personens nyckel och ger förseglade kopior till några kamrater som är närmast. de bär den och levererar den om de möter mottagaren.

Kopian är opac för den som bär den. Den enda routinginformation som den har är en tagg som Roterar dagligen och kan bara beräknas av någon som redan vet mottagarens nyckel, så två kuvert för samma person på olika dagar ser inte relaterade till någon annan.

Kopior multipliceras inte. Varje bärare har en budget som halveras när den ger en andel till någon annan, så ett meddelande sprids till en handfull bärare och stannar sedan. 24 timmar, och endast kamrater vars identitet har verifierats någonsin ges någon.

Där det kan, förseglar Nymchat kuvertet till en engångsnyckel Varje enhet publicerar ett litet parti av dessa, signerade så att de inte kan förfalskas, och partiet reser på samma sätt som bärs historia gör - vilket är vad som gör det tillgängligt medan dess ägare är borta, exakt när deras mail transporteras. mottagaren raderar varje nyckel när den har använts.

Deletion väntar på 48 timmar, eftersom flera bärare kan hålla kopior av samma kuvert och de anländer när deras bärare råkar träffa dig; radera på den första skulle göra varje senare kopia ser ut som förlorad post.

Vad en transportör lär sig

Att ge någon en kuvert berättar för dem att ett meddelande finns och att du har skickat det. Aldrig innehållet, aldrig vem det är för - men faktum. Om den handeln inte är en du vill göra, använder Ghost Mode aldrig kurirer alls (se nedan).

Sändningar gjorda utan internet

Ett meddelande du skickar medan offline går ut över radion omedelbart, som når vem som helst i närheten - och ingen annan, för vad gäller reläerna är det aldrig existerat. Nymchat håller fast vid det, och publicerar det när internet kommer tillbaka, behåller sin ursprungliga sändningstid så att det stannar där du skrev det i konversationen.

Den som redan har fått den via Bluetooth kommer inte att se den två gånger: den återpublicerade kopian bär en markör som låter deras enhet känna igen den. 24 timmarEn som aldrig gör det är markerad som misslyckad snarare än lämnade tittar skickas.

Samtidigt frågar Nymchat närliggande kamrater som fortfarande har en signal att publicera meddelandet på dess vägnar - en anslutning i rummet är tillräcklig för alla i den. Meddelandet signeras av din enhet innan den lämnar, så kamraten som bär det är en brevlåda: det kan inte ändra ett ord av vad det publicerar, och reläerna skulle avvisa det om det försökte. Läs en kanal genom en granne som har en.

Detta är en genväg, aldrig den enda kopian. Ingenting berättar för din enhet om en granne faktiskt lyckades publicera, så meddelandet stannar i kö för din egen anslutning på något sätt. Om båda fungerar, är de två kopiorna byte-för-byte samma meddelande och reläerna behåller en. Endast kanalmeddelanden reser på detta sätt - att be någon att publicera ett privat meddelande skulle berätta för dem vem du skriver till - och aldrig i Ghost Mode, där signaturen skulle peka direkt tillbaka på din verkliga identitet.

Spökläge

En mesh-enhet är en radio som meddelar sig själv upprepade gånger, vilket är precis det som gör det enkelt att följa över platser och sessioner. Ghost Mode är svaret på valet.

Medan den är på, varje identifierare ett tillkännagivande bär ersätts med en släng värde, och alla roterar tillsammans:

  • den statiska brustangenten — som peer-ID och fingeravtryck härrör från;
  • signeringsnyckeln Ed25519;
  • det annonserade Bluetooth-namnet;
  • smeknamnet;
  • det aviserade nostrLink, som förblir verklig men blir tillfällig, så kamrater kan fortfarande nå dig utan att något löser sig för din npub.

Rotation sker under en skakig epok på ungefär 15 minuter. Pensionerade identiteter förbli dekrypterbar i upp till 8 epoker så ett sent svar kommer fortfarande, och a konversationen startade medan ghosted är fäst i nätet för gott snarare än tyst migrerar till reläerna under din riktiga nyckel.

Avatar- och bannerdelning nekas medan spökläget är aktivt: en upprepad bild länkar två epoker tillsammans snabbare än någon tangent skulle göra.

Två av de ovanstående leveransvägarna är avstängda med det, av samma anledning. En spökdator ber aldrig någon att bära post för det - en kurir som fortfarande håller ett kuvert efter att du roterar är en tråd mellan de två identiteterna. Och en konversation kopplad till nätet publiceras aldrig igen till reläerna, eftersom den kopian skulle undertecknas med din riktiga nyckel och berätta för den andra personen exakt vem spökdatorn var. En spökdator publicerar också inga engångsnycklar: ingenting kan transporteras till eller från det ändå, så partiet skulle vara en annan sak som kastad identitet sänder för ingen leverans det någonsin kunde tjäna.

Spökläge är inte anonymitet

Det gör en enhet mycket svårare att följa. Det gör det inte spårbart. Bluetooth hårdvaruadressen styrs av operativsystemet, inte av appen, och timing och sociala mönster förblir korrelerbara - samma person, på samma plats, pratar med samma människor, vid samma tidpunkter.

Gränser

  • Räckvidd är Bluetooth-räckvidd. Dussintals meter i det öppna, mindre genom väggar. Nätet utökar räckvidden genom att hoppa, inte genom att skrika högre. Peer-listan i nätpanelen kommer att berätta vad det är: ping en peer och det rapporterar rundturen och hur många hopp bort de faktiskt är.
  • Bandbredden är liten. Ramar är begränsade till 512 byte och större meddelanden är splittrade. Den är byggd för text, inte för media.
  • Leverans görs bäst. En 7-hop översvämning gör inga löften, och inte heller gör de vägar som förlänger den: bär historia når dig bara om du träffar en enhet som höll den, och en kurir levererar bara om det händer att träffa mottagaren.
  • Webbläsare är löv, enligt ovan, och är beroende av att en telefon finns i närheten.
  • Radion kostar batteri, eftersom skanning och reklam kontinuerligt är det som gör att nätet fungerar.