Nostr har fått mye oppmerksomhet og damp bak seg siden dens nylig tillegg til listen over alternative sosiale plattformer som er forbudt å promotere på Twitter. Og det får også oppmerksomhet ettersom det har blitt klart at Twitter-oppkjøpet av Elon Musk ikke fundamentalt har endret noe om ytringsfriheten på plattformen – brukere er fortsatt utestengt av inkonsekvente og vilkårlige grunner, og folk leter etter et desentralisert alternativ som ikke er noe som Mastodon, der en serveroperatør har fortsatt muligheten til å kontrollere identiteten din.
Til tross for den nylige oppmerksomheten, ble Nostr-protokollen og den første reléserverimplementeringen faktisk opprettet på slutten av 2020 av utvikleren fiatjaf. Før det store utbruddet av oppmerksomhet var det bare en stille nisjeprotokoll som rett og slett prøvde å være en lett løsning på problemene til Twitter og Mastodon. På begge systemene er din identitet/brukernavn rett og slett en ting som kontrolleres av den som kjører serveren. Mastodon er et forent system med flere forskjellige servere som alle snakker med hverandre, endrer ikke fundamentalt den virkeligheten. Den serveren du bruker til å være vert for en konto har full kontroll over om du kan bruke den eller ikke. Selv om du kjører din egen server, kan andre serveroperatører svarte- eller hviteliste hvilke servere som får lov til å snakke med deres. Dette har ført til mye partisjonering i "Fediverse" til forskjellige Mastodon-servere og gjør ideen om å bare kjøre din egen meningsløs. Du kan fortsatt til slutt bli sensurert av andre serveroperatører, noe som hindrer brukerne deres i å se innholdet ditt i feeden deres.
Kjernedifferensiatoren mellom Nostr og noe sånt som Mastodon er at i stedet for å bruke et brukernavn som eies av en serveroperatør, bruker hver bruker et offentlig/privat nøkkelpar for å håndtere denne funksjonen i stedet. Det er noe en serveroperatør ikke bare kan ta fra deg eller låse deg ute fra. Dette er en av kjernebyggesteinene som den overordnede Nostr-protokollen er bygget på toppen av.
Det neste er «hendelser». Dette er den grunnleggende objekt-/datatypen som brukes av klienter og reléservere som klienter kobler til for å sende og hente meldinger. Den generelle ideen med protokollen er at klienter sender hendelser til reléservere, som deretter lagrer og indekserer dem, og andre klienter kan kommunisere med reléservere for å be om hendelser de har mottatt og lagret. I originalen NIP 01tre forskjellige hendelsestyper er definert:
- 0: Sender metadata om en bruker, for eksempel brukernavn, bilde, en biografi osv.
- 1: Sender tekstmeldinger og grunnleggende innhold
- 2: Anbefaler reléservere for personer som følger hendelsesskaperen å koble til
Alle hendelser er strukturert på en spesifikt definert måte. De inkluderer den offentlige nøkkelen til skaperen, et tidsstempel for når de ble opprettet, deres type (eller type i spesifikasjonen), innholdsnyttelasten og en signatur fra hendelsesskaperen. De kan også ha tagger som refererer til andre hendelser eller brukere, og har en ID-verdi som er en hash av alt bortsett fra skaperens signatur (ligner på en TXID for Bitcoin-transaksjoner). Dette lar deg garantere at en melding faktisk ble opprettet av eieren av den offentlige nøkkelen i den ved å bekrefte signaturen (og personen som eier nøkkelen hvis den ikke er kompromittert), og garantere at meldingen ikke ble endret etter de signerte den. Akkurat som du ikke kan endre en Bitcoin-transaksjon etter at den er signert uten å annullere den, kan du ikke endre en Nostr-hendelse etter at skaperen signerte den uten at det er en åpenbar svindel.
Arrangementssystemet ble utvidet ganske betydelig fra det opprinnelige NIP. Det er en hendelsestype for krypterte direktemeldinger, som etablerer en delt nøkkel ved å kombinere avsenderens private nøkkel med mottakerens offentlige nøkkel, noe som resulterer i den samme nøkkelen du ville fått ved å kombinere avsenderens offentlige nøkkel med mottakerens private nøkkel (dette er hvordan BNP 47 og Silent Payments fungerer). Det finnes også typer for utskiftbare hendelser og flyktige hendelser. I tilfelle av et utskiftbart arrangement (selvsagt), er de utformet slik at den opprinnelige skaperen av arrangementet kan signere en ny for å erstatte den gamle. Reléservere som følger spesifikasjonen vil automatisk droppe den eldre hendelsen fra lagringen og begynne å levere de nyere versjonene til klienter ved mottak. Kortvarige hendelser er utformet slik at de vil bli kringkastet til alle som abonnerer på skaperen deres når de sendes til reléet, men reléservere skal ikke lagre dem. Dette skaper muligheten for at meldinger kun blir sett av folk når de er online under sendingen. Det er til og med en hendelsestype for å signalisere en reaksjon (for eksempel likes eller emojis) på andres hendelser.
Når vi snakker om det siste, kan hendelser også inneholde tagger. For tiden er det tagtyper for hendelser (for å referere til en eksakt Nostr-hendelse), offentlige nøkler (for å merke eller referere til andre brukere) og emner (for å emulere funksjonalitet, for eksempel e-postemner). Alle disse kan inkludere pekere til spesifikke reléservere som dataene kan hentes fra, slik at brukere faktisk kan samhandle på tvers av servere, dvs. en bruker som legger ut innholdet sitt til en reléserver kan samhandle med og referere til innhold opprettet av en annen bruker som legger ut til en annen reléserver på en måte som lar enhver bruker på en sammenhengende måte hente hele tråden av interaksjoner i riktig rekkefølge og uten massiv kompleksitet i å finne ut hvor de skal finne de relevante dataene.
Inne i den originale NIP er det gitt en spesifikasjon for hvordan klienter skal samhandle med reléservere gjennom en abonnementsmelding/datastruktur som inkluderer filtre for hvilke hendelser klienten er interessert i å motta. Disse filtrene kan spesifisere brukernes offentlige nøkler, eksakte hendelser, typer hendelser og til og med spesifikke tidsrammer der de vil ha dem basert på de tidligere kriteriene. Du kan til og med sende inn prefikser for offentlige nøkler eller hendelses-IDer, for eksempel "1xjisj...." og motta enhver hendelse eller hendelser fra en offentlig nøkkel som begynner med den korte strengen (dette kan være nyttig for å skjule fra en reléserver det du faktisk ønsket å se).
Totalt sett er protokollen en veldig naken, generalisert ordning for å sende meldinger mellom brukere som dekker de viktige tingene, for eksempel å garantere integriteten til meldinger og hvem som sendte dem med bruk av offentlige nøkkelidentiteter, samtidig som den tilrettelegger infrastruktur på backend for reléservere som kan være ekstremt sentraliserte eller tillate en bruker å kjøre sin egen personlige reléserver, alt mens de sømløst samhandler med hverandre og ikke forårsaker massivt kaos i tilfelle en bruker blir utestengt fra én reléserver. De kan flytte til en annen eller kjøre sin egen, og de-plattformen deres fra den tidligere serveren mister dem ikke deres digitale identitet eller følgere fordi de fortsatt har kontroll over deres private nøkkel og brukere kan autentisere det når de finner dem andre steder.
Reléservere kan også fungere som de vil. De kan operere gratis, kan belaste mikrobetalinger for å legge ut eller laste ned meldinger, og det er det til og med et NIP for å kreve hashcash-lignende bevis på arbeid for å sende inn en melding. De kan være en enkelt reléserver for å være vert for og kun vise innleggene dine til andre brukere, eller de kan være en server som kjører i massiv skala som Twitter eller Reddit (klienter kan vise og organisere informasjon slik de vil, noe som gjør det mulig å emulere praktisk talt alle sosiale medier medieplattform som eksisterer i dag). Alt dette kan fungere sømløst og uten å kunne stenge en bruker ute. Du kan hindre dem i å legge ut innhold til reléserveren din, men til syvende og sist kan du ikke stoppe dem fra å se innhold du er vert for på reléserveren din eller stoppe andre brukere fra å finne innholdet deres på andre servere.
Det er en veldig forenklet protokoll med en stor, åpen designplass for folk å bygge, som garanterer at brukere alltid kan samhandle med hverandre uavhengig av hva individuelle reléserveroperatører velger å være vert for eller ikke. Dette er samtidig dens største styrke og største svakhet. Selv om det garanterer friheten for utviklere til å bygge uten stramme begrensninger av en komplisert protokoll, er det også mange problemer som den iboende vil støte på som ikke håndteres av selve protokollen.
I det neste stykket jeg skriver, vil jeg gå inn på noen av problemene jeg ser oppstå og potensielle løsninger, men foreløpig vil jeg bare si det når det gjelder enkelheten i designet og mulighetene det åpner opp for folk å bygge, har Nostr gjort en veldig god jobb, tatt i betraktning at det er ideen til én person og bare en håndfull mennesker har virkelig bidratt til selve protokollspesifikasjonen så langt.
Dette er et gjesteinnlegg av Shinobi. Uttrykte meninger er helt deres egne og reflekterer ikke nødvendigvis meningene til BTC Inc eller Bitcoin Magazine.
- SEO-drevet innhold og PR-distribusjon. Bli forsterket i dag.
- Platoblokkkjede. Web3 Metaverse Intelligence. Kunnskap forsterket. Tilgang her.
- kilde: https://bitcoinmagazine.com/technical/what-makes-nostr-a-different-social-platform
- 2020
- 7
- a
- evne
- I stand
- Om oss
- Logg inn
- tvers
- faktisk
- Etter
- Alle
- tillater
- alternativ
- alltid
- og
- En annen
- noen
- oppmerksomhet
- godkjenne
- automatisk
- Backend
- utestengt
- basert
- grunnleggende
- fordi
- bli
- før du
- bak
- være
- mellom
- Stor
- Bitcoin
- Bitcoin Magazine
- bitcoin transaksjoner
- bitcoinere
- Blocks
- kringkaste
- BTC
- BTC Inc.
- bygge
- Bygning
- bygget
- Kjøpe ut
- kan ikke
- saken
- forårsaker
- sentralisert
- endring
- Chaos
- kostnad
- Velg
- fjerne
- kunde
- klienter
- kombinere
- kommunisere
- kompleksitet
- komplisert
- kompromittert
- Koble
- vurderer
- begrensninger
- innhold
- bidratt
- kontroll
- kontrolleres
- Kjerne
- Dekker
- opprettet
- skaper
- skaperen
- kriterier
- I dag
- dato
- desentralisert
- utforming
- designet
- Utvikler
- utviklere
- forskjellig
- digitalt
- digital identitet
- direkte
- Vise
- nedlasting
- Drop
- under
- hver enkelt
- Elon
- Elon Musk
- andre steder
- emalje
- kryptert
- Hele
- fullstendig
- hovedsak
- etablere
- etc
- Selv
- Event
- hendelser
- NOEN GANG
- alt
- Unntatt
- finnes
- utvidet
- uttrykte
- ekstremt
- tilrettelegging
- Fediverse
- Hentet
- filtre
- Finn
- finne
- Først
- flokker
- etter
- svindel
- Gratis
- Frihet
- fra
- funksjon
- funksjonalitet
- fundamentalt
- få
- general
- få
- gitt
- Go
- god
- Godt jobbet
- størst
- garantere
- garantier
- Gjest
- gjest innlegg
- håndfull
- håndtere
- hash
- å ha
- vert
- Hosting
- Hvordan
- Men
- HTTPS
- Tanken
- identiteter
- Identitet
- gjennomføring
- viktig
- in
- inkludere
- inkluderer
- indeks
- individuelt
- informasjon
- Infrastruktur
- i stedet
- integritet
- samhandle
- samhandler
- interaksjoner
- interessert
- samvirke
- saker
- IT
- selv
- Jobb
- nøkkel
- nøkler
- Type
- stor
- Siste
- Led
- Lar
- lettvekt
- Liste
- ser
- taper
- Lot
- magazine
- vedlikeholde
- GJØR AT
- mange
- massive
- Мастодон
- Media
- melding
- meldinger
- metadata
- mikropayments
- flytte
- flere
- Musk
- nødvendigvis
- Ny
- neste
- Vår
- Åpenbare
- Gammel
- ONE
- på nett
- åpen
- åpner
- betjene
- operatør
- operatører
- Meninger
- rekkefølge
- original
- Annen
- samlet
- egen
- eide
- eieren
- eier
- Passerer
- betalinger
- Ansatte
- person
- personlig
- bilde
- brikke
- plattform
- Plattformer
- plato
- Platon Data Intelligence
- PlatonData
- muligheter
- mulighet
- Post
- innlegg
- potensiell
- forebygge
- hindre
- Før
- privat
- private Key
- problemer
- forfremmelse
- bevis
- ordentlig
- protokollen
- offentlig
- offentlig Key
- offentlige nøkler
- reaksjon
- Reality
- grunner
- motta
- mottatt
- mottak
- nylig
- anbefaler
- reflektere
- Uansett
- relevant
- erstatte
- anmode
- Resultater
- retur
- Kjør
- rennende
- samme
- Skala
- ordningen
- sømløst
- se
- Gripe
- Servere
- servering
- delt
- Kort
- undertegne
- Signal
- signert
- lignende
- enkelhet
- ganske enkelt
- samtidig
- siden
- enkelt
- So
- så langt
- selskap
- sosiale medier
- sosiale plattformer
- løsning
- Solutions
- noen
- noe
- Rom
- spesifikk
- spesifikasjon
- Damp
- Still
- Stopp
- lagring
- oppbevare
- lagret
- styrke
- struktur
- strukturert
- send
- abonnement
- slik
- ment
- system
- Systemer
- TAG
- Snakk
- snakker
- vilkår
- De
- deres
- ting
- ting
- tre
- Gjennom
- tidsstempel
- til
- i dag
- topp
- Totalt
- trekkraft
- Transaksjonen
- Transaksjoner
- SVING
- typer
- Til syvende og sist
- bruke
- Bruker
- Brukere
- bruker
- verdi
- verifisere
- Se
- tømme
- ønsket
- svakhet
- Hva
- om
- hvilken
- mens
- hviteliste
- HVEM
- hvem som helst
- vil
- uten
- Arbeid
- ville
- skrive
- Du
- Din
- zephyrnet