Nostr har fått mycket uppmärksamhet och ånga bakom sig sedan dess senaste tillägget till listan över alternativa sociala plattformar som är förbjudna att marknadsföra på Twitter. Och det vinner också draghjälp när det har blivit tydligt att Twitter-köpet av Elon Musk inte i grunden har förändrat något om yttrandefriheten på plattformen – användarna är fortfarande förbjuden av inkonsekventa och godtyckliga skäl, och folk letar efter ett decentraliserat alternativ som inte är något som Mastodon, där en serveroperatör har fortfarande förmågan att kontrollera din identitet.
Trots den senaste uppmärksamheten skapades faktiskt Nostr-protokollet och den första reläserverimplementeringen i slutet av 2020 av utvecklaren fiatjaf. Före den stora uppmärksamheten var det bara ett tyst nischprotokoll som helt enkelt försökte vara en lätt lösning på problemen med Twitter och Mastodon. På båda systemen är din identitet/användarnamn helt enkelt en sak som kontrolleras av den som kör servern. Mastodon är ett federerat system med flera olika servrar som alla pratar med varandra förändrar inte den verkligheten i grunden. Den server du använder för att vara värd för ett konto har total kontroll över om du kan använda den eller inte. Även om du kör din egen server kan andra serveroperatörer svart- eller vitlista vilka servrar som får prata med deras. Detta har lett till mycket partitionering i "Fediverse" av olika Mastodon-servrar och gör tanken på att bara köra din egen meningslös. Du kan fortfarande i slutändan bli censurerad av andra serveroperatörer, vilket hindrar deras användare från att någonsin se ditt innehåll i deras flöde.
Kärnskillnaden mellan Nostr och något som Mastodon är att, istället för att använda ett användarnamn som ägs av en serveroperatör, använder varje användare ett offentligt/privat nyckelpar för att hantera den funktionen istället. Det är något som en serveroperatör inte bara kan ta från dig eller låsa dig från. Detta är en av de centrala byggstenarna som det övergripande Nostr-protokollet är byggt på.
Nästa är "händelser". Detta är den grundläggande objekt-/datatypen som används av klienter och reläservrarna som klienter ansluter till för att skicka och hämta meddelanden. Den allmänna idén med protokollet är att klienter skickar händelser till reläservrar, som sedan i sin tur lagrar och indexerar dem, och andra klienter kan kommunicera med reläservrar för att begära händelser som de har tagit emot och lagrat. I den ursprungliga NIP 01tre olika händelsetyper definieras:
- 0: Skickar metadata om en användare, såsom användarnamn, bild, en biografi, etc.
- 1: Skickar textmeddelanden och grundläggande innehåll
- 2: Rekommenderar reläservrar för personer som följer händelseskaparen att ansluta till
Alla händelser är strukturerade på ett specifikt definierat sätt. De inkluderar skaparens publika nyckel, en tidsstämpel för när de skapades, deras typ (eller typ i specifikationen), innehållets nyttolast och en signatur från händelseskaparen. De kan också ha taggar som refererar till andra händelser eller användare, och har ett ID-värde som är en hash av allt utom skaparens signatur (liknande en TXID för Bitcoin-transaktioner). Detta låter dig garantera att ett meddelande faktiskt skapades av ägaren till den publika nyckeln inuti det genom att verifiera signaturen (och personen som äger nyckeln om den inte har äventyrats), och garantera att meddelandet inte ändrades efter de skrev under. Precis som du inte kan ändra en Bitcoin-transaktion efter att den har undertecknats utan att ogiltigförklara den, kan du inte ändra en Nostr-händelse efter att skaparen undertecknat den utan att det är ett uppenbart bedrägeri.
Det evenemangsvänliga systemet utökades ganska avsevärt från det ursprungliga NIP. Det finns en händelsetyp för krypterade direktmeddelanden, upprättande av en delad nyckel genom att kombinera avsändarens privata nyckel med mottagarens publika nyckel, vilket resulterar i samma nyckel som du skulle få genom att kombinera avsändarens offentliga nyckel med mottagarens privata nyckel (så här PIP 47 och tysta betalningar fungerar). Det finns också typer för utbytbara händelser och tillfälliga händelser. I fallet med ett utbytbart evenemang (uppenbarligen) är de utformade så att den ursprungliga skaparen av evenemanget kan signera en ny för att ersätta den gamla. Reläservrar som följer specifikationen kommer automatiskt att ta bort den äldre händelsen från deras lagring och börja leverera de nyare versionerna till klienter vid mottagandet. Efemeriska händelser är utformade så att de kommer att sändas till alla som prenumererar på deras skapare när de skickas till reläet, men reläservrar är inte tänkta att lagra dem. Detta skapar möjligheten att meddelanden endast ses av människor när de är online under sändningen. Det finns till och med en händelsetyp för att signalera en reaktion (som likes eller emojis) på andras händelser.
På tal om det sista, händelser kan också innehålla taggar. För närvarande finns det taggtyper för händelser (för att referera till en exakt Nostr-händelse), publika nycklar (för att tagga eller referera till andra användare) och ämnen (för att emulera funktionalitet, såsom e-postämnen). Alla dessa kan inkludera pekare till specifika reläservrar från vilka data kan hämtas så att användare faktiskt kan interagera över servrar, dvs en användare som lägger upp sitt innehåll till en reläserver kan interagera med och referera till innehåll som skapats av en annan användare som postar till en annan reläserver på ett sätt som gör det möjligt för alla användare att på ett konsekvent sätt hämta hela tråden av interaktioner i rätt ordning och utan stor komplexitet för att ta reda på var man kan hitta relevant data.
Inuti den ursprungliga NIP ges en specifikation för hur klienter ska interagera med reläservrar genom ett prenumerationsmeddelande/datastruktur som inkluderar filter för vilka händelser som klienten är intresserad av att ta emot. Dessa filter kan specificera användarnas publika nycklar, exakta händelser, typer av händelser och till och med specifika tidsramar inom vilka de vill ha dem baserat på tidigare kriterier. Du kan till och med skicka in prefix för offentliga nycklar eller händelse-ID, till exempel "1xjisj...." och ta emot alla händelser eller händelser från en publik nyckel som börjar med den korta strängen (detta kan vara användbart för att dölja från en reläserver vad du faktiskt ville se).
Sammantaget är protokollet ett väldigt enkelt, generaliserat schema för att skicka meddelanden mellan användare som täcker de viktiga sakerna, som att garantera integriteten för meddelanden och vem som skickade dem med användning av offentliga nyckelidentiteter, samtidigt som det underlättar infrastrukturen på backend för reläservrar som kan vara extremt centraliserade eller tillåta en användare att köra sin egen personliga reläserver, allt samtidigt som de sömlöst interagerar med varandra och inte orsakar massivt kaos i händelse av att en användare blockeras från en reläserver. De kan flytta till en annan eller köra sin egen och deras de-plattforming från den tidigare servern förlorar inte deras digitala identitet eller följare eftersom de fortfarande har kontroll över sin privata nyckel och användare kan autentisera det när de hittar dem någon annanstans.
Reläservrar kan också fungera hur de vill. De kan arbeta gratis, kan ta ut mikrobetalningar för att lägga upp eller ladda ner meddelanden, och det finns till och med ett NIP för att ha krävt arbetsbevis i hashcash-stil för att skicka ett meddelande. De kan vara en enda reläserver för att vara värd för och endast servera dina inlägg till andra användare, eller så kan de vara en server som körs i massiv skala som Twitter eller Reddit (klienter kan visa och organisera information hur de vill, vilket gör det möjligt att emulera i princip alla sociala medier medieplattform som finns idag). Allt detta kan samverka sömlöst och utan att kunna stänga ute en användare. Du kan hindra dem från att lägga upp innehåll på din reläserver, men i slutändan kan du inte hindra dem från att se innehåll som du är värd på din reläserver eller hindra andra användare från att hitta sitt innehåll på andra servrar.
Det är ett mycket förenklat protokoll med ett stort, öppet designutrymme för människor att bygga, vilket garanterar att användare alltid kan interagera med varandra oavsett vad enskilda reläserveroperatörer väljer att vara värd för eller inte. Detta är samtidigt dess största styrka och största svaghet. Även om det garanterar friheten för utvecklare att bygga utan snäva begränsningar genom ett komplicerat protokoll, finns det också många problem som det kommer att stöta på som inte hanteras av själva protokollet.
I nästa stycke jag skriver kommer jag att gå in på några av de problem jag ser uppstå och potentiella lösningar, men för tillfället vill jag bara säga att när det gäller enkelheten i designen och möjligheterna som det öppnar upp för människor att bygga har Nostr gjort ett mycket bra jobb, med tanke på att det är en persons idé och bara en handfull människor har verkligen bidragit till själva protokollspecifikationen hittills.
Detta är ett gästinlägg av Shinobi. Åsikter som uttrycks är helt deras egna och återspeglar inte nödvändigtvis de från BTC Inc eller Bitcoin Magazine.
- SEO-drivet innehåll och PR-distribution. Bli förstärkt idag.
- Platoblockchain. Web3 Metaverse Intelligence. Kunskap förstärkt. Tillgång här.
- Källa: https://bitcoinmagazine.com/technical/what-makes-nostr-a-different-social-platform
- 2020
- 7
- a
- förmåga
- Able
- Om oss
- Konto
- tvärs
- faktiskt
- Efter
- Alla
- tillåter
- alternativ
- alltid
- och
- Annan
- någon
- uppmärksamhet
- autentisera
- automatiskt
- backend
- förbjudits
- baserat
- grundläggande
- därför att
- blir
- innan
- bakom
- Där vi får lov att vara utan att konstant prestera,
- mellan
- Stor
- Bitcoin
- Bitcoin Magazine
- bitcoin-transaktioner
- bitcoin
- Block
- sända
- BTC
- BTC Inc.
- SLUTRESULTAT
- Byggnad
- byggt
- Köpa ut
- kan inte
- Vid
- orsakar
- centraliserad
- byta
- Kaos
- laddning
- Välja
- klar
- klient
- klienter
- kombinera
- kommunicera
- Komplexiteten
- komplicerad
- Äventyras
- Kontakta
- med tanke på
- begränsningar
- innehåll
- bidrog
- kontroll
- kontrolleras
- Kärna
- Täcker
- skapas
- skapar
- skaparen
- kriterier
- För närvarande
- datum
- decentraliserad
- Designa
- utformade
- Utvecklare
- utvecklare
- olika
- digital
- digital identitet
- rikta
- Visa
- ladda ner
- Drop
- under
- varje
- Elon
- Elon Musk
- annorstädes
- krypterad
- Hela
- helt
- väsentligen
- upprättandet
- etc
- Även
- händelse
- händelser
- NÅGONSIN
- allt
- Utom
- finns
- expanderade
- uttryckt
- extremt
- underlättande
- Fediverse
- Hämtas
- filter
- hitta
- finna
- Förnamn
- flockning
- efter
- bedrägeri
- Fri
- Frihet
- från
- fungera
- funktionalitet
- fundamentalt
- få
- Allmänt
- skaffa sig
- ges
- Go
- god
- bra jobb
- störst
- garanti
- garantier
- Gäst
- gäst inlägg
- näve
- hantera
- hash
- har
- värd
- värd
- Hur ser din drömresa ut
- Men
- HTTPS
- Tanken
- identiteter
- Identitet
- genomförande
- med Esport
- in
- innefattar
- innefattar
- index
- individuellt
- informationen
- Infrastruktur
- istället
- integritet
- interagera
- interagera
- interaktioner
- intresserad
- samverka
- problem
- IT
- sig
- Jobb
- Nyckel
- nycklar
- Snäll
- Large
- Efternamn
- Led
- Lets
- lättvikt
- Lista
- du letar
- förlorar
- Lot
- magasinet
- bibehålla
- GÖR
- många
- massiv
- Mastodon
- Media
- meddelande
- meddelanden
- metadata
- mikrobetalningar
- flytta
- multipel
- Mysk
- nödvändigtvis
- Nya
- Nästa
- Vår
- Uppenbara
- Gamla
- ONE
- nätet
- öppet
- öppnas
- driva
- Operatören
- operatörer
- Åsikter
- beställa
- ursprungliga
- Övriga
- övergripande
- egen
- ägd
- ägaren
- äger
- Förbi
- betalningar
- Personer
- personen
- personlig
- Bild
- bit
- plattform
- Plattformar
- plato
- Platon Data Intelligence
- PlatonData
- Möjligheterna
- Möjligheten
- Inlägg
- inlägg
- potentiell
- förhindra
- förebyggande
- Innan
- privat
- privat nyckel
- problem
- främjande
- bevis
- rätt
- protokoll
- allmän
- Public Key
- offentliga nycklar
- Reaktionen
- Verkligheten
- skäl
- motta
- mottagna
- mottagande
- senaste
- rekommenderar
- reflektera
- Oavsett
- relevanta
- ersätta
- begära
- Resultat
- avkastning
- Körning
- rinnande
- Samma
- Skala
- ordningen
- sömlöst
- se
- Gripa
- Servrar
- portion
- delas
- Kort
- signera
- Signal
- signerad
- liknande
- enkelhet
- helt enkelt
- samtidigt
- eftersom
- enda
- So
- än så länge
- Social hållbarhet
- sociala medier
- sociala plattformar
- lösning
- Lösningar
- några
- något
- Utrymme
- specifik
- specifikation
- Ånga
- Fortfarande
- Sluta
- förvaring
- lagra
- lagras
- hållfasthet
- struktur
- strukturerade
- skicka
- prenumeration
- sådana
- förment
- system
- System
- MÄRKA
- Diskussion
- tala
- villkor
- Smakämnen
- deras
- sak
- saker
- tre
- Genom
- tidsstämpel
- till
- i dag
- topp
- Totalt
- dragkraft
- transaktion
- Transaktioner
- SVÄNG
- typer
- Ytterst
- användning
- Användare
- användare
- Återvinnare
- värde
- verifiera
- utsikt
- tömning
- ville
- svaghet
- Vad
- om
- som
- medan
- vitlista
- VEM
- den som
- kommer
- utan
- Arbete
- skulle
- skriva
- Om er
- Din
- zephyrnet