yes. I drew this diagram to help beginners understand Nostr. The previous black and white version was too detailed (especially Zap), so I've updated it to make it easier.
I suggest you add “hashing” step before “signing”.
Encryption on the client also happens before hashing and only for some notes so it could be omitted.
Relays verify the id, signature and other fields from incoming notes and store the event if valid but there’s no decryption or encryption happening in relays.