Nostr har fået meget opmærksomhed og damp bag sig siden dens nylige tilføjelse til listen over alternative sociale platforme, der er forbudt at promovere på Twitter. Og det vinder også indpas, efterhånden som det er blevet klart, at Twitter-opkøbet af Elon Musk ikke grundlæggende har ændret noget ved ytringsfriheden på platformen - brugerne er stadig forbudt af inkonsekvente og vilkårlige årsager, og folk leder efter et decentraliseret alternativ, der ikke er noget som Mastodon, hvor en server operatør stadig har evnen til at kontrollere din identitet.
På trods af den seneste opmærksomhed blev Nostr-protokollen og den første relæserverimplementering faktisk skabt i slutningen af 2020 af udvikleren fiatjaf. Før det store udbrud af opmærksomhed var det bare en stille nicheprotokol, der blot forsøgte at være en letvægtsløsning på problemerne med Twitter og Mastodon. På begge systemer er din identitet/brugernavn simpelthen en ting, der kontrolleres af den, der kører serveren. Mastodon er et fødereret system med flere forskellige servere, der alle taler med hinanden, ændrer ikke fundamentalt på den virkelighed. Den server, du bruger til at hoste en konto, har fuld kontrol over, om du kan bruge den eller ej. Selv når du kører din egen server, kan andre serveroperatører sort- eller hvidliste, hvilke servere der får lov til at tale med deres. Dette har ført til en masse partitionering i "Fediverse" af forskellige Mastodon-servere og gør ideen om bare at køre din egen meningsløs. Du kan stadig i sidste ende blive censureret af andre serveroperatører, hvilket forhindrer deres brugere i nogensinde at se dit indhold i deres feed.
Kernedifferentieringen mellem Nostr og noget som Mastodon er, at i stedet for at bruge et brugernavn, der ejes af en serveroperatør, bruger hver bruger et offentligt/privat nøglepar til at håndtere denne funktion i stedet. Det er noget, som en serveroperatør ikke bare kan gribe fra dig eller låse dig ude af. Dette er en af de kernebyggesten, som den overordnede Nostr-protokol er bygget ovenpå.
Det næste er "begivenheder". Dette er den grundlæggende objekt-/datatype, der bruges af klienter og de relæservere, som klienter opretter forbindelse til for at sende og hente meddelelser. Den generelle idé med protokollen er, at klienter sender hændelser til relæservere, som så igen gemmer og indekserer dem, og andre klienter kan kommunikere med relæservere for at anmode om hændelser, de har modtaget og gemt. I originalen NIP 01, er tre forskellige hændelsestyper defineret:
- 0: Sender metadata om en bruger, såsom brugernavn, billede, en biografi osv.
- 1: Sender tekstbeskeder og grundlæggende indhold
- 2: Anbefaler relæservere for personer, der følger begivenhedsskaberen, at oprette forbindelse til
Alle begivenheder er struktureret på en specifikt defineret måde. De inkluderer skaberens offentlige nøgle, et tidsstempel for, hvornår de blev oprettet, deres type (eller art i specifikationen), indholdets nyttelast og en signatur fra begivenhedsskaberen. De kan også have tags, der refererer til andre begivenheder eller brugere, og har en ID-værdi, som er en hash af alt undtagen skaberens signatur (svarende til en TXID for Bitcoin-transaktioner). Dette lader dig garantere, at en meddelelse faktisk blev oprettet af ejeren af den offentlige nøgle inde i den ved at bekræfte signaturen (og den person, der ejer nøglen, hvis den ikke er kompromitteret), og garantere, at meddelelsen ikke blev ændret efter de underskrev det. Ligesom du ikke kan ændre en Bitcoin-transaktion, efter at den er underskrevet uden at annullere den, kan du ikke ændre en Nostr-begivenhed, efter at skaberen har underskrevet den, uden at det er en åbenlys svindel.
Eventtype-systemet blev udvidet ganske væsentligt fra det oprindelige NIP. Der er en hændelsestype for krypterede direkte beskeder, der etablerer en delt nøgle ved at kombinere afsenderens private nøgle med modtagerens offentlige nøgle, hvilket resulterer i den samme nøgle, som du ville få ved at kombinere afsenderens offentlige nøgle med modtagerens private nøgle (sådan BNP 47 og Silent Payments fungerer). Der er også typer til udskiftelige begivenheder og flygtige begivenheder. I tilfælde af en udskiftelig begivenhed (naturligvis), er de designet, så den oprindelige skaber af begivenheden kan underskrive en ny for at erstatte den gamle. Relæservere, der følger specifikationen, vil automatisk droppe den ældre hændelse fra deres lager og begynde at servere de nyere versioner til klienter ved modtagelse. Kortvarige begivenheder er designet, så de vil blive udsendt til alle, der abonnerer på deres skaber, når de sendes til relæet, men det er ikke meningen, at relæservere skal gemme dem. Dette giver mulighed for kun at få beskeder set af folk, når de er online under udsendelsen. Der er endda en begivenhedstype til at signalere en reaktion (såsom likes eller emojis) på andres begivenheder.
Apropos det sidste, så kan begivenheder også indeholde tags. I øjeblikket er der tagtyper for begivenheder (for at referere til en nøjagtig Nostr-begivenhed), offentlige nøgler (for at tagge eller referere til andre brugere) og emner (for at efterligne funktionalitet, såsom e-mail-emner). Alle disse kan omfatte pointere til specifikke relæservere, hvorfra dataene kan hentes, så brugere faktisk kan interagere på tværs af servere, dvs. en bruger, der sender deres indhold til en relæserver, kan interagere med og referere til indhold, der er oprettet af en anden bruger, der sender til en anden relæserver på en måde, der giver enhver bruger mulighed for sammenhængende at hente hele tråden af interaktioner i den rigtige rækkefølge og uden massiv kompleksitet i at finde ud af, hvor man kan finde de relevante data.
Inde i den originale NIP er der givet en specifikation for, hvordan klienter skal interagere med relæservere gennem en abonnementsmeddelelse/datastruktur, der inkluderer filtre for, hvilke hændelser den klient er interesseret i at modtage. Disse filtre kan specificere brugernes offentlige nøgler, nøjagtige hændelser, typer af hændelser og endda specifikke tidsrammer, inden for hvilke de ønsker dem baseret på de tidligere kriterier. Du kan endda indsende præfikser for offentlige nøgler eller begivenheds-id'er, såsom "1xjisj...." og modtage enhver begivenhed eller begivenheder fra en offentlig nøgle, der begynder med den korte streng (dette kan være nyttigt til at skjule fra en relæserver, hvad du faktisk ønskede at se).
Overordnet set er protokollen en meget blottet, generaliseret ordning til at sende beskeder mellem brugere, der dækker de vigtige ting, såsom at garantere integriteten af beskeder, og hvem der sendte dem med brug af offentlige nøgleidentiteter, samtidig med at den letter infrastrukturen på backend for relæservere, der kan være ekstremt centraliserede eller tillade en bruger at køre deres egen personlige relæserver, alt imens de interagerer problemfrit med hinanden og ikke forårsager massivt kaos i tilfælde af, at en bruger bliver bannet fra én relæserver. De kan flytte til en anden eller køre deres egen, og deres de-platforming fra den tidligere server mister dem ikke deres digitale identitet eller følgere, fordi de stadig bevarer kontrollen over deres private nøgle, og brugerne kan godkende det, når de finder dem andre steder.
Relæservere kan også fungere som de vil. De kan fungere gratis, kan opkræve mikrobetalinger for at sende eller downloade beskeder, og der er endda et NIP for at kræve hashcash-lignende bevis på arbejde for at sende en besked. De kan være en enkelt relæserver til hosting og kun servering af dine indlæg til andre brugere, eller de kan være en server, der kører i massiv skala såsom Twitter eller Reddit (klienter kan vise og organisere information, som de vil, hvilket gør det muligt at efterligne stort set alle sociale medier medieplatform, der eksisterer i dag). Alt dette kan fungere problemfrit og uden at kunne lukke en bruger ude. Du kan forhindre dem i at sende indhold til din relæserver, men i sidste ende kan du ikke forhindre dem i at se indhold, du hoster på din relæserver, eller forhindre andre brugere i at finde deres indhold på andre servere.
Det er en meget forenklet protokol med et stort, åbent designrum, som folk kan bygge, hvilket garanterer, at brugere altid kan interagere med hinanden, uanset hvad individuelle relæserveroperatører vælger at være vært for eller ej. Dette er samtidig dens største styrke og største svaghed. Selvom det garanterer frihed for udviklere til at bygge uden stramme begrænsninger af en kompliceret protokol, er der også mange problemer, som den i sagens natur vil løbe ind i, som ikke håndteres af selve protokollen.
I det næste stykke, jeg skriver, vil jeg komme ind på nogle af de problemer, jeg ser opstå og potentielle løsninger, men indtil videre vil jeg bare sige, at med hensyn til designets enkelhed og de muligheder, det åbner for folk at build, har Nostr gjort et meget godt stykke arbejde, i betragtning af at det er en persons idé, og kun en håndfuld mennesker har virkelig bidraget til selve protokolspecifikationen indtil videre.
Dette er et gæsteindlæg af Shinobi. Udtalte meninger er helt deres egne og afspejler ikke nødvendigvis dem fra BTC Inc eller Bitcoin Magazine.
- SEO Powered Content & PR Distribution. Bliv forstærket i dag.
- Platoblokkæde. Web3 Metaverse Intelligence. Viden forstærket. Adgang her.
- Kilde: https://bitcoinmagazine.com/technical/what-makes-nostr-a-different-social-platform
- 2020
- a
- evne
- I stand
- Om
- Konto
- tværs
- faktisk
- Efter
- Alle
- tillader
- alternativ
- altid
- ,
- En anden
- nogen
- opmærksomhed
- autentificere
- automatisk
- Bagende
- bandlyst
- baseret
- grundlæggende
- fordi
- bliver
- før
- bag
- være
- mellem
- Big
- Bitcoin
- Bitcoin Magazine
- Bitcoin-transaktion
- bitcoin transaktioner
- bitcoinere
- Blocks
- udsende
- BTC
- BTC Inc
- bygge
- Bygning
- bygget
- Udkøb
- kan ikke
- tilfælde
- forårsager
- centraliseret
- lave om
- Chaos
- afgift
- Vælg
- klar
- kunde
- kunder
- kombinerer
- kommunikere
- kompleksitet
- kompliceret
- Kompromitteret
- Tilslut
- Overvejer
- begrænsninger
- indhold
- bidrog
- kontrol
- kontrolleret
- Core
- dækker
- oprettet
- skaber
- skaberen
- kriterier
- For øjeblikket
- data
- decentral
- Design
- konstrueret
- Udvikler
- udviklere
- forskellige
- digital
- digital identitet
- direkte
- Skærm
- downloade
- Drop
- i løbet af
- hver
- Elon
- Elon Musk
- andetsteds
- krypteret
- Hele
- helt
- væsentlige
- oprettelse
- etc.
- Ether (ETH)
- Endog
- begivenhed
- begivenheder
- NOGENSINDE
- at alt
- Undtagen
- eksisterer
- udvidet
- udtrykt
- ekstremt
- faciliterende
- Fediverse
- Hentet
- Filtre
- Finde
- finde
- Fornavn
- strømmer
- efter
- bedrageri
- Gratis
- Frihed
- fra
- funktion
- funktionalitet
- fundamentalt
- vinder
- Generelt
- få
- given
- Go
- godt
- godt arbejde
- størst
- garanti
- garantier
- Gæst
- gæst Indlæg
- håndfuld
- håndtere
- hash
- have
- host
- Hosting
- Hvordan
- Men
- HTTPS
- idé
- identiteter
- Identity
- implementering
- vigtigt
- in
- omfatter
- omfatter
- indeks
- individuel
- oplysninger
- Infrastruktur
- i stedet
- integritet
- interagere
- interaktion
- interaktioner
- interesseret
- interoperere
- spørgsmål
- IT
- selv
- Job
- Nøgle
- nøgler
- Venlig
- stor
- Efternavn
- Led
- Lets
- letvægt
- Liste
- leder
- taber
- Lot
- magasin
- vedligeholde
- maerker
- mange
- massive
- Mastodon
- Medier
- besked
- beskeder
- Metadata
- mikrobetalinger
- bevæge sig
- flere
- Musk
- nødvendigvis
- Ny
- næste
- Obvious
- Gammel
- ONE
- online
- åbent
- åbner
- betjene
- operatør
- Operatører
- Udtalelser
- ordrer
- original
- Andet
- samlet
- egen
- ejede
- ejer
- ejer
- Passing
- betalinger
- Mennesker
- person,
- personale
- billede
- stykke
- perron
- Platforme
- plato
- Platon Data Intelligence
- PlatoData
- muligheder
- Muligheden
- Indlæg
- Indlæg
- potentiale
- forhindre
- forebyggelse
- Forud
- private
- private nøgle
- problemer
- forfremmelse
- bevis
- passende
- protokol
- offentlige
- offentlig nøgle
- offentlige nøgler
- reaktion
- Reality
- årsager
- modtage
- modtaget
- modtagende
- nylige
- anbefaler
- afspejler
- Uanset
- relevant
- erstatte
- anmode
- Resultater
- afkast
- Kør
- kører
- samme
- Scale
- Ordningen
- problemfrit
- se
- Gribe
- servering
- delt
- Kort
- underskrive
- Signal
- underskrevet
- lignende
- enkelhed
- ganske enkelt
- samtidigt
- siden
- enkelt
- So
- indtil nu
- Social
- sociale medier
- sociale platforme
- løsninger
- Løsninger
- nogle
- noget
- Space
- specifikke
- specifikation
- Damp
- Stadig
- Stands
- opbevaring
- butik
- opbevaret
- styrke
- struktur
- struktureret
- indsende
- abonnement
- sådan
- formodes
- systemet
- Systemer
- TAG
- Tal
- taler
- vilkår
- deres
- ting
- ting
- tre
- Gennem
- tidsstempel
- til
- i dag
- top
- I alt
- trækkraft
- transaktion
- Transaktioner
- TUR
- typer
- Ultimativt
- brug
- Bruger
- brugere
- udnytter
- værdi
- verificere
- Specifikation
- vandladning
- ønskede
- Svaghed
- Hvad
- hvorvidt
- som
- mens
- whitelist
- WHO
- hvem
- vilje
- uden
- Arbejde
- ville
- skriver
- Din
- zephyrnet