-
![](https://i.nostr.build/AZ0L.jpg)
@ hodlbod
2025-02-03 22:25:35
Last week, in a bid to understand the LLM hype, I decided to write a trivial nostr-related program in rust via a combination of [codebuff](https://codebuff.com/referrals/ref-3fcc22f4-10f9-419f-a0e9-e9d7b4368e21) (yes, that is a referral link, pls click), [aider](https://aider.chat/), and [goose](https://block.github.io/goose/).
The result of the experiment was inconclusive, but as a side effect it produced a great case study in converting a [NINO](nostr:nevent1qvzqqqr4gupzp978pfzrv6n9xhq5tvenl9e74pklmskh4xw6vxxyp3j8qkke3cezqy2hwumn8ghj7un9d3shjtnyv9kh2uewd9hj7qgwwaehxw309ahx7uewd3hkctcpr3mhxue69uhksmmyd33x7epwvdhhyctrd3jjuar0dak8xtcqyqzeszjv7rh8fflpeua9q644a32usvwd0cu7cze9lxy4grjy2y7rwd98yfc) into a Real Nostr App.
# Introducing Roz
[Roz](https://github.com/coracle-social/roz), a friendly notary for nostr events.
To use it, simply publish an event to `relay.damus.io` or `nos.lol`, and roz will make note of it. To find out when roz first saw a given event, just ask:
```
curl https://roz.coracle.social/notary/cb429632ae22557d677a11149b2d0ccd72a1cf66ac55da30e3534ed1a492765d
```
This will return a JSON payload with a `seen` key indicating when roz first saw the event. How (and whether) you use this is up to you!
# De-NINO-fying roz
Roz is just a proof of concept, so don't rely on it being there forever. And anyway, roz is a NINO, since it provides value to nostr (potentially), but doesn't really do things in a nostr-native way. It also hard-codes its relays, and certainly doesn't use the outbox model or sign events. But that's ok, it's a proof of concept.
A much better way to do this would be to modify roz to properly leverage nostr's capabilities, namely:
- Use nostr-native data formats (i.e., draft a new kind)
- Use relays instead of proprietary servers for data storage
- Leverage nostr identities and signatures to decouple trust from storage, and allow trusted attestations to be discovered
Luckily, this is not hard at all. In fact, I've gone ahead and drafted a [PR](https://github.com/nostr-protocol/nips/pull/1737) to the NIPs repo that adds timestamp annotations to NIP 03, as an alternative to OpenTimestamps. The trade-off is that while user attestations are far less reliable than OTS proofs, they're much easier to verify, and can reach a pretty high level of reliability by combining multiple attestation sources with other forms of reputation.
In other words, instead of going nuclear and embedding your attestations into The Time Chain, you can simply ask 5-10 relays or people you trust for their attestations for a given event.
This PR isn't terribly important on its own, but it does remove one small barrier between us and trusted key rotation events (or other types of event that require establishing a verifiable chain of causality).