nostr-protocol / nips

Nostr Implementation Possibilities
2.39k stars 582 forks source link

A wildly underdeveloped idea for signing words #1500

Open ynniv opened 2 months ago

ynniv commented 2 months ago

With proper event constraints, we're a signature away from publishing anywhere.

fiatjaf commented 2 months ago

I read the entire thing and you don't answer your own question: why not just publish a Nostr event?

vitorpamplona commented 2 months ago

3046022100dc07c1e346d41605a555688e65fb08496e657ebf23421045f65413703e37259c0221009045ebd40430ad2a7aaa73ae20b350a0113b3cda6446887e6ded7e5e6af2929a

Has 144 characters but uses 144 UTF-8 bytes

됀쯾쇼빠삷촙쨶쥕잚죔떔홈숎탟믟햗뛲굟퀶궋겚빩봢껍값굟줴걕궴먨졳와녨붢셠왅츾쵫웹풕펡췱좟렱욤

Has only 45 characters, but uses 135 UTF-8 bytes to represent it.

MEYCIQDcB8HjRtQWBaVVaI5l+whJbmV+vyNCEEX2VBNwPjclnAIhAJBF69QEMK0qeqpzriCzUKAROzzaZEaIfm3tfl5q8pKa

Is the base64 version of the same byte array, which uses 96 chars, but only 96 bytes.

alexgleason commented 2 months ago

Why not just use base256emoji? https://github.com/nostr-protocol/nips/discussions/1061

ynniv commented 2 months ago

Is the base64 version of the same byte array, which uses 96 chars, but only 96 bytes.

X's constraint is on "characters". The base64 version uses 96 "characters", and the Base8196 uses 45 "characters".

That said, the core idea is a convention for re-constructing a Kind:1 event from plaintext and a signature.

ynniv commented 2 months ago

Why not just use base256emoji? #1061

Why encode 8 bits per "character" when you can encode 13?

ynniv commented 2 months ago

I read the entire thing and you don't answer your own question: why not just publish a Nostr event?

It's a bit of a strange idea. Motivated by the idea that a nostr event is independently verifiable, I was exploring the most minimal event. If specifically constructed, you only need: a pubkey, a rough date, the content, and a signature. A pubkey might be well known, and many messages that aren't even on computers have a rough date and some words. By adding a signature, something that is very unlike a technical JSON blob could be valid messages.