Dit is een opinieredactioneel commentaar van Shinobi, een autodidactische opvoeder in de Bitcoin-ruimte en technisch georiënteerde Bitcoin-podcasthost.
Ik stel voor dat u, voordat u dit leest, de vorig artikel schreef ik waarin ik uitlegde wat Nostr is en hoe het op hoog niveau werkt. U zou dan een goed idee moeten hebben van het kernontwerp van het systeem op dat moment, dus laten we nu eens kijken naar de waarschijnlijke problemen die zullen optreden naarmate het gebruik groeit. Met het perron populair worden voor de Bitcoin-gemeenschap, deze problemen zijn er om op te letten.
Zoals ik in het vorige artikel heb besproken, zijn openbare/private sleutelparen van gebruikers een integraal onderdeel van hoe Nostr werkt als een protocol. Er zijn geen gebruikersnamen, of andere identificatiegegevens waarover een relayserver de controle heeft, om aan individuele gebruikers te koppelen. Het zijn gewoon de sleutels van die gebruikers die volledig onder hun controle staan.
Dit werkt als een hechte band tussen de daadwerkelijke gebruiker en hoe deze door anderen wordt geïdentificeerd, waardoor wordt voorkomen dat een relayserver deze twee dingen loskoppelt, dwz iemands identificatie aan een andere gebruiker geven. Dit lost een van de grootste fundamentele problemen op van platforms die worden gebruikt voor communicatie tussen mensen: het gebrek aan controle over de eigen identiteit van gebruikers. Maar het introduceert ook alle problemen van sleutelbeheer waar iemand met een privésleutel tegenaan loopt. Sleutels kunnen verloren gaan en sleutels kunnen worden gecompromitteerd en als een dergelijke gebeurtenis zich voordoet, kunnen gebruikers bij niemand terecht voor hulp, net als bij Bitcoin. Er is geen klantenondersteuning om iets te herstellen. Je verliest het, dat is het.
Dit zal onvermijdelijk een schema voor gebruikers noodzakelijk maken om van het ene sleutelpaar naar het andere te roteren op een manier die verifieerbaar en vindbaar is voor andere gebruikers waarmee ze via het protocol communiceren. Het hele protocol is gebaseerd op het bewijzen dat een gebeurtenis afkomstig is van een specifieke gebruiker (identiteitssleutel), dus al die garanties verdwijnen zodra iemands sleutels in gevaar zijn gebracht.
Hoe pak je dat aan? Gewoon even hun Twitter-account checken? Nou, dan is dat uiteindelijk geen erg gedecentraliseerd systeem, als je een gecentraliseerd platform nodig hebt waar ze geen controle hebben over hun identiteit om hun Nostr-identiteit te verifiëren.
Hebben andere gebruikers de legitimiteit van een nieuwe sleutel bevestigd? Dat gaat niet in op situaties zoals massale sleutelcompromissen, of het niet goed genoeg kennen van iemand in hun omgeving om hun attest te vertrouwen.
Nostr heeft een echt cryptografisch schema nodig dat de rotatie van de ene sleutel aan de andere koppelt. Er is een voorstel van ontwikkelaar fiatjaf voor een basisschema dat dit probleem mogelijk zou kunnen oplossen. Het basisidee zou zijn om een lange set adressen te nemen die zijn afgeleid van een enkele master seed, en een set "tweaked" sleutels te maken, vergelijkbaar met hoe Taproot-bomen worden toegewezen aan een Bitcoin-sleutel. Taproot neemt de Merkle-boomwortel van de Taproot-boom en "voegt" deze toe aan de openbare sleutel om een nieuwe openbare sleutel te maken. Dit kan worden gerepliceerd door die Merkle-boomwortel toe te voegen aan de privésleutel om de overeenkomende privésleutel voor de nieuwe openbare sleutel te verkrijgen. Het idee van Fiatjaf is om toezeggingen achterwaarts van het einde naar het begin te ketenen, zodat elke geknepen sleutel daadwerkelijk een bewijs bevat dat de volgende geknepen sleutel is gebruikt om deze te maken.
Dus stel je voor dat je begint met sleutel Z, de laatste in de keten. Je zou dit met iets aanpassen, en dan teruggaan en een aangepaste versie van sleutel Y maken met behulp van de aangepaste Z-sleutel (Z' + Y = Y'). Vanaf hier zou je Y' nemen en het dan gebruiken om X aan te passen (Y' + X = X'). Je zou dit helemaal terug doen naar sleutel A, om A' te krijgen, en van daaruit die sleutel gaan gebruiken. Wanneer het gecompromitteerd is, kan de gebruiker een gebeurtenis uitzenden die de niet-verzwakte sleutel A en de geknepen sleutel B' bevat. Dit zou alle gegevens bevatten die nodig zijn om aan te tonen dat B' is gebruikt om A' te genereren, en gebruikers kunnen onmiddellijk stoppen met het volgen van A' en in plaats daarvan B' volgen. Ze zouden definitief weten dat B' de volgende sleutel van die gebruiker is en die in plaats daarvan volgen.
Dit voorstel kent echter nog enkele problemen. Eerst moet u alle sleutels die u ooit zou gebruiken van tevoren genereren en het is niet mogelijk om naar een geheel nieuwe set sleutels te draaien. Dit zou kunnen worden opgelost door een hoofdsleutel in dit schema vast te leggen die dergelijke rotaties zou kunnen notariëren, of door simpelweg vanaf het begin een zeer grote set sleutels te genereren. Elk pad zou een geldige manier zijn om te volgen, maar uiteindelijk zou het nodig zijn om een root-sleutel of sleutelmateriaal veilig te houden en alleen individuele sneltoetsen aan Nostr-clients bloot te stellen.
Dit schema doet echter niets om gebruikers te beschermen of biedt een mechanisme voor identiteitsherstel in het geval dat het root-sleutelmateriaal verloren gaat of zelf wordt gecompromitteerd. Dit wil niet zeggen dat er geen voordeel is aan het plan van Fiatjaf, dat is absoluut zo, maar het is belangrijk om erop te wijzen dat geen enkele oplossing elk probleem oplost.
Om een beetje te pontificeren over mogelijke oplossingen hier, stel je voor dat in plaats van een reeks geknepen sleutels zoals hij voorstelt, een sleutel wordt geknepen met een hoofdsleutel die ook moet worden gebruikt om de gebeurtenis te ondertekenen die van de ene sleutel naar de andere roteert. Je hebt sleutel A', die wordt afgeleid door A en M (de hoofdsleutel) toe te voegen, en de rotatiegebeurtenis zou A, M en B' zijn (gegenereerd door B en M toe te voegen) met een handtekening van M. M zou een multisig-drempelsleutel - twee van drie, drie van vijf, enz. Dit kan mogelijk redundantie tegen verlies toevoegen en een veilig mechanisme bieden voor sleutelrotatie. Dit opent ook de deur naar het gebruik van diensten om te helpen bij herstel, of het verspreiden van enkele van die sleutels onder vertrouwde vrienden. Het biedt dezelfde flexibiliteit als multisig met Bitcoin zelf.
PIN26 is ook een voorstel dat zeer nuttig zou kunnen zijn bij het oplossen van dit probleem. Dit specificeert een protocoluitbreiding voor gebeurtenissen waardoor een handtekening van de ene sleutel een andere sleutel autoriseert om namens hem gebeurtenissen te posten. Het "token", of handtekeningbewijs van delegatie, zou dan worden opgenomen in alle evenementen die namens de eerste door de tweede openbare sleutel worden gepost. Het kan zelfs in de tijd beperkt zijn, zodat delegatietokens automatisch verlopen en vernieuwd moeten worden.
Uiteindelijk is het echter opgelost, dit probleem heeft op lange termijn voor Nostr moet worden opgelost. Een protocol dat volledig is gebaseerd op publieke/private sleutelparen die als identiteiten worden gebruikt, kan geen grip krijgen en niet worden overgenomen als de integriteit van die identiteiten niet kan worden beschermd en onderhouden voor gebruikers. Dat komt er uiteindelijk op neer dat je constant out-of-band en gecentraliseerde platforms moet gebruiken om nieuwe sleutels te verifiëren en mensen te coördineren die je nieuwe identiteit volgen wanneer iets verloren of gecompromitteerd is, en op dat moment worden die andere platforms een middel om verwarring te zaaien. en doen aan censuur.
Kwesties van sleutelbeheer en beveiliging zijn grote problemen met een zeer grote ontwerpruimte vol compromissen en pijnpunten, maar het zijn problemen die binnen de context van Nostr moeten worden opgelost om het te laten werken. In mijn volgende artikel zal ik een aantal problemen samenvatten die ik zie opduiken met betrekking tot de relay-serverarchitectuur en schaalproblemen waarmee Nostr-ontwikkelaars te maken zullen krijgen gezien de basisdatastructuren waarop Nostr is gebouwd.
Voor iedereen die leest en zich afvraagt waarom ik geen gedecentraliseerde identifiers (DID's) heb genoemd: Ja, dat is een mogelijke oplossing voor deze problemen die, naar mijn mening, vrij veelomvattend is. Nostr-ontwikkelaars lijken echter erg aarzelend om DID's in het protocol of de clients te integreren, omdat dit externe afhankelijkheden buiten het Nostr-protocol zou creëren. Als u niet bekend bent met hoe DID's werken op technisch niveau en geïnteresseerd bent, dit artikel van Level 39 is een zeer goed geschreven samenvatting van hoe ze werken.
Dit is een gastpost van Shinobi. De geuite meningen zijn geheel van henzelf en komen niet noodzakelijk overeen met die van BTC Inc of Bitcoin Magazine.
- Door SEO aangedreven content en PR-distributie. Word vandaag nog versterkt.
- Platoblockchain. Web3 Metaverse Intelligentie. Kennis versterkt. Toegang hier.
- Bron: https://bitcoinmagazine.com/technical/solving-nostr-key-management-issues
- 7
- a
- absoluut
- Account
- werkelijk
- adres
- adressen
- Voegt
- Adoptie
- tegen
- vooruit
- Steun
- Alles
- Het toestaan
- en
- Nog een
- iedereen
- architectuur
- rond
- dit artikel
- Hulp
- Associëren
- toestemming geven
- webmaster.
- terug
- gebaseerde
- basis-
- worden
- wordt
- vaardigheden
- Begin
- wezen
- voordeel
- tussen
- Groot
- Grootste
- verbindend
- Beetje
- Bitcoin
- Bitcoin Magazine
- uitzenden
- BTC
- BTC Inc.
- bebouwd
- kan niet
- Censuur
- gecentraliseerde
- keten
- controle
- klanten
- Sluiten
- toegewijd
- plegen
- Communicatie
- compleet
- uitgebreid
- Aangetast
- verwarring
- permanent
- verband
- onder controle te houden
- coördineren
- Kern
- kon
- Type cursus
- en je merk te creëren
- cryptografische
- klant
- Klantenservice
- gegevens
- gedecentraliseerde
- Afgeleid
- Design
- Ontwikkelaar
- ontwikkelaars
- besproken
- Deur
- beneden
- elk
- Hoofdartikel
- beide
- toegewijd
- genoeg
- Geheel
- geheel
- etc
- Zelfs
- Event
- EVENTS
- uiteindelijk
- OOIT
- uitleggen
- uitgedrukt
- uitbreiding
- extern
- vertrouwd
- Fiatjaf
- Voornaam*
- Flexibiliteit
- volgen
- volgend
- vrienden
- oppompen van
- vol
- functies
- fundamenteel
- Krijgen
- voortbrengen
- gegenereerde
- het genereren van
- krijgen
- gegeven
- Vrijgevigheid
- Go
- gaan
- goed
- Groeit
- garanties
- Gast
- Gast Bericht
- handvat
- Behandeling
- met
- hier
- Aarzelend
- Hoge
- gastheer
- Hoe
- Echter
- HTTPS
- idee
- geïdentificeerd
- identificatie
- identiteiten
- Identiteit
- per direct
- belangrijk
- in
- inclusief
- individueel
- onvermijdelijk
- verkrijgen in plaats daarvan
- integraal
- integreren
- integriteit
- interactie
- geïnteresseerd
- Introduceert
- kwestie
- problemen
- IT
- zelf
- houden
- sleutel
- toetsen
- blijven
- Weten
- Gebrek
- Groot
- Achternaam*
- wettigheid
- Niveau
- Waarschijnlijk
- Beperkt
- lang
- Kijk
- verliezen
- uit
- magazine
- maken
- management
- Massa
- meester
- matching
- materiaal
- middel
- mechanisme
- vermeld
- multisig
- nodig
- behoeften
- New
- volgende
- Onze
- bieden
- Aanbod
- EEN
- opent
- Advies
- Meningen
- bestellen
- Overige
- Overig
- buiten
- het te bezitten.
- Pijn
- paren
- pad
- Mensen
- platform
- platforms
- Plato
- Plato gegevensintelligentie
- PlatoData
- Podcast
- punt
- punten
- Populair
- Post
- geplaatst
- potentieel
- mogelijk
- Voorafgaand
- privaat
- private Key
- probleem
- problemen
- bewijs
- voorstel
- stelt
- beschermen
- beschermd
- protocol
- zorgen voor
- publiek
- public Key
- Lees
- lezing
- Herstellen
- na een training
- reflecteren
- betreft de
- vernieuwd
- gerepliceerd
- vereisen
- terugkeer
- wortel
- veilig
- dezelfde
- scaling
- schema
- Tweede
- beveiligen
- veiligheid
- zaad
- Diensten
- reeks
- moet
- tonen
- teken
- gelijk
- eenvoudigweg
- single
- situaties
- So
- oplossing
- Oplossingen
- OPLOSSEN
- Lost op
- sommige
- Iemand
- iets
- Tussenruimte
- specifiek
- verspreiding
- Start
- Still
- stop
- dergelijk
- samenvatten
- ondersteuning
- system
- Nemen
- neemt
- hoofdwortel
- Technisch
- De
- hun
- spullen
- drie
- drempel
- Door
- niet de tijd of
- naar
- teken
- tokens
- tractie
- handel
- Bomen
- Trust
- vertrouwde
- X
- Tenslotte
- voor
- .
- Gebruiker
- gebruikers
- controleren
- versie
- Wat
- welke
- wil
- binnen
- afvragen
- Mijn werk
- Bedrijven
- zou
- geschreven
- X
- You
- Your
- youtube
- zephyrnet