Gå til innholdet
Tilbake til Nymchat

Kunnskapsgrunnlag Utenfor internett

Bluetooth mesh

Meldinger uten internett, ingen mobiltjeneste og ingen infrastruktur snill. Enheter i nærheten kobler sammen over Bluetooth LE og reléer for hverandre, slik at en melding når frem personer utenfor radiorekkevidde ved å hoppe gjennom enhetene i mellom.

Hva er mesh

Mesh er en andre transport som kjører ved siden av reléene, ikke en separat app eller en separat identitet. Både offentlige kanaler og private meldinger fungerer over det, og appen bestemmer hvilke rute å ta på egen hånd: elektroniske sendinger går over internett og faller tilbake til Bluetooth når den er utilgjengelig, mens en peer som bare kan nås over radioen, forblir på nettet uansett.

Hver enhet overfører pakker til de enhetene den kan høre, med en hop-grense på 7To personer som ikke kan høre hverandre direkte, utveksler fortsatt meldinger så lenge det er en kjede av enheter mellom dem.

Under det løper hvert par jevnaldrende en Støy XX håndtrykk og snakker over sin egen kryptert økt. Pakker er polstret og, når de er store, fragmenterte, så størrelsen på hva du sender sier minst mulig om hva det er.

En oversvømmelse når bare den som lytter i det øyeblikket, så tre ting bærer et budskap forbi det: enheter Husk nylig offentlig historie og overgi det til den som har savnet det, Nærmeste peers bære forseglet post for noen utenfor rekkevidde, og alt som sendes uten internett er Publisert senere Når internett kommer tilbake.

Slår den på

Åpne Bluetooth mesh-panelet og trykk Slå på. Hva som skjer videre avhenger av hva du kjører den på.

Nymchat Bluetooth-mesh-panelet, som viser mesh-status, sammenkoblede enheter, peers på mesh og en radiologg.
Mesh-panelet: status, sammenkoblede enheter, jevnaldrende hørt og en direkte radiologg.

På Android og iOS

Appen kjører begge Bluetooth-rollene samtidig - annonserer seg selv og skanner etter andre – så alle to enheter i nærheten kobles sammen uavhengig av hvilken som la merke til den andre. Grant Bluetooth-tillatelsen når den blir spurt, og den finner jevnaldrende av seg selv.

I en nettleser

Nettappen kobles sammen med det samme nettet via nett-Bluetooth, på Chromium-nettlesere: Chrome, Edge, Opera og Brave. På Safari og Firefox, som ikke implementerer nett-Bluetooth, er masken kontroller skjules helt i stedet for å tilbys og deretter mislykkes.

En nettleser blir med som et blad

En nettleser kan bare ta Bluetooth sentral rolle: den kan ikke annonsere seg selv, så andre enheter kan ikke oppdage det. Den kobles utover til nærliggende telefoner og reléer gjennom dem. Du velger hver enhet én gang gjennom nettleserens egen enhetsvelger, deretter kobles til på egen hånd. To nettlesere kan ikke koble til hverandre direkte.

Deler en mesh med Bitchat

Nymchat implementerer Bitchat's mesh-protokoll på ledningen, byte for byte — samme GATT-tjeneste og karakteristikk UUID-er, samme pakkehode, samme meldingstyper, samme standard hoppgrense. De to apper er ikke brokoblet gjennom noe; de er rett og slett på samme mesh, og en Nymchat-enhet og en Bitchat-enhet oppdager hverandre og utveksler krypterte meldinger direkte.

Annonse-pakker kan også bære en nostrLink: en signert lenke fra en mesh-peer til deres virkelige Nostr-identitet. Når en er tilstede og verifiserer, en peer du møtte over Bluetooth dukker opp som samme person du kjenner fra stafettene.

Historisk forsoning og båret post beskrevet nedenfor er Bitchats formater også, så de to appene ikke bare sameksisterer på samme mesh - de synkroniserer hverandres offentlige historie og bærer hverandres konvolutter.

Historien om The Mesh Carries

En oversvømmelse leverer en offentlig melding til alle som er i radiomengde i det øyeblikket. Gå inn i rommet et minutt sent og det er borte. 6 timer, begrenset til 1000 pakker - og forsoner det vinduet med hver peer det møter, omtrent hver 15 sekunderUansett hva du mangler, sender de deg; hva de mangler, sender du dem.

Sammenligningen er gjort med et kompakt sannsynlighetssett (et Golomb-kodet filter), så å forene tusen meldinger koster omtrent en kilobyte i stedet for seksten.

Det er det som tillater en telefon å fungere som en bygriller: gå mellom to grupper som aldri har vært i rekkevidde av hverandre, eller komme tilbake timer senere, og det gir over hva den andre siden savnet.

Kun offentlige meldinger

Bare offentlig trafikk er noensinne transportert på denne måten - meldingene er allerede synlige for alle i radiomengden.

E-post sendt av andre

Hvis du skriver til noen som ikke er i radiomengde, er det ingen å overlevere meldingen til. Nymchat forsegler den til personens nøkkel og gir forseglede kopier til noen få jevnaldrende som er De bærer det, og leverer det hvis de møter mottakeren.

Kopien er ugjennomsiktig for den som bærer den. Den eneste ruteinformasjonen den holder er en tag som Daglig rotasjon og kan bare beregnes av noen som allerede kjenner mottakerens nøkkel, så to konvolutter for samme person på forskjellige dager ser ikke relatert til noen andre.

Kopier multipliserer ikke. Hver transportør har et budsjett som halveres når den gir en andel til noen andre, slik at en melding sprer seg til en håndfull transportører og deretter stopper. 24 timerDet er bare de som har fått bekreftet identiteten sin som noen gang har fått noen.

Der det kan, forsegler Nymchat konvolutten til en engangsnøkkel Hver enhet publiserer en liten batch av disse, signert slik at de ikke kan forfalskes, og batch reiser på samme måte som båret historie gjør - som er det som gjør det tilgjengelig mens eieren er borte, nøyaktig når posten deres blir båret. mottakeren sletter hver nøkkel når den har blitt brukt. at sletting er poenget: en konvolutt kopiert fra luften kan ikke åpnes etterpå, ikke engang av noen som senere får tak i mottakers identitetsnøkkel.

Delivery venter på 48 timer, fordi flere transportører kan holde kopier av samme konvolutt og de ankommer når deres transportører skjer for å møte deg; slette på den første ville gjøre hver senere kopi ser ut som tapt post.

Hva en transportør lærer

Å gi noen en konvolutt forteller dem at en melding eksisterer og at du har sendt den. aldri innholdet, aldri hvem det er for - men faktum.

Sendinger gjort uten internett

En melding du sender mens offline går ut over radioen umiddelbart, som når hvem som helst i nærheten - og ingen andre, fordi når det gjelder relayene er det aldri eksistert. Nymchat holder på det, og publiserer det øyeblikket internett kommer tilbake, holder sin opprinnelige sendetid slik at det forblir der du skrev det i samtalen.

Alle som allerede har mottatt den over Bluetooth, vil ikke se den to ganger: den gjenutgivne kopien bærer en markør som lar enheten gjenkjenne den. 24 timerEn som aldri gjør det er merket som mislykket i stedet for å forlate ser sendt.

Samtidig ber Nymchat nære jevnaldrende som fortsatt har et signal å publisere meldingen på vegne av det - en tilkobling i rommet er nok for alle i det. Meldingen er signert av enheten din før den forlater, så peer som bærer den er en postboks: den kan ikke endre et ord av det den publiserer, og relayene ville avvise det hvis den prøvde. Leser En kanal gjennom en nabo som har en.

Dette er en snarvei, aldri den eneste kopien. Ingenting forteller enheten din om en nabo faktisk klarte å publisere, så meldingen forblir i kø for din egen tilkobling uansett. Hvis begge fungerer, er de to kopiene byte-for-byte samme melding og relayene holder en. Bare kanalmeldinger reiser på denne måten - be noen om å poste en privat melding ville fortelle dem hvem du skriver til - og aldri i Ghost Mode, hvor signaturen ville peke rett tilbake til din virkelige identitet.

Spøkelsesmodus

En mesh-enhet er en radio som annonserer seg selv gjentatte ganger, og det er nettopp det som gjør det enkelt å følge med på tvers av steder og økter. Ghost Mode er svaret for valg.

Mens den står på, hver eneste identifikator en kunngjøring bærer erstattes med en kast verdi, og alle roterer sammen:

  • den statiske støynøkkelen – som peer-ID og fingeravtrykk stammer fra;
  • signeringsnøkkelen Ed25519;
  • det annonserte Bluetooth-navnet;
  • kallenavnet;
  • det annonserte nostrLink, som forblir ekte, men blir flyktig, så jevnaldrende kan fortsatt nå deg uten at noe løser npub-en din.

Rotasjon skjer i en urolig epoke på omtrent 15 minutter. Pensjonerte identiteter forbli dekrypterbar i opptil 8 epoker så et sent svar kommer fortsatt, og a samtalen startet mens ghosted er festet til nettet for godt i stedet for stille migrere til reléene under din virkelige nøkkel.

Avatar- og bannerdeling nektes mens spøkelsesmodus er aktiv: et gjentatt bilde kobler to epoker sammen raskere enn noen nøkkel ville gjort.

To av de ovennevnte leveringsveiene er slått av med det, av samme grunn. En spøkelsesenhet ber aldri noen om å bære post for det - en kurir som fortsatt holder en kuvert etter at du roterer er en tråd mellom de to identitetene. Og en samtale festet til meshen blir aldri publisert til relayene, fordi den kopien ville bli signert med din virkelige nøkkel og fortelle den andre personen nøyaktig hvem spøkelsesenheten var.

Ghost Mode er ikke anonymitet

Det gjør en enhet mye vanskeligere å følge. Det gjør det ikke usporbart. Bluetooth maskinvareadressen styres av operativsystemet, ikke av appen, og timing og sosiale mønstre forblir korrelerbare - samme person, på samme sted, snakker med de samme menneskene, til samme tider.

Grenser

  • Rekkevidde er Bluetooth-rekkevidde. Tusenvis av meter i det åpne, mindre gjennom vegger. Nettverket utvider rekkevidden ved å hoppe, ikke ved å rope høyere. Peer-listen i nettpanelet vil fortelle deg hva det er: ping en peer og det rapporterer om rundturen og hvor mange hopp borte de faktisk er.
  • Båndbredden er liten. Rammer er begrenset til 512 byte og større meldinger er fragmentert. Den er bygget for tekst, ikke for media.
  • Levering er best mulig innsats. En 7-hop flom gjør ingen løfter, og heller ikke gjør stiene som utvider den: båret historie når deg bare hvis du møter en enhet som holdt den, og en kurir leverer bare hvis det skjer å møte mottakeren.
  • Nettlesere er blader, per ovenfor, og er avhengig av at en telefon er i nærheten.
  • Radioen koster batteri, fordi skanning og annonsering kontinuerlig er det som får mesh til å fungere.