Session starten
Der Organisator erstellt eine zeitlich begrenzte Meetup-Session. Zu den signierten Daten gehören unter anderem Version, Zeit, Meetup-Kennung, Blockhöhe und eine zusätzliche Session-Kennung.
21Meetup verbindet einen vor Ort erhaltenen Session-Payload mit Schnorr-Signaturen, Claim-Binding, lokaler Speicherung und einem dezentralen Vertrauensmodell.
Organisator und Teilnehmer besitzen jeweils ein Nostr-Schlüsselpaar. Der Organisator signiert die Meetup-Daten, der Teilnehmer prüft diese und bindet den Nachweis anschließend mit einer eigenen Claim-Signatur an seine Identität.
Der Organisator erstellt eine zeitlich begrenzte Meetup-Session. Zu den signierten Daten gehören unter anderem Version, Zeit, Meetup-Kennung, Blockhöhe und eine zusätzliche Session-Kennung.
Die signierten Meetup-Daten werden als kompakter NFC-Payload oder als rotierender QR-Code bereitgestellt.
Das Smartphone des Teilnehmers prüft den Payload, die Schnorr-Signatur, das Zeitfenster und die zur Session gehörenden Daten.
Der Teilnehmer erzeugt eine eigene Claim-Signatur. Erst diese zweite Signatur bindet den Badge an genau dieses Nostr-Schlüsselpaar.
ORGANISATOR
Nostr-Keypair
↓
Meetup-Daten signieren
↓
NFC-Payload oder Rolling QR
↓ Scan
TEILNEHMER
Organisator-Signatur prüfen
↓
Claim mit eigenem Nostr-Key signieren
↓
Badge mit zwei Signaturen lokal speichern
Der Organisator kann einen kompatiblen NFC-Tag mit einem kompakten, signierten Payload beschreiben. Der Tag benötigt keine eigene Stromversorgung und wird vom Smartphone nur aus unmittelbarer Nähe ausgelesen.
Der QR-Code basiert auf einem signierten Grund-Payload und einer sich regelmäßig ändernden Nonce. Dadurch ist ein alter Screenshot nach kurzer Zeit nicht mehr gültig.
Für die Session wird ein kryptografisch sicherer Zufallswert erzeugt und geschützt gespeichert.
Der QR-Code wird in kurzen Abständen neu erzeugt. Die App akzeptiert nur Nonces aus dem gültigen Zeitfenster.
NFC und Rolling QR führen nach erfolgreicher Prüfung zum gleichen Badge-Modell und derselben Beweiskette.
Die Organisator-Signatur bestätigt, dass der Session-Payload mit dem zugehörigen Organisator-Schlüssel signiert wurde. Die Claim-Signatur des Teilnehmers verhindert, dass ein fremder Badge einfach kopiert und der eigenen Reputation zugerechnet wird.
Der Organisator signiert den kanonisch aufgebauten Inhalt der Meetup-Session mit seinem Nostr-Schlüssel. Der Teilnehmer kann die Signatur mit dem öffentlichen Schlüssel prüfen.
Der Teilnehmer signiert den Claim mit seinem eigenen Nostr-Schlüssel. Dadurch wird der Badge an genau diesen Sammler gebunden.
Vor der Signaturprüfung wird der relevante Inhalt kanonisiert und defensiv validiert. Unbekannte Felder werden bei dieser Prüfung ignoriert und dürfen deshalb nicht als kryptografisch bestätigt behandelt werden.
Nur die definierten Content-Felder v, t, m, b und x werden für die Verifikation berücksichtigt.
* Diese Kürzel stehen für Version, Zeitstempel, Meetup, Bitcoin-Blockhöhe und einen zusätzlichen Sitzungswert. Weitere Felder können zwar im übertragenen Datensatz stehen, gelten bei dieser Prüfung aber nicht automatisch als signiert oder bestätigt.
Alphabetisch sortierte Schlüssel sorgen dafür, dass aus denselben Daten derselbe deterministische JSON-Inhalt entsteht.
Öffentliche Schlüssel werden auf 64 Hex-Zeichen und Signaturen auf 128 Hex-Zeichen geprüft, bevor die kryptografische Verifikation beginnt.
Die Badge-Wallet zeigt Meetup, Datum, Blockhöhe und Verifikationsstatus. Die vollständige Teilnahmehistorie wird nicht als öffentliche Liste auf Nostr veröffentlicht.
Der Trust Score soll nicht bloß die Anzahl der Badges zählen. Er berücksichtigt Vielfalt, Qualität, Reife und Aktivität. Dahinter steht ein Cost-Prinzip: Anreise, Entfernung, Zeit und wiederholte persönliche Teilnahme machen Badges aufwendig und erschweren künstlich erzeugte Reputation.
Verschiedene Meetups, Städte und Organisatoren erhöhen die Aussagekraft des Netzwerks.
Badges aus besser belegten Meetups mit mehreren verifizierten Teilnehmern erhalten mehr Gewicht.
Account-Alter und kontinuierliche Teilnahme bilden langfristiges Engagement ab.
Regelmäßigkeit zählt, wird aber begrenzt. Das Gewicht älterer oder lange nicht ergänzter Aktivität kann mit der Zeit abnehmen, sodass Reputation erhalten werden muss.
Das Admin-Modell soll ohne dauerhafte zentrale Ernennung auskommen. Organisatoren können füreinander bürgen; Warnungen werden gewichtet und erhalten erst durch mehrere unabhängige Stimmen Wirkung.
Signierte Bürgschaften werden über Nostr veröffentlicht und können widerrufen werden.
Eine einzelne Warnung ist zunächst nur ein Signal. Mehrere unabhängige Meldungen können zum Downgrade führen.
Mit wachsendem Netzwerk steigen die Anforderungen an Badges, Meetups, Signer und Account-Alter.
Die App kann aggregierte Reputationsdaten auf konfigurierbaren Relays veröffentlichen. Dabei werden keine vollständigen Meetup-Namen oder Besuchsdaten benötigt.
Der QR enthält aggregierte Kennzahlen und einen kryptografischen Proof-Hash, aber keine komplette private Teilnahmehistorie.
Aggregierte Reputation kann als ersetzbares Nostr-Event veröffentlicht und von anderen geprüft werden.
Die Android-App nutzt den geschützten Schlüsselspeicher des Betriebssystems. Backups werden verschlüsselt; zusätzliche Geräteprüfungen können auf typische Anzeichen eines kompromittierten Systems hinweisen.
Private Schlüssel werden über den Android Keystore geschützt und nur für kryptografische Signaturen verwendet.
Backups werden mit AES-256 verschlüsselt; der Schlüssel wird per PBKDF2 aus dem Nutzerpasswort abgeleitet.
Die Android-App prüft beim Start auf typische Root-Indikatoren wie su-Dateien, Magisk oder auffällige Build-Tags. Bei einem Verdacht erscheint eine Warnung; das Gerät wird nicht automatisch gesperrt.
* Diese Prüfung ist eine zusätzliche Warnschicht und kein sicherer Beweis dafür, dass ein Gerät unverändert oder kompromittiert ist. Entscheidend bleiben die Signaturprüfung und der geschützte Schlüsselspeicher.