I guess in principle:
- Clients should be able to ask a relay if its POW enabled, posting the npub at the same time, and it gets back a positive or zero difficulty target
- The relay decides how to treat unknown/new or abusive npubs, raising the necessary difficulty target if needed. Relay owners discretion if it gets raised based on events per minute, content, or whatever
- There would need to be some kind of nonce/POW field in each posted event JSON
- The client must then use the POW field as a scratchpad for adding a value that allows the whole events hash to meet the target difficulty, or be continually rejected