Nostr - Notes and Other Stuff Transmitted by Relays

Technisch voorbeeld van een bericht

nak event --sec 7465 -c 'this is going to work' nostr.wine relay.damus.io nostr.mom
nostr.wine... ok.
relay.damus.io... ok.
nostr.mom... ok.

Bericht data:

{
  "kind": 1,
  "id": "b9fead6eef87d8400cbc1a5621400b360438affb9760a6a043cc0bddea21dab6",
  "pubkey": "82341f882b6eabcd2ba7f1ef90aad961cf074af15b9ef44a09f9d2a8fbfbe6a2",
  "created_at": 1676161639,
  "tags": [],
  "content": "this is going to work",
  "sig": "76d19889a803236165a290fa8f3cf5365af8977ee1e002afcfd37063d1355fc755d0293d27ba0ec1c2468acfaf95b7e950e57df275bb32d7a4a3136f8862d2b7"
}

Publiceren naar relay.damus.io... succes. Publiceren naar nostr.wine... bericht: beperkt: geen actief betaald lid. Publiceren naar nostr.mom... succes.

---

Diverse toepassingen

Net als het internet zelf is Nostr open en chaotisch. Nostr omarmt de chaos van het vroege internet: meerdere soorten data, diverse vormen van gebruikersinteractie en verschillende clients die hun eigen perspectieven bieden over dezelfde onderliggende informatie.

Veel clients, veel servers

De client is de app die op je computer of telefoon draait; de server is alles wat ergens in de cloud draait met een domeinnaam. In gecentraliseerde platforms en andere protocollen communiceert één client met één enkele server. In Nostr maken clients verbinding met meerdere servers.

Cryptografisch ondertekende berichten

De enige eenheid van informatie in Nostr is een cryptografisch ondertekend bericht ("note"). Deze worden gemaakt door gebruikers in hun client-software en gepubliceerd naar één of meer relays.

Slimme clients als gebruikersagenten

Clients zijn slim en fungeren als agenten voor de gebruikers die ze installeren. Zij beslissen naar welke relays ze verbinding maken, wanneer dat gebeurt en welke data ze opvragen, afhankelijk van de omstandigheden en gebruikersvoorkeuren.

Relays als distributiecentra

Dit zijn de servers waarop berichten worden gepubliceerd en van waaruit ze worden gelezen. Zij kunnen de inhoud van berichten niet wijzigen (dat zou de handtekening ongeldig maken), maar ze kunnen wel beslissen wat ze opslaan en voor hoe lang.

---

Een nieuw paradigma voor communicatie

In Nostr wordt elke gebruiker gerepresenteerd door een geheim getal, een "sleutel" (key), en elk bericht draagt een digitale "handtekening" (signature). Deze bewijst het auteurschap en de authenticiteit zonder dat daar een autoriteit voor nodig is. Dit fundament van vertrouwen maakt het gedecentraliseerd uitzenden van informatie mogelijk.

Het protocol is eigenaarloos, de relays niet

Nostr schrijft zich niet voor aan politieke idealen van "vrije meningsuiting". Het erkent simpelweg dat verschillende mensen verschillende morele waarden en voorkeuren hebben. Omdat elke server in privébezit is, kan elke server zijn eigen criteria hanteren voor het weigeren van inhoud, en gebruikers zijn vrij om te kiezen wat ze lezen en waarvandaan.

Vrijheid van associatie

Wanneer het netwerkeffect niet gebonden is aan één organisatie, kan een groep gebruikers anderen geen schade toebrengen.

Je eigen stukje Nostr

Voor programmeurs of mensen die weten hoe ze servers moeten beheren, is het eenvoudig om een eigen relay te draaien met eigen regels.

---

Nieuwe ideeën en ecosystemen

Verkenning van de commons

Naast het zijn van een natuurlijk medium voor een Twitter-achtig microblogging sociaal netwerk, kan Nostr ook voor andere doeleinden worden gebruikt. Dit gaat verder dan het delen van video's, lange artikelen, foto's of spraakberichten.

Er zijn initiatieven op Nostr voor de ontwikkeling van sub-protocollen die de volgende zaken aandrijven:

  • Gesloten groepen;
  • Gedecentraliseerde Wikipedia;
  • Couchsurfing;
  • Marktplaatsen;
  • Web-annotaties.

Daarnaast zijn er protocollen die Nostr niet gebruiken voor de kerngegevens, maar als coördinatie- en ontdekkingsmechanisme, zoals:

  • Gedecentraliseerde code-samenwerking via git;
  • File hosting;
  • Torrent sharing;
  • Video livestreaming.

Status van het ecosysteem

Nostr is nog in constructie. Het is een idee met veel open-source software en een grote gebruikersgroep, maar nog geen afgerond, gepolijst product. Het bevindt zich in de fase waarin nieuwe programmeurs en early adopters nodig zijn om de protocolstromen en de gebruikerservaring te verfijnen.

Specifieke implementaties

  • Microblogging: Het zogenaamde "outbox-model" is de canonieke manier om een censuurbestendige client te implementeren, hoewel de parameters hiervan vloeibaar zijn.
  • Relay-gebaseerde groepen: NIP-29 beschrijft een manier om gesloten groepen voor forums of chats te maken die efficiënt zijn door te vertrouwen op een relay, maar toch censuurbestendig blijven.

---

Hoe Nostr werkt

Nostr maakt echte vrijheid mogelijk door gebruikers in staat te stellen verbonden te blijven met hun publiek, zelfs in ongunstige scenario's.

  1. De gebruiker kiest hun outbox-relays: Een gebruiker (bijv. Patricia) publiceert een speciaal event waarin ze aankondigt welke servers ze als haar "outbox relay" gebruikt voor het publiceren van berichten. Ze stuurt al haar posts naar deze gekozen relays, waardoor er een voorspelbare plek ontstaat waar anderen haar content kunnen vinden. Omdat servers uitwisselbaar zijn, volstaat elke relay.
  2. Iemand begint te volgen: Wanneer een andere gebruiker (bijv. Florian) de posts van Patricia wil lezen, zoekt zijn client haar aankondiging op en maakt direct verbinding met haar aangekondigde outbox-relays. Deze gerichte aanpak is simpel en efficiënt.
  3. Gebruikers kunnen wisselen van relay: Als de huidige relay van Patricia haar bant of offline gaat, kan ze eenvoudig overstappen naar andere relays (bijvoorbeeld relays van vrienden, een betaalde dienst of haar eigen server). Ze publiceert simpelweg een nieuwe aankondiging en gaat door met posten zonder haar publiek te verliezen.
  4. Clients volgen relay-wijzigingen: De client van Florian monitort continu updates van de relay-lijst van Patricia. Wanneer ze wisselt, begint zijn client uiteindelijk haar nieuwe locaties te bevragen, zodat hij nooit haar berichten mist, zelfs niet als de netwerktopologie verandert.
  5. Slimme clients beheren alles: Zowel aan de kant van de publicist als aan de kant van de volger gedragen clients zich slim; ze houden een lokale staat bij en reageren op nieuwe informatie om ervoor te zorgen dat de informatiestroom doorgaat.

---

FAQ

Wat is een "protocol"? Een protocol is als een gemeenschappelijke taal die verschillende softwarepakketten kunnen gebruiken om met elkaar te communiceren, vergelijkbaar met e-mail, HTML of HTTP. In de context van Nostr betekent dit dat er geen specifieke app nodig is om deel uit te maken van Nostr: er zijn veel apps die dezelfde taal spreken en (grotendeels) uitwisselbaar gebruikt kunnen worden, waarbij elke app zijn eigen visie heeft op de uitvoering en weergave.

Hoe gaat Nostr om met spam en ongewenste inhoud? In de standaard feed zie je nooit spam, omdat clients alleen informatie ophalen van mensen die je volgt. In die zin kan niemand spam naar je "pushen". Het is lastiger wanneer je bijvoorbeeld reacties op je eigen posts wilt zien; een client kan geprogrammeerd zijn om alles op te halen dat claimt een reactie te zijn, wat spam kan bevatten.

De manier om hiermee om te gaan in Nostr is door het contactoppervlak met spam te beperken. Bijvoorbeeld:

  • Clients kunnen besluiten alleen reacties te tonen van mensen die gevolgd worden door mensen die jij volgt.
  • Verfijndere strategieën houden in dat men alleen berichten leest van relays die als "veilig" worden beschouwd (bijv. relays die betaling vereisen, menselijke screening doen, of alleen leden van bepaalde gemeenschappen accepteren).

Er zijn geen perfecte oplossingen; gecentraliseerde platforms zitten ook vol spam. Nostr probeert vanaf het begin veerkracht op te bouwen.

Zal Nostr effectief schalen bij massale adoptie? Ja, Nostr is een basis client-server architectuur. Omdat gebruikers zich natuurlijk verspreiden over honderden verschillende relays, terwijl clients gelijktijdig tientallen relays kunnen bevragen, heeft het netwerk een natuurlijke load balancer.

Een mogelijke zorg is dat clients te veel verbindingen moeten maken als gevolgde profielen hun content over te veel relays verspreiden. Echter, mensen volgen vaak accounts met soortgelijke content, die vaak dezelfde relays delen. Bovendien is het voor native apps goedkoop om honderden WebSocket-verbindingen gelijktijdig te openen. Voor web-apps is dit lastiger, maar een paar honderd is haalbaar. Daarnaast is het in elke complete app nodig om events in een lokale database op te slaan, waardoor aanvragen in batches kunnen worden gedaan.

Welke bescherming biedt Nostr tegen online intimidatie? Intimidatie lijkt op spam in die zin dat iedereen ongewenste inhoud kan maken en publiceren naar relays die hen accepteren. De technieken tegen spam zijn hier ook van toepassing. Bij specifieke individuen met een permanente identiteit is het probleem makkelijker: zij kunnen simpelweg door hun doelwit worden geblokkeerd, waardoor hun inhoud verdwijnt. Vrienden van het doelwit kunnen ook blokkeren, en er kunnen creatieve oplossingen komen met gedeelde blokkeerlijsten. Andere benaderingen, zoals relays met beperkte leesrechten (die "protected accounts" kunnen emuleren), kunnen dit verder verbeteren.

