I actually noticed that with nak --- it isn't showing proof-carrying events returned from my inkan relay. When I get a chance I'll fix up my own version of nak to work with these.
When working through this, I noticed that there are two issues that can be thought of separately:
1. disseminating OTS proofs to relays;
2. making the proofs available to clients.
For proof dissemination, any sensible Nostr event shape will work. I think an addressable event with lots of tags for indexing (which can be skipped when not needed) works best, I've been sticking with my 31045s so far.
For making the proofs available to clients, the crucial thing is that the client needs to get the proofs synchronously with the reference event, i.e. the proofs should basically be spliced into the reference event.
So on that picture, the basic role that relays should play is to collect up available proofs and pre-verify them, select the best one (i.e. the one with the lowest block height) for each reference event, and then splice it into the reference event when it's sent to the client.
Is my current thinking.