Waarom niet gewoon Mastodon/Fediverse gebruiken? Er zijn veel problemen met Mastodon, voornamelijk omdat het niet vertrouwt op cryptografie. Omdat het geen multi-master aanpak kan hanteren, worden identiteiten geacht "eigendom" te zijn van de server. Serverbeheerders kunnen dezelfde schade aanrichten als gecentraliseerde platforms. Gebruikers zijn volledig hulpeloos als een serverbeheerder zich misdraagt of de server sluit. Bovendien moeten gebruikers voor functies als blokkeren of directe berichten ook de beheerders van andere servers vertrouwen.

Nostr kan echte gemeenschappen rond relays creëren, specifiek omdat gebruikers niet volledig tot die relays hoeven te behoren, maar ze alleen voor bepaalde behoeften kunnen bezoeken.

Waarom niet gewoon Bluesky/ATProto gebruiken? Bluesky heeft twee prominente problemen:

  1. Centralisatie van identiteit: Alle accounts behoren tot PLC, een database beheerd door een centrale entiteit die naar believen kan censureren. Alternatief kunnen ze behoren tot een DNS-domein, wat omslachtig en risicovol is.
  2. Centralisatie van data: Omdat de flow (Relay-AppView-Client) uitgaat van één canonieke bron van data per stap, is die bron altijd een server met de macht om te censureren, shadowbannen of data te herordenen.

Als Bluesky-clients "slim" zouden worden en data uit meerdere bronnen zouden halen, zou Bluesky uiteindelijk Nostr worden, maar dan met meer tussenstappen.

Zijn economische prikkels aanwezig om relays operationeel te houden? Ja. Omdat gebruikers naar elke gewenste relay kunnen gaan, zullen er relays worden beheerd door allerlei mensen en entiteiten. Het draaien van servers is zeer goedkoop; een relay kan op een server van $5 per maand draaien en enkele duizenden gebruikers huisvesten. Relays kunnen worden beheerd door gemeenschappen, individuen, organisaties die goodwill willen winnen, of bedrijven die hosting verkopen.

Als content verspreid is over meerdere relays, hoe weet ik dan dat ik alles zie? Het is geen eigenschap van de wereld in het algemeen dat men alles kan zien of horen wat er overal tegelijk gebeurt. Nostr erft die eigenschap over: je ziet alleen waar je je aandacht op richt (en wat de relay die de informatie host, je toestaat te zien).

Hoe werkt zoeken? Het is alleen mogelijk om te zoeken in wat je al hebt gezien. Zoekmachines zullen dus delen van het netwerk moeten crawlen en indexeren. Er is geen "globaal" overzicht van het netwerk (en dat zou ongewenst zijn vanwege spam).

Aan de andere kant is het voor clients zeer goed mogelijk om alle posts van mensen die je volgt, of alle posts waarmee je interactie hebt gehad, lokaal op te slaan en daar lokaal in te zoeken. Niche- of gemeenschapsgerichte relays kunnen ook zoekmogelijkheden bieden door de berichten die zij lokaal opslaan te indexeren.

Hoe ontdek ik nieuwe content van mensen die ik niet volg als er geen algoritmes zijn? De meest basale manier is door te kijken naar de mensen die je volgt en met wie zij interacteren.

Maar het is niet waar dat Nostr geen algoritmes heeft. Nostr kan allerlei algoritmes hebben: handmatig, automatisch, AI-gestuurd of op regels gebaseerd. Sommige draaien volledig lokaal op de client, terwijl andere worden aangeboden door relays (bijvoorbeeld door posts uit een specifieke gemeenschap naar voren te schuiven of door curatie-relays).

Is Nostr gerelateerd aan Bitcoin? Nostr gebruikt dezelfde cryptografische principes als Bitcoin en is grotendeels gestart door een gemeenschap van Bitcoiners. Afgezien daarvan is er geen directe relatie. Het is niet afhankelijk van Bitcoin en je hoeft niets van Bitcoin te weten of te bezitten om Nostr te gebruiken.

Wat betreft "zaps": dit is een standaard voor het geven van fooien aan Nostr-content met Bitcoin. Dit is volledig optioneel.

---

Mening en citaten

"Niemand bezit Nostr, niemand kan Nostr bezitten, het is een open-source protocol. Niemand kan een hek bouwen om de stroom van informatie te stoppen." — Uncle Bob

"Nostr is een open protocol. Als een platform een silo is, dan is een protocol een rivier: niemand bezit het, en iedereen is vrij om erin te zwemmen." — Edward Snowden

"Ik wil stellen dat Nostr een nieuwe fundamentele architectuur heeft ontdekt voor gedistribueerde protocollen. Niet gefedereerd, niet P2P." — Gordon Brander